一、简介:
NFS是Network File System的缩写,是网络文件系统,具体的功能就是通过网络让不同的机器,不同的操作系统能够彼此分享个别的数据,让应用程序客户端通过网络访问位于服务器磁盘中的数据。
二、服务端安装
1、环境说明
服务器端:
IP:192.168.112.128
共享目录:
/data/k8s/
客户端:
IP:192.168.112.129,192.168.112.130
共享目录:
/data/k8s/
2、服务端程序安装:
[root@centos7 /]# yum install -y nfs-utils
3、服务端配置信息:
先设置nfs相关服务开机自启
[root@Centos7 /]# systemctl enable rpcbind
[root@Centos7 /]# systemctl enable nfs
4、启动相关服务
[root@Centos7 ~]# systemctl start rpcbind
[root@Centos7 ~]# systemctl status rpcbind
[root@master ~]# systemctl start nfs
[root@master ~]# systemctl status nfs
5、防火墙关闭了
[root@master ~]# firewall-cmd --state
not running
如果需要打开nf相关服务的防火墙
[root@Centos7 /]# firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs}
[root@Centos7 /]# sudo firewall-cmd --reload
6、配置共享目录
服务启动之后,我们在服务器端配置
设置相关的nfs配置
[root@Centos7 /]# vim /etc/exports
/data/k8s/ *(rw,sync,no_root_squash)
下面是一些NFS共享的常用参数:
o 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
6、重启nfs服务
[root@master ~]# systemctl restart nfs
然后检验一下本地的共享目录
[root@master ~]# showmount -e localhost
Export list for localhost: /data/k8s *
就此服务端的已经安装好了
三、客户端安装
1、首先都是需要安装nfs
[root@centos7 /]# yum install -y nfs-utils
这里只需要启动rpcbind就可以了
[root@node1 ~]# systemctl enable rpcbind
[root@node1 ~]# systemctl start rpcbind
[root@node1 ~]# systemctl status rpcbind
2、然后检测服务端的共享目录
[root@node1 ~]# showmount -e 192.168.112.128
Export list for 192.168.112.128: /data/k8s *
3、挂载客户端的共享目录
注意:在NFS客户端挂载/卸载NFS服务端目录的时候一定要事先退出挂载目录!
[root@node1 ~]# mount -t nfs 192.168.112.128:/data/k8s /data/k8s
mount.nfs: mount point /data does not exist
#挂载共享目录本地必须有相应的目录
[root@node1 ~]# mkdir /data
[root@node1 ~]# mount -t nfs 192.168.112.128:/data/k8s /data/k8s
4、用mount命令查看一下(命令:df -Th)
5、最后测试NFS
[root@node1 data]# echo "hello nfs file share." >> hello.nfs
[root@node1 data]# ls
hello.nfs
然后进入服务端查看是否存在
[root@master ~]# cd /data/k8s
[root@master k8s]# ls
hello.nfs
两个客户都按上面安装,即完成
6、客户端开机自动挂载(fstab配置文件实现开机自动挂载)不加这步,机器重启后,挂载的共享目录需要手工重新挂载
在fstab文件后面增加
[root@node1 ~]#vim /etc/fstab
192.168.112.128:/data/k8s /data/k8s nfs defaults 0 0