闲言碎语:很早写过一篇基于Nginx实现负载均衡的教程就用到了NFS文件共享的使用。感兴趣的可以访问:https://blog.tag.gg/showinfo-3-35821-0.html 本次单独针对NFS拿出来写一下。
环境说明:
支持局域网及公网
系统:Centos8.x,其他系统一样。
服务器A:192.168.0.55
服务器B:192.168.0.66
目标:将“服务器A”的“/home/blog.tag.gg.A”目录下的文件共享到“服务器B”的目录“/home/blog.tag.gg.B”(文件夹路径也可以完全一模一样,比如两台服务器都创建目录“/home/blog.tag.gg”具体根据自己情况)
注意:若有启用防火墙或安全组请放行“111/TCP、111/UDP、2049/TCP、2049/UDP”若不放行,则无法共享(没用安全组或防火墙的话可以忽略)
1、安装NFS服务。
分别在两台服务器执行如下命令安装服务
启动后执行命令“netstat -lunpt”可以看到111和2049端口被监听,则说明正常。yum install -y nfs-utils
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
2、在“服务器A”中做如下操作
创建“/home/blog.tag.gg.A”目录(说明:若服务器A中需要共享的文件夹已存在了,则请忽略这一步)
编辑“/etc/exports”文件写入如下信息,设置允许共享的目录路径以及权限mkdir -p /home/blog.tag.gg.A
执行如下命令重启NFS服务。/home/blog.tag.gg.A *(insecure,rw,sync,no_root_squash)
执行如下命令查看当前NFS共享的文件系统列表systemctl restart nfs-server
显示如下表示正常。exportfs
3、在“服务器B”中做如下操作[root@blog.tag.gg]# exportfs
/home/blog.tag.gg.A
<world>
执行如下命令看是否能看到服务器A的挂载目录,若能看到则说明正常,若看不到,请检查端口是否放行或设置是否正确。
执行后显示如图则正常。showmount -e 192.168.0.55
若显示“clnt_create: RPC: Port mapper failure - Timed out”在表示端口不通,请检查是否有放行。[root@blog.tag.gg ~]# showmount -e 192.168.0.55
Export list for 192.168.0.55:
/home/blog.tag.gg.A *
执行如下命令创建挂载目录
编辑“/etc/fstab”配置文件,写入如下信息添加挂载mkdir -p /home/blog.tag.gg.B
设置后执行如下命令手动刷新挂载。192.168.0.55:/home/blog.tag.gg.A /home/blog.tag.gg.B nfs defaults,_netdev 0 0
说明:执行mount -a 如果没有任何提示,则表示挂载正常,若有报错,请根据报错解决。mount -a
(可选)也可以执行如下命令手动挂载
查看挂载信息mount -t nfs 192.168.0.55:/home/blog.tag.gg.A /home/blog.tag.gg.B
挂载后执行命令“df -Th”显示如下则表示正常
测试文件读取及写入[root@blog.tag.gg]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 24K 1.9G 1% /dev/shm
tmpfs tmpfs 1.9G 548K 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 ext4 59G 4.2G 53G 8% /
tmpfs tmpfs 370M 0 370M 0% /run/user/0
192.168.0.55:/home/blog.tag.gg.A nfs4 40G 13G 25G 35% /home/blog.tag.gg.B
注意:“服务器A”文件共享到“服务器B”后,在“服务器B”/home/blog.tag.gg.B 修改/删除/创建文件或文件夹都会影响到服务器A中数据,反之在“服务器A”对应目录创建/删除/修改文件或文件夹也会影响到“服务器B”所以请谨慎操作,以免数据丢失无法找回。
延伸:
若只想“服务器B”复制(只读)“服务器A”中的数据可将“服务器A”的/etc/exports文件内容修改为如下
将“rw”修改为“ro”重启nfs服务即可。/home/blog.tag.gg.A *(insecure,ro,sync,no_root_squash)
服务器B测试结果:
结语:[root@blog.tag.gg]# echo "aaa"> test.txt
-bash: test.txt: Read-only file system
操作是很简单的,写的很详细,很啰嗦,目的是让新手朋友更容易看懂,希望对您有帮助。
文章评论 本文章有个评论