Linux安装配置NFS实现目录挂载
什么是NFS
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,在客户端端看起来,就像访问本地文件一样。
RPC,基于C/S模型。程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节,甚至可以请求对方的系统调用。
对于Linux而言,文件系统是在内核空间实现的,即文件系统比如ext3、ext4等是在Kernel启动时,以内核模块的身份加载运行的。
NFS原理
NFS本身的服务并没有提供数据传递的协议,而是通过使用RPC(远程过程调用 Remote Procedure Call)来实现。
当NFS启动后,会随机的使用一些端口,NFS就会向RPC去注册这些端口。RPC就会记录下这些端口,RPC会开启111端口。通过client端和sever端端口的连接来进行数据的传输。在启动nfs之前,首先要确保rpc服务启动。
服务端安装
1.1 安装nfs-utils、rpcbind软件包
yum -y install nfs-utils rpcbind
1.2 设置共享目录
mkdir /data/nfs_share
1.3 配置客户机地址
/etc/exports
/data/nfs_share 192.168.10.10(rw,sync,no_root_squash)
- ro:只读
- rw:读写
- sync:同步,数据同步写到内存与硬盘中
- async:异步,数据先暂存内存
- root_squash: 将root用户映射为来宾账号
- no_root_squash: 有root的权限,不建议使用
- all_squash: 全部映射为来宾账号
- anonuid, anongid: 指定映射的来宾账号的UID和GID
当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格分隔指定多个客户机权限选项即可。
/data/nfs_share 192.168.10.10(ro) 192.168.10.12(rw)
注意:其中的IP地址必须真实地址:ip addr show
1.4 启动rpcbind、nfs
systemctl start rpcbind
systemctl start nfs
1.5 配置开机自启
systemctl enable nfs
systemctl enable rpcbind
1.6 查看本机发布的NFS共享目录
showmount -e 192.168.10.1(本机IP)
1.7 卸载服务
yum -y remove nfs* rpcbind*
客户端安装
2.1 安装nfs-utils、rpcbind软件包
yum -y install rpcbind nfs-utils
2.2 手动挂载NFS共享目录(可跳过)
以root用户身份执行mount操作,将NFS服务器共享的/data/nfs_share目录挂载到本地目录(客户机)/data/nfs
弊端:当客户机服务器重启后,每次都要重新挂载共享目录
mkdir /data/nfs
mount 192.168.10.1(服务端IP):/data/nfs_share /data/nfs
umount -f /data/nfs(取消挂载目录)
tail -1 /etc/mtab(确认挂载结果)
2.3 自动挂载NFS共享目录(永久)
永久挂载,机器重启后依然生效
vi /etc/fstab
# 配置挂载目录(列1:远程共享目录地址 列2:本地挂载点 列3:文件类型介绍 列4:权限设置 列5:是否备份 列6:检查选项)
/dev/mapper/data-data /data xfs defaults 0 0
172.26.10.65:/data/nfs_share /data/nfs nfs defaults 0 0
# 检查fstab条目中是否有错误
mount -av
# 查看挂载情况
df -hT
2.4 启动rpcbind、nfs
systemctl start rpcbind
systemctl start nfs
2.5 配置开机自启
systemctl enable nfs
systemctl enable rpcbind
2.6 查看共享目录
cd /data/nfs