前述:
现在基本上稍微大一点的企业,都会选择服务器集群而不是单个服务器,因为服务器集群有着高可用性、高性价比、可扩展性强的特点。但是你知道吗:这些都非常依靠一个重要的功能,这个功能就是文件同步共享,因为你不可能一个服务器集群提供不相同的内容也不可能修改了内容然后去手动覆盖其他服务器,因为那样的话要集群就没什么意思了,而且用户访问你的网站的时候就像开盲盒一样永远不知道下一次刷新访问的是哪一个网站。
系统环境
操作系统:CentOS 7.9 64Bit
用户:Root
准备工作
使用yum安装rpcbind nfs-utils:
yum -y install rpcbind nfs-utils
验证:输入rpm -qa nfs* rpc* 出现带rpcbind nfs-utils的结果证明已经安装
如果找不到包就安装EPEL源:
yum install -y epel-* && yum update && yum makecache
[root@localhost ~]# rpm -qa nfs* rpc*
nfs4-acl-tools-0.3.3-21.el7.x86_64
rpcbind-0.2.0-49.el7.x86_64
nfs-utils-1.3.0-0.68.el7.2.x86_64
NFS配置
创建NFS共享目录并赋权:
mkdir -p /nfs/web
chmod 0755 /nfs -R
编写NFS配置文件:
NFS配置文件路径: /etc/exports
[root@localhost ~]# echo "/nfs/web/ 192.168.10.0/24(rw,no_root_squash,no_all_squash,sync)">/etc/exports
配置文件解读:/nfs/web/:共享目录
192.168.10.0/24(rw,no_root_squash,no_all_squash,sync):192.168.10.0/24代表允许192.168.10.x(24位掩码)网段访问,rw:read write可读写相应只写ro为只读,no_root_squash代表以root登录时保留其权限,no_all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限,sync:写入的数据会同步写入内存和硬盘中如果为rsync则会先写入内存然后再写入硬盘
使配置文件立即生效:
exportfs -r
关闭防火墙
systemctl stop firewalld
启动NFS服务并加入开机自启动
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
验证:输入systemctl status rpcbind && systemctl status nfs
如果你得到以下页面则代表成功反之则需要你去核对配置了:
测试NFS是否可用
showmount -e localhost
如果你得到了以下内容则代表你成功了:
Export list for localhost:
/nfs/web 192.168.10.0/24
使用客户机尝试挂载
安装rpcbind:
yum -y install rpcbind
查看服务器共享内容:
[root@localhost ~]# showmount -e 192.168.10.74
Export list for 192.168.10.74:
/nfs/web 192.168.10.0/24
创建挂载点:
mkdir -p /mnt/web
挂载目录:
mount -t nfs 192.168.10.74:/nfs/web /mnt/web/ -o nolock,nfsvers=3,vers=3
查看挂载是否成功:
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 2.9G 21M 2.9G 1% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/sda3 122G 5.4G 117G 5% /
/dev/sda1 297M 202M 96M 68% /boot
tmpfs 579M 44K 579M 1% /run/user/1000
tmpfs 579M 0 579M 0% /run/user/0
192.168.10.74:/nfs/web 122G 5.1G 117G 5% /mnt/web
出现192.168.10.74:/nfs/web 122G 5.1G 117G 5% /mnt/web 即代表成功
解除挂载:umount /mnt/web
开机自动挂载:
echo "mount -t nfs 192.168.10.74:/nfs/web /mnt/web/ -o nolock,nfsvers=3,vers=3">>/etc/rc.d/rc.local
取消开机自动挂载:
sed -i 's/mount -t nfs 192.168.10.74:\/nfs\/web \/mnt\/web\/ -o nolock,nfsvers=3,vers=3//ig' /etc/rc.d/rc.local
注意:如果重启后无法自动挂载则可能是开机脚本无权执行,执行以下命令解决问题:
chmod +x /etc/rc.d/rc.local