Loading
0

Linux通过NFS实现多服务器文件共享方法

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器
前言:朋友服务器是Linux,咨询如何将A服务器的文件夹下文件共享到B服务器,问题很简单的,可以用NFS来实现,本教程介绍linux下通过NFS实现文件共享方法。
闲言碎语:很早写过一篇基于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服务。
分别在两台服务器执行如下命令安装服务

yum install -y nfs-utils
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server

启动后执行命令“netstat -lunpt”可以看到111和2049端口被监听,则说明正常。
2、在“服务器A”中做如下操作
创建“/home/blog.tag.gg.A”目录(说明:若服务器A中需要共享的文件夹已存在了,则请忽略这一步)

mkdir -p /home/blog.tag.gg.A

编辑“/etc/exports”文件写入如下信息,设置允许共享的目录路径以及权限

/home/blog.tag.gg.A *(insecure,rw,sync,no_root_squash)

执行如下命令重启NFS服务。

systemctl restart nfs-server

执行如下命令查看当前NFS共享的文件系统列表

exportfs

显示如下表示正常。

[root@blog.tag.gg]# exportfs
/home/blog.tag.gg.A
                <world>

3、在“服务器B”中做如下操作
执行如下命令看是否能看到服务器A的挂载目录,若能看到则说明正常,若看不到,请检查端口是否放行或设置是否正确。

showmount -e 192.168.0.55

执行后显示如图则正常。

[root@blog.tag.gg ~]# showmount -e 192.168.0.55
Export list for 192.168.0.55:
/home/blog.tag.gg.A *

若显示“clnt_create: RPC: Port mapper failure - Timed out”在表示端口不通,请检查是否有放行。
执行如下命令创建挂载目录

mkdir -p /home/blog.tag.gg.B

编辑“/etc/fstab”配置文件,写入如下信息添加挂载

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文件内容修改为如下

/home/blog.tag.gg.A *(insecure,ro,sync,no_root_squash)

将“rw”修改为“ro”重启nfs服务即可。
服务器B测试结果:

[root@blog.tag.gg]# echo "aaa"> test.txt
-bash: test.txt: Read-only file system

结语:
操作是很简单的,写的很详细,很啰嗦,目的是让新手朋友更容易看懂,希望对您有帮助。


 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36292-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:解决:ping: blog.tag.gg: Temporary failure in name resolution报错。
下一篇:iptables放行ip封停ip删除规则保存iptables规则等常见操作方法