NFS介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。
应用场景
A,B,C三台机器上需要被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
操作系统信息
[root@服务端地址]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
服务端安装配置
1. yum install -y nfs-utils rpcbind
查看是否安装nfs-utils rpcbind
[root@服务端地址]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.68.el7.2.x86_64
rpcbind-0.2.0-49.el7.x86_64
2. 创建目录
mkdir -p /data1/nfs
chmod 777 /data1/nfs
3. 修改nfs配置文件
vi /etc/exports
/data1/nfs 172.16.2.0/24(rw,sync,no_root_squash)
其中 /data1/nfs 为分享的目录位置 172.16.2.0/24服务端ip获取网段 ()内为读写参数,参数可为多个,具体查用参数作用如下
nfs共享参数 | 参数作用 |
---|---|
rw | 读写权限 |
ro | 只读权限 |
sync | 同时将数据写入到内存与硬盘当中保证不丢失数据 |
async | 优先将数据保存到内存,然后在写入硬盘,这样效率更高:但可能会丢失数据 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用) |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用) |
no_all_squash | 无论NFS客户端使用什么账户访问,都不进行压缩( kvm热迁移 ) |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户(常用) |
anonuid | 配置all_squash使用,指定NFS的用户UID,必须存在系统 |
anongid | 配置all_squash使用,指定NFS的组的UID,必须存在系统 |
4. 启动服务rpcbind nfs
systemctl start rpcbind
systemctl start nfs
5. 设置开机启动服务rpcbind nfs
systemctl enable rpcbind
systemctl enable nfs
6. 查看服务启动状态
systemctl status rpcbind
systemctl status nfs
7. 查看共享目录
[root@服务端地址]# showmount -e localhost
Export list for localhost:
/data1/nfs/ 172.16.2.0/24
或者可以使用命令查看,修改后重新加载共享目录
exportfs命令用来管理当前NFS共享的文件系统列表
-a:全部卸载或全部挂载
-r:重新挂载
-u:卸载某个目录
-v:显示共享目录
常用组合: exportfs -arv
服务端安装部署完成。
客户端安装配置
1. 安装nfs-utils rpcbind同服务端
2. 测试查看服务端挂载配置情况
[root@客户端地址]# showmount -e 172.16.2.17
Export list for 172.16.2.17:
/data1/nfs 172.16.2.0/24
3. 创建目录用于挂载服务端目录
[root@客户端地址]# mkdir /nfsclient
4. 挂载服务段目录
[root@客户端地址]# mount -t nfs 172.16.2.17:/data1/nfs /nfsclinet/
5. 验证
在客户端目录/nfsclinet/下新建文件test.txt后,在服务端目录/data1/nfs下查看是否有test.txt文件。
客户端安装部署完成。