0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux下部署NFS服务

CHANBAEK 来源:嵌入式攻城狮 作者:安迪西 2023-04-17 14:58 次阅读

1. NFS服务简介

NFS是 Network File System的缩写,即网络文件存储系统,最早是由Sun 公司发展出来的,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 NFS客户机可以将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,在本地端的系统中来看,那个远程主机的目录就像是自己的一个磁盘分区一样,使用起来非常方便。 一般用来存储共享视频,图片等静态数据。

NFS的挂载原理:如下图示,NFS服务器设置好共享目录/home/nfs后,其他NFS客户端就可以将该目录挂载到自己文件系统的某个挂载点(可自己定义)。 挂载好后在客户端本地就能够看到服务端/home/nfs里的所有数据

图片

NFS是通过网络来进行数据传输,因此有对应的网络端口。 那么客户端是如何知道 NFS服务器端到底使用的是哪个端口呢? 这时就需要通过远程过程调用(Remote Procedure Call, RPC)协议来实现了!

RPC与NFS通讯原理:NFS支持的功能很多,不同的功能启用的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,RPC就是用来统一管理NFS端口的,其对外的端口是111。 RPC会记录NFS端口的信息,并且通知客户端,让客户端可以连接到正常端口上去。

那么RPC是如何知道每个NFS功能的端口呢? 首先当NFS启动后,会随机的使用一些端口,然后NFS会向RPC去注册这些端口,并记录下来,同时RPC会开启111端口,等待客户端RPC的请求。 若客户端有请求,那么服务器端的RPC就会将之前记录的NFS端口信息告知客户端。 如此客户端就会获取NFS服务器端的端口信息,进行数据传输了。

注意:在启动NFS服务器之前,首先要启动RPC服务(即portmap服务)否则NFS服务器就无法向RPC服务区注册。 如果RPC服务重新启动,原来注册好的NFS端口数据会全部丢失,此时RPC服务管理的 NFS程序也要重启以重新向RPC注册。

NFS客户端和服务器通讯过程:

图片

  • 首先服务器端启动RPC服务,并开启111端口
  • 服务器端启动NFS服务,并向RPC注册端口信息
  • 客户端启动RPC,向服务端的RPC服务请求服务端的NFS端口
  • 服务端的RPC服务反馈NFS端口信息给客户端
  • 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

2. Linux下部署NFS服务

2.1 安装NFS服务

使用如下命令安装NFS服务和RPC服务

sudo apt-get install nfs-kernel-server rpcbind

安装完成后,创建共享文件夹供nfs服务器使用,此处在用户根目录下创建了linux/nfs文件夹

图片

配置nfs服务器共享目录:打开nfs配置文件/etc/exports,在末尾添加

/home/andyxi/linux/nfs *(rw,sync,no_root_squash)

图片

修改完/etc/exports以后保存退出,重启NFS服务

sudo /etc/init.d/nfs-kernel-server restart

2.2 NFS测试

这里使用 Ubuntu作为 NFS服务器端,Linux开发板作为客户端来进行 NFS测试。 确保网络环境正常,Ubuntu、Windows和开发板能相互ping通

在ubuntu的/home/andyxi/linux/nfs目录下创建test.c文件

vi test.c

在开发板中创建一个目录get,设置虚拟机IP并将NFS共享目录挂载到get目录中。 挂在成功后,即可在get目录中看到test.c文件

mkdir get
mount -t nfs -o nolock,nfsvers=3 192.168.10.100:/home/andyxi/linux/nfs get/

通过df命令可查看挂载的NFS目录,卸载NFS目录使用umount命令

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11298

    浏览量

    209396
  • 服务器
    +关注

    关注

    12

    文章

    9138

    浏览量

    85372
  • 操作系统
    +关注

    关注

    37

    文章

    6814

    浏览量

    123313
  • 端口
    +关注

    关注

    4

    文章

    964

    浏览量

    32064
  • NFS
    NFS
    +关注

    关注

    1

    文章

    53

    浏览量

    26107
收藏 人收藏

    评论

    相关推荐

    Linux开发_CentOS7.4服务器搭建NFS、NGINX服务器,安装ffmpeg、Qt环境

    在CentOS7.4服务器版本的环境下搭建NFS服务器、安装ffmpeg、安装nginx服务器、部署Qt编译环境。
    的头像 发表于 07-14 13:45 1603次阅读
    <b class='flag-5'>Linux</b>开发_CentOS7.4<b class='flag-5'>服务</b>器搭建<b class='flag-5'>NFS</b>、NGINX<b class='flag-5'>服务</b>器,安装ffmpeg、Qt环境

    【AWorks试用体验】+NFS服务器搭建

    本帖最后由 youzizhile 于 2015-8-18 15:53 编辑 6.4 NFS服务器搭建6.4.1 NFS能做什么?在嵌入式Linux开发中,需要在
    发表于 08-18 15:51

    TQ210 NFS服务器的配置和使用

      这一讲将介绍怎么在虚拟机的Linux系统上安装NFS服务器,然后在TQ210v6开发板上的Linux上挂载nfs共享文件夹,实现虚拟机和
    发表于 11-23 15:35

    Linux 配置 NFS进行服务器端配置,重启NFS时报错,请问这是为什么?

    本帖最后由 一只耳朵怪 于 2018-6-22 10:08 编辑 1、我是Centos6.5版本的Linux,网上找到的帖子说是这个命令 yum install nfs
    发表于 06-21 20:00

    基于spring boot的linux服务部署方法

    最近一直在研究springboot服务器,之前受到springmvc等框架的困扰,思路不对,一直想把springboot打包成war包然后部署到tomcat容器下,今天突然想到既然springboot我再本地可以使用jar包的形式访问,
    发表于 07-22 06:51

    ubuntu下搭建NFS服务

    :192.168.2.51为NFS服务器主机IP#ls /mnt/说明:mount命令可以在另一个Linux系统执行。这样就可以实现ubuntu下搭建NFS
    发表于 11-02 16:08

    Jenkins远程部署Linux服务器的过程

    1、Jenkins远程部署Linux服务器  之前在Jenkins上也有一些使用经验了,但是都是使用团队配置好的Jenkins,自己只需要管自己的项目以及执行构建即可,这一次自己尝试了一下配置
    发表于 11-18 18:12

    RK3568 Linux镜像支持NFS服务设计实现

    1、RK3568 Linux NFS服务使用  RK3568linux镜像默认是不支持NFS服务
    发表于 12-13 17:09

    嵌入式Linux NFS方式下应用程序的实现

    嵌入式Linux NFS方式下应用程序的实现:本文在以ARM9 内核芯片,处理器为S3C2410 构造的开发板系统上,详细讨论了如何配置嵌入式Linux NFS 开发环境,并通过一个具
    发表于 08-02 14:48 39次下载

    非常全面的LINUX NFS文档

    这是我写的第一份笔记式文档,是对自己最近在研究NFS方面的一个小小的总结,这个稳定也参考和引用了一部分别人的文档,这里表示感谢,这篇是根据LINUX来写的,有空的话我还会写一篇FOR FREEBSD
    发表于 11-07 11:36 3次下载

    Linux应用基础教程之Linux的网络服务资料概述

    本文档的主要内容详细介绍的是Linux应用基础教程之Linux的网络服务资料概述主要内容包括了:1 NFS网络文件系统 2 Web服务 3
    发表于 11-28 15:56 18次下载

    嵌入式Linux NFS挂载

    嵌入式Linux NFS Mount, 几步简单的命令实现通过NFS将虚拟机目录mount到板子上1、在ubuntu上安装ntf服务sudo apt-get install
    发表于 10-20 15:06 2次下载
    嵌入式<b class='flag-5'>Linux</b> <b class='flag-5'>NFS</b>挂载

    嵌入式linux实现mount挂载nfs服务器拷贝文件

    nfs服务器一般在本地虚拟机ubuntu搭建nfs服务器就行,具体流程,可以查看我的博客ubuntu下nfs
    发表于 11-01 17:07 1次下载
    嵌入式<b class='flag-5'>linux</b>实现mount挂载<b class='flag-5'>nfs</b><b class='flag-5'>服务</b>器拷贝文件

    Linux下部署TFTP服务

    TFTP是 Trivial File Transfer Protocol 的缩写,即简单文件传输协议,是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合
    的头像 发表于 04-17 14:56 1145次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>下部署</b>TFTP<b class='flag-5'>服务</b>

    如何实现NFS服务搭建

    用于Linux之间进行文件共享则是用NFS服务(Network FileSystem) 目的在于让不同的机器,不同的操作系统可以彼此分享各自的文件数据。 NFS
    的头像 发表于 12-10 10:10 195次阅读
    如何实现<b class='flag-5'>NFS</b><b class='flag-5'>服务</b>搭建