NFS配置-实现多服务器共享目录


NFS网络文件系统

为什么要用NFS?

前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一放到后端的存储上。
共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据。

NFS工作原理

NFS功能,有很多服务,每个服务都有自己的端口,并且经常变换。
客户端查找这些端口,就需要一个中间人---RPC服务(默认端口号111)。
工作流程:
1.启动RPC服务
2.启动NFS服务(同时向RPC服务注册启动的端口)
3.客户端向RPC请求NFS服务
4.RPC返回端口到客户端
5.客户端用返回的端口地址向NFS请求传输数据。 

一、服务器A下操作(IP地址:192.168.2.21)

1、查看NFS安装情况:
rpm -qa nfs-utils rpcbind
 
(没有的话,用yum install nfs-utils rpcbind -y安装)
2、启动RPC:
systemctl start rpcbind   (service rpcbind start) 

开机自启动:

systemctl enable rpcbind   (service rpcbind enable)

看看有没有注册的端口:

rpcinfo -p 127.0.0.1


3、启动NFS:

systemctl start nfs(十以上版本sudo service nfs-server start)或者(systemctl start nfs-server)

再看注册的端口:

rpcinfo -p 127.0.0.1

发现多了很多
 
4、配置nfs (NFS配置文件/etc/exports)
创建目录/it/it/a文件作为共享目录和共享文件

mkdir /it
touch /it/a


编辑文件(读写,同步,其它服务器挂载后root可操作)

vim /etc/exports
/it 192.168.2.0/24(rw,sync,no_root_squash)
(no_root_squash:允许客户端root用户操作)

5、重启NFS
systemctl reload nfs或者exportfs -r
{
若出现exportfs: /home requires fsid= for NFS export

解决方法:
/home 192.167.253.0/24(fsid=0,rw,sync,no_root_squash) //加入fsid=0参数就可

}
nfs默认用户nfsnobody
grep nfsno /etc/passwd

没有的话,自己创建
groupadd -g -f 65534 nfsnobody
useradd nfsnobody -u 65534 -g nfsnobody -s /sbin/nologin -M

6、授权

chown -R nfsnobody.nfsnobody /it

7、检查自己

showmount -e 192.168.2.21  (exportfs)

8、服务器本地挂载:

mount -t nfs 192.168.2.21:/it /mnt

 

本地测试成功 


 

二、客户端B下操作(IP地址:192.168.2.25)

1、查看NFS安装情况:

rpm -qa nfs-utils rpcbind
(安装nfs-utils的目的是为了获得showmount命令)
2、启动RPC:

systemctl start rpcbind

开机自启动:

systemctl enable rpcbind
 
netstat -lntup|grep 111

3、查看NFS服务器提供的共享目录

showmount -e 192.168.2.21

{
i、若出现clnt_create: RPC: Program not registered:程序没有注册

说明:RPC服务器开启了,但NFS没有告诉RPC开启的服务端口
重启nfs(首先检查服务端NFS是否开启)

systemctl start nfs(十以上版本sudo service nfs-server start)或者(systemctl start nfs-server)

检查:rpcinfo -p 127.0.0.1(出现很多表明可以了)

ii、若出现:

去服务端(192.168.2.21)关闭防火墙

systemctl stop firewalld

}
4、挂载测试(将192.168.2.21挂载到192.168.2.25下)

mount -t nfs 192.168.2.21:/it /mnt

若出现:
 
则需要关掉防火墙:service firewalld stop

挂载成功。

 三、NFS客户端开机自启动挂载

方法一:/etc/rc.local
chmod +x /etc/rc.d/rc.local
vim /etc/rc.local
在底部加上
/bin/mount -t nfs 192.168.109.132:/it /mnt
(将192.168.109.132挂载到192.168.109.131下) 
然后reboot重启
查看是否成功

 
方法二:放入vim /etc/fstab(有坑)
192.168.109.132:/it   /mnt   nfs  defaults      0 0
开启延迟满足的服务remote-fs.target(centos7)   netfs(centos6) 
systemctl start remote-fs.target
systemctl enable remote-fs.target
systemctl status remote-fs.target
  

(Debian)统信uosNFS只是安装包不同

服务器安装包:
apt-get install nfs-kernel-server
客户端安装包:
apt install -y nfs-common 
dpkg -l nfs-kernel-server查看包
posted @ 2022-04-20 17:10  惊小呆  阅读(453)  评论(0编辑  收藏  举报