# centos7.9安装nfs
# 服务端安装
sudo yum install -y nfs-utils rpcbind
sudo systemctl enable --now rpcbind
sudo systemctl enable --now nfs-server
sudo mkdir /nfs
sudo chmod 755 /nfs
vim /etc/exports
>>>
/nfs *(rw,sync,no_root_squash,no_all_squash)
sudo exportfs -a
ps -ef | grep nfs #能查看到 nfsd进程
# 客户端验证
- 挂载
sudo yum install -y nfs-utils
sudo mkdir -p /mnt/nfs
sudo mount -t nfs 192.168.10.7:/nfs /mnt/nfs
df -hT | grep nfs # 能够看到挂载的nfs
- 卸载
sudo umount /mnt/nfs
# 永久挂载(可选)
vim /etc/fstab
>>>
192.168.10.7:/nfs /mnt/nfs nfs defaults 0 0
sudo mount -a
# 文档
# 参考文档
- 参考地址原文: NFS基本介绍 (opens new window)
# NFS简介
- NFS:Network File System,网络文件系统。借助网络,不同机器、不同操作系统之间可以分享彼此的某些本地文件目录;允许一个机器通过网络挂载一个远程机器的某些目录,挂载后可以很方便的访问这些目录下的文件,就如同本地目录一般。
- NFS采用C/S模式,目录分享者为服务器,挂载使用者为客户端,二者使用RPC进行通信。
# NFS服务器
# 服务组成
NFS支持的功能比较多,不同的功能会启动不同的RPC服务进程来完成,主要服务进程有:
(1)rpc.nfsd:NFS的主要服务进程,大部分工作由它来完成,主要负责管理客户端的登入,以及判别登入者ID。
(2)rpc.mountd:负责管理NFS的文件系统。客户端登入后,使用分享目录文件之前,进行文件权限判断,以及通过读取NFS配置文件/etc/exports对客户端进行权限控制。
(3)rpc.lockd:非必要,管理文件的锁定,解决多个客户端同时写入某个文件的问题,必须同时在客户端与服务端都开启才有效,常与rpc.statd同时使用。
(4)rpc.statd:非必要,用于检查文件的一致性,检测文件是否被损毁,必须同时在客户端与服务端都开启才有效。
# 通信管理
为了支持NFS功能,启动了多个服务进程,每个进程都会占用一个端口来传输数据。除了rpc.nfsd固定使用2049端口,其他进程的端口都是随机选取一些未被使用的小于1024的端口。既是随机,客户端如何得知,进而与之通信呢?
所以除了NFS相关的服务进程,还需要启动另一个服务进程——rpcbind(CentOs5.x以前称为portmap)。rpcbind主要负责管理RPC服务进程与其端口之间的映射关系,NFS相关进程启动时,选取各自端口,然后向rpcbind注册映射关系。rpcbind固定在111端口监听客户端请求,客户端需要请求NFS相关服务进程时,先请求rpcbind得到对应端口,然后再通过端口直接与对应服务进程通信。