NFS网络文件系统
NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。
# NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。
因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。 那RPC和NFS之间又是如何之间相互通讯的? 首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
构建NFS远程共享存储
实验环境准备两台机器
支持多节点同时挂载以及并发写入
服务端:nfs-server 192.168.246.160
客户端:client1 192.168.246.161
centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
#systemctl stop firewalld #暂时关闭防火墙
#systemctl disable firewalld #永久关闭,需要重启机器
#setenforce 0 #暂时关闭selinux
# vim /etc/sysconfig/selinux #永久关闭,需要重启机器。SELINUX=disabled
NFS-server服务器操作
[root@nfs-server ~]# yum -y install rpcbind nfs-utils #安装rpc协议包和nfs服务
[root@nfs-server ~]# systemctl start nfs #启动服务
[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# systemctl enable nfs rpcbind #设置开机自动重启
[root@nfs-server ~]# mkdir /nfs-dir #创建存储目录
[root@nfs-server ~]# echo "nfs-test" >> /nfs-dir/index.html #制作test文件
[root@nfs-server ~]# vim /etc/exports #编辑共享文件
/nfs-dir 192.168.246.0/24(rw,no_root_squash,sync)
可选参数注释:
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
[root@nfs-server ~]# systemctl restart nfs-server #重启服务(修改完配置文件后)
[root@nfs-server ~]# systemctl enable nfs-server #制作开机启动
client1 客户端操作
[root@client1 ~]# yum -y install rpcbind
[root@client1 ~]# yum -y install nfs-utils
[root@client1 ~]# mkdir /qf #创建挂载点
[root@client1 ~]# mount -t nfs 192.168.246.160:/nfs-dir /qf
#把共享目录挂载到q