• -------------------------------------------------------------
  • ====================================

Centos7安装NFS

建站指南 dewbay 4年前 (2020-01-15) 2459次浏览 已收录 0个评论 扫描二维码

简介

NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
Server 端 IP:192.168.0.1
0.查看 linux 系统信息:

Server:

[root@app home]# cat /etc/redhat-release

 

CentOS Linux release 7.2.1511 (Core)

Client:

[root@app home]# cat /etc/redhat-release

 

CentOS Linux release 7.2.1511 (Core)
1.查看是否安装了 nfs 和 rpcbind

[root@app home]# rpm -aq | grep nfs
[root@app home]# rpm -aq | grep rpcbind

rpcbind 是一个 RPC 服务,主要是在 nfs 共享时候负责通知客户端,服务器的 nfs 端口号的
2.安装 nfs 和 rpcbind

[root@app home]# yum install nfs-utils rpcbind

 

3.增加 nfs 配置文件

[root@app home]# vi /etc/exports
#重新 export 一次
[root@app home]#exportfs -rv

添加共享信息:

/home/adam/static 192.168.0.2(rw)

/home/adam/static:共享文件夹

192.168.0.2:可以挂载服务器目录的客户端 ip

(rw):该客户端对共享的文件具有读写权限
4.配置 hosts 文件

[root@app home]# vi /etc/hosts

192.168.0.1 hostname
192.168.0.1:服务器本机的 ip 地址
hostname:服务器的机器名

5.启动 nfs 和 rpcbind 服务

在 SUSE 上,服务名为 nfsserver,不是 nfs。
必须先启动 rpcbind,再启动 nfs,才能让NFS在 rpcbind 上注册成功

[root@app home]# service rpcbind start
[root@app home]# service nfs start

查看启动状态:

[root@app home]# service rpcbind status 
[root@app home]# service nfs status

注意,RPC 的状态是 Active: active (running);而NFS的状态是 Active: active (exited)。

查看自己共享的服务:

[root@app home]# showmount -e

/home/adam/static 192.168.0.2
6.查看 RPC 服务的注册状况

[root@app home]# rpcinfo -p localhost

NFS 服务使用的 111 和 2049 端口是固定的,mountd 端口是动态的,需要固定,然后在防火墙放行。
6.1 固定端口

[root@app home]# vi /etc/sysconfig/nfs

1.添加:

RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

2.重启 nfs 和 rpcbind:

[root@app home]# service rpcbind restart
[root@app home]# service nfs restart

(端口并未修改,reboot 系统后才修改)
6.2 防火墙放行端口

1.查看防火墙是否开启:

[root@app home]# firewall-cmd --state

 

2.设置防火墙(如果访问 ip 没有限制,就不需要添加-s ip 地址):

[root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 111 -j ACCEPT
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 111 -j ACCEPT
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 2049 -j ACCEPT
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 2049 -j ACCEPT
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p tcp --dport 30001:30004 -j ACCEPT
[root@app home]# iptables -A INPUT -s 192.168.0.2 -p udp --dport 30001:30004 -j ACCEPT
[root@app home]# service iptables save

 

tips:
在 centos7 中用 iptables 命令配置完策略规则后,需要保存策略永久生效,执行 service iptables save 时提示:

[root@app home]# service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

 

解决方法:

[root@app home]# systemctl stop firewalld
[root@app home]# systemctl mask firewalld
#安装 iptables services
[root@app home]# yum install iptables-services
#设置开机启动
[root@app home]# systemctl enable iptables
#重启 iptables service
[root@app home]# systemctl restart iptables
#执行保存配置命令
[root@app home]#service iptables save

 

Client 端 IP:192.168.0.2
1.客户端服务器也需要安装 nfs 和 rpcbind 服务,参考服务端,启动,检查服务是否正常。

[root@app home]# service rpcbind start
[root@app home]# service nfs start 
[root@app home]# service rpcbind status 
[root@app home]# service nfs status

 

2.显示 NFS 服务器共享目录列表

[root@app home]# showmount -e 192.168.0.1

Export list for192.168.10.1:
/home/adam/static 192.168.0.2

[root@app home]# showmount #显示 NFS 客户端信息
[root@app home]# showmount 192.168.0.1 #显示指定 NFS 服务器连接 NFS 客户端的信息
[root@app home]# showmount -e #显示输出目录列表
[root@app home]# showmount -e 192.168.1.1 #显示 NFS 服务器共享目录列表
[root@app home]# showmount -d #显示被挂载的共享目录
[root@app home]# showmount -a #显示客户端信息和共享目录
[root@app home]# showmount -a 192.168.1.1 #显示指定 NFS 服务器的客户端信息和共享目录


3.创建挂载目录

[root@app adam]# mkdir static

 

4.挂载服务端的共享目录

[root@app adam]# mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.0.1:/home/adam/static /home/adam/static

 

查看挂载的状态

[root@app adam]# mount | grep nfs

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
192.168.0.1:/home/adam/static on /home/adam/static type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.1,mountvers=3,mountport=30003,mountproto=udp,local_lock=all,addr=192.168.0.1)

4.1.设置客户端开机自动挂载服务端 NFS 服务(这种方式可能失败,使用 7.nfs 开机自动挂载方法)

[root@app adam]# vi /etc/fstab
192.168.0.1:/home/adam/static /home/adam/static nfs defaults 0 0

5.测试

[root@app adam]# cd static
[root@app static]# ll #可以看到服务端共享目录中文件

6.开机启动 NFS 服务

[root@app adam]# systemctl list-unit-files | grep nfs
proc-fs-nfsd.mount static 
var-lib-nfs-rpc_pipefs.mount static 
nfs-blkmap.service disabled
nfs-config.service static 
nfs-idmap.service static 
nfs-idmapd.service static 
nfs-lock.service static 
nfs-mountd.service static 
nfs-rquotad.service disabled
nfs-secure.service static 
nfs-server.service disabled
nfs-utils.service static 
nfs.service disabled#开机不启动
nfslock.service static 
nfs-client.target enabled
[root@app adam]# ll #systemctl enable nfs

rpcbind 不需要开机启动

[root@app adam]# systemctl list-unit-files | grep rpcbind
rpcbind.service indirect#间接启动(无法编辑)
rpcbind.socket enabled 
rpcbind.target static

7.nfs 开机自动挂载

#系统服务未完全启动,挂载会失败,在系统启动以后,再挂载
[root@app adam]# vi /etc/rc.local
#添加
sleep 30
mount -t nfs 192.168.0.1:/home/adam/static /home/adam/static
#赋予可执行权限
[root@app adam]# chmod +x /etc/rc.local

查看是否挂载上

[root@app adam]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 79G 1.8G 74G 3% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.4M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
192.168.0.1:/home/adam/static 79G 1.9G 74G 3% /home/adam/static
tmpfs 799M 0 799M 0% /run/user/0

露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Centos7安装NFS
喜欢 (1)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址