1 NFS简介
NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 C/S 架构。
2 NFS原理
3 NFS服务端配置
3.1 安装rpcbind服务
安装rpcbind服务
sudo apt install rpcbind
设置rpcbind服务开机自启
systemctl enable rpcbind
检查rpcbind服务是否已启动
systemctl status rpcbind
如果rpcbind服务未启动,启动rpcbind服务
systemctl start rpcbind
3.2 安装nfs服务
安装nfs服务
sudo apt install nfs-kernel-server
设置nfs服务开机自启
systemctl enable nfs-server
检查nfs服务是否已启动
systemctl status nfs-server
如果nfs服务未启动,启动nfs服务
systemctl start nfs-server
4 NFS客户端配置
同服务端一致
5 服务端设置共享
NFS服务的配置文件为/etc/exports,文件内容格式为:
共享目录 客户端1(访问权限,用户映射,其他) 客户端2 … 客户端n
(1)共享目录:指NFS服务器共享给客户机使用的目录
(2)客户端:指网络中可以访问这个NFS更新目录的计算机。常用的指定方式:①指定ip地址的主机;②指定子网中的所有主机;③指定域名的主机;④指定域名中的左右主机;⑤所有主机
(3)访问权限选项:ro-设置输出目录只读;rw-设置输出目录可读可写
(4)用户映射选项:root_squash-将root用户的访问映射为匿名(nfsnobody)用户uid和gid(默认);no_root_squash-保留管理员权限,以服务器管理员的权限管理;all_squash-将远程访问的用户及所属组都映射为指定uid、gid的匿名用户,anonuid=xxx指定将远程访问的所有用户都映射为指定uid的用户,anongid=xxx将远程访问的所有用户组都映射为指定gid的匿名用户组
(5)其他选项:sync-将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性(同步);async-将数据先保存在内存缓冲区中,必要时才写入磁盘(异步)
设置完共享后,exportfs –ra重新共享所有目录并输出详细信息,exportfs –au卸载所有共享目录;exportfs命令查询服务器上共享的资源。
6 客户端挂载
mount NFS服务器IP:共享目录 本地挂载目录