构建储NFS远程共享存
代码语言:javascript
复制 因为NFS有很多功能,不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。
那RPC和NFS之间又是如何之间相互通讯的?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
NFS
NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。是Unix系统之间共享文件的一种协议
NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。
实验环境准备两台机器
支持多节点同时挂载以及并发写入
服务端:nfs-server 192.168.246.160
客户端:web1 192.168.246.161
centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
#systemctl stop firewalld
#systemctl disable firewalld
#setenforce 0
实战
代码语言:javascript
复制 NFS-server操作
[root@nfs-server ~]# yum -y install rpcbind #安装rpc协议的包
[root@nfs-server ~]# yum -y install nfs-utils #安装nfs服务,提供文件系统
启动服务
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl start 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 的权限。
all_squash: 这个选项对于公共访问的 NFS 卷来说非常有用,它会限制所有的使用者将权限压缩为匿名用户。
代码语言:javascript
复制[root@nfs-server ~]# systemctl restart nfs-server #重启服务。
[root@nfs-server ~]# systemctl enable nfs-server #制作开机启动
[root@testpm-server ~]# exportfs -v #确认 NFS 服务器启动
/nfs-dir 192.168.246.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
web1 客户端操作
[root@web1 ~]# yum -y install rpcbind
[root@web1 ~]# yum -y install nfs-utils
[root@web1 ~]# mkdir /qf #创建挂载点
[root@web1 ~]# mount -t nfs 192.168.246.160:/nfs-dir /qf #挂载
[root@web1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 1.1G 16G 7% /
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.246.160:/nfs-dir nfs4 17G 1.4G 16G 8% /qf
[root@web1 ~]# ls /qf
index.html
[root@web1 ~]# umount /qf #取消挂载
制作开机挂载
[root@client.qfedu.com ~]# vim /etc/fstab
192.168.246.160:/nfs-dir /qf nfs defaults 0 0
[root@client.qfedu.com ~]# mount -a