公司需要想搭个NFS服务器记当一下过程
一、环境centos 7
1.要设定好 NFS 服务器我们必须要有两个软件才行,分别是:
RPC 主程序:rpcbind
NFS 主程序:nfs-utils
2 . 先查看系统中有没有这两个程序:
[root@localhost opt]# rpm -qa | grep nfs
[root@localhost opt]# rpm -qa | grep rpcbind
没有的话可以 yum 安装(不在重复,本系统已安好)
[root@localhost opt]# systemctl status rpcbind
[root@localhost opt]# systemctl status nfs
查看这两个服务发现 nfs 没有启动,用下面命令启动即可
[root@localhost opt]# systemctl start nfs
3. 配置服务
1)、主要配置文件:/etc/exports
这个档案就是 NFS 的主要配置文件了!不过,系统并没有默认值,所以这个档案 不一定会存在,你可能必须要使用 vim 主动的建立起这个
2)、 NFS 文件系统维护指令:/usr/sbin/exportfs
这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享
3)、 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,这个指令是 NFS 系统里面相当重要的一个!
4)、分享资源的登录档:/var/lib/nfs/*tab
在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面,在该目录下有两个比较重要的登录档, 一个是 etab ,主要记录了 NFS 所分享出来的目录的完整权限设定值;另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。
5)、客户端查询服务器分享资源的指令:/usr/sbin/showmount
这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!
4、在NFS服务端上创建共享目录/data/file并设置权限
[root@localhost ~]# mkdir -p /data/file
[root@localhost ~]# chmod 666 /data/file/
编辑export文件
[root@localhost ~]# vim /etc/exports 加入如下内容
/data/lys 192.168.2.0/24(rw,no_root_squash,no_all_squash,sync)
配置生效
[root@localhost ~]# exportfs -r
重启服务
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl restart rpcbind
查看是否成功
[root@localhost ~]# rpcinfo -p localhost
二。1)客户端安装 也要 yum -y install nfs-utils rpcbind安装这两个服务,启动后创建目录
[root@localhost opt]# yum -y install nfs-utils rpcbind
[root@localhost opt]# mkdir /file
2) 查看一下服务端抛出的nfs 服务信息
[root@localhost opt]# showmount -e 192.168.110.155
Export list for 192.168.110.155:
/data/file 192.168.110.0/24
选项与参数:
-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;
在你的 NFS 服务器设定妥当之后,我们可以在 server 端先自我测试一下是否可以联机喔!就是利用 showmount 这个指令来查阅!
选项与参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据。
3)客户端挂载一下就可以了
root@localhost opt]# mount -t nfs 192.168.110.155:/data/lys /lys -o proto=tcp -o nolock
4)查看一下信息
[root@localhost opt]# df -h
Filesystem Size Used Avail Use% Mounted on
192.168.110.155:/data/lys 2.0T 1.3G 1.9T 1% /file
会看到这个信息就挂载成功了
查看 RPC 服务的注册状况
[root@localhost /]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 36492 status
100024 1 tcp 54640 status
100005 1 udp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 60938 nlockmgr
100021 1 tcp 34620 nlockmgr
100021 3 tcp 34620 nlockmgr
卸载已挂在的NFS
umount /file/
补充部分:
为了方便配置防火墙,需要固定nfs服务端口
NFS启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFS端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。
分配端口,编辑配置文件:
[root@localhost data]# vim /etc/sysconfig/nfs
添加:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
重启 nfs
[root@localhost data]# systemctl restart nfs
查看,可以看到,随机端口以固定
root@localhost data]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 56140 status
100024 1 tcp 38177 status
100005 1 udp 30003 mountd
100005 1 tcp 30003 mountd
100005 2 udp 30003 mountd
100005 2 tcp 30003 mountd
100005 3 udp 30003 mountd
100005 3 tcp 30003 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 30002 nlockmgr
100021 3 udp 30002 nlockmgr
100021 4 udp 30002 nlockmgr
100021 1 tcp 30002 nlockmgr
100021 3 tcp 30002 nlockmgr
100021 4 tcp 30002 nlockmgr
端口固定 用firewalld 防火墙就可以控制端口了!!!(完)