什么是NFS
NFS(Network File System)简介
NFS是Network File System的缩写,即网络文件系统。NFS是一种用于分布式文件系统的协议,它允许不同的机器、不同的操作系统能够共享个人数据,使应用程序通过网络可以访问位于服务器磁盘中的数据。NFS在文件传输或信息传递的过程中,依赖于RPC协议。 RPC(Remote Procedure Call)简介
RPC,远程过程调用,是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,能够实现基于网络的资料共享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用RPC的一个程序。
NFS的工作模式
服务器/客户端工作模式
NFS采用服务器/客户端工作模式。在NFS服务器上将目录设置为输出目录(即共享目录)后,客户端就可以将这个目录挂载到自己系统中的某个目录下。 挂载示例
例如,在CentOS系统中,NFS服务器共享目录设置为 /nfs/public
,NFS客户端将此目录挂载到/mnt/nfs
。客户端之间通过网络连接到NFS服务器,并访问共享的目录。
RPC守护进程
nfsd
nfsd是基本的NFS守护进程,主要功能是管理客户端是否能登录NFS服务器。 mountd
mountd是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务器后,在使用NFS服务器提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。 rpcbind
rpcbind的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务(如NFS服务)时,rpcbind会将管理的与服务对应的端口提供给客户端,从而使客户端可以通过该端口向服务器请求服务。
NFS工作原理
启动RPC服务
首先,服务器端启动RPC服务,并开启111端口。 启动NFS服务
服务器端启动NFS服务,并向RPC注册端口信息。 客户端请求NFS端口
客户端启动RPC(portmap服务),向服务器的RPC(portmap)服务请求服务器的NFS端口。 反馈端口信息
服务器端的RPC(portmap)服务反馈NFS端口信息给客户端。 数据传输
客户端通过获取的NFS端口来建立和服务器端NFS的连接并进行数据的传输。
NFS软件包
RPC主程序:rpcbind
启动RPC服务之前,需要做好port的对应(mapping)的工作,这就是rpcbind这个服务所负责的。也就是说,在启动任何一个RPC服务之前,我们都需要启动rpcbind才行。 NFS主程序:nfs-utils
提供rpc.nfsd及rpc.mountd这两个NFS守护进程与其他相关文档与说明文件、执行文件等的软件。这些是NFS服务所需要的主要软件。
NFS服务的配置文件
/etc/exports配置
NFS服务器共享目录时所使用的配置文件为/etc/exports。此文件的语法结构如下: 共享目录的绝对路径 客户端(选项)
例如:/share 172.16.1.0/24(ro)查看共享资源的指令
exportfs 是用在NFS Server端,而showmount则主要用在Client端。showmount可以用来察看NFS分享出来的目录资源。 客户端查询服务器共享资源的指令: /usr/sbin/showmount
配置举例:配置NFS服务器和客户端
在CentOS上配置NFS服务器
安装NFS和相关软件包
sudo yum install nfs-utils rpcbind配置共享目录
编辑 /etc/exports
文件,添加以下内容:/srv/nfs 192.168.1.0/24(rw,sync,no_root_squash)启动并启用NFS服务
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server导出共享目录
sudo exportfs -a
在CentOS上配置NFS客户端
安装NFS和相关软件包
sudo yum install nfs-utils创建挂载点并挂载NFS共享
sudo mkdir -p /mnt/nfs
sudo mount -t nfs 192.168.1.100:/srv/nfs /mnt/nfs验证挂载
使用 df -h
命令检查是否成功挂载NFS共享。
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,请不要忘记关注公众号。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。
点击页面右上角的“关注”按钮,不错过任何精彩内容!

扫码获取联系方式



文章转载自周同学带您玩AI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




