CentOS 7 NFS 配置

2018/05/07 Linux

1. 环境说明

CentOS 7(最小安装)

$ cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
名称 IP地址 Descprition
服务器 192.169.0.101 服务端IP
客户 192.168.0.100 客户端IP

根据官网说明第8章网络文件系统(NFS) - 红帽客户门户,CentOS 7.4以后,支持NFS v4.2不需要rpcbind了,但是如果客户端只支持NFC v3则需要rpcbind这个服务。

2. 服务端

2.1. 服务端安装

使用yum安装NFS安装包。

$ sudo yum install nfs-utils

注意

只安装nfs-utils即可,rpcbind属于它的依赖,也会安装上。

服务端配置

设置NFS服务开机启动

$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs

启动NFS服务

$ sudo systemctl start rpcbind
$ sudo systemctl start nfs

防火墙需要打开rpc-bind和nfs的服务

$ sudo firewall-cmd --zone=public --permanent --add-service=rpc-bind
success
$ sudo firewall-cmd --zone=public --permanent --add-service=mountd
success
$ sudo firewall-cmd --zone=public --permanent --add-service=nfs
success
$ sudo firewall-cmd --reload
success

配置共享目录

服务启动之后,我们在服务端配置一个共享目录

$ sudo mkdir /data
$ sudo chmod 755 /data

根据这个目录,相应配置导出目录

$ sudo vi /etc/exports

添加如下配置

/data/     192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)
/data:共享目录位置。
192.168.0.0/24:客户端IP范围,*代表所有,即没有限制。
rw:权限设置,可读可写。
sync:同步共享目录。
no_root_squash:可以使用root授权。
no_all_squash:可以使用普通用户授权。
:wq 保存设置之后,重启NFS服务。

$ sudo systemctl restart nfs

可以检查一下本地的共享目录

$ showmount -e localhost
Export list for localhost:
/data 192.168.0.0/24

这样,服务端就配置好了,接下来配置客户端,连接服务端,使用共享目录。

2.2. 客户端

客户端安装

$ sudo yum install nfs-utils

客户端配置

设置rpcbind服务的开机启动

$ sudo systemctl enable rpcbind

启动NFS服务

$ sudo systemctl start rpcbind

注意

客户端不需要打开防火墙,因为客户端时发出请求方,网络能连接到服务端即可。 客户端也不需要开启NFS服务,因为不共享目录。

客户端连接NFS

先查服务端的共享目录

$ showmount -e 192.168.0.101
Export list for 192.168.0.101:
/data 192.168.0.0/24

在客户端创建目录

$ sudo mkdir /data

挂载

$ sudo mount -t nfs 192.168.0.101:/data /data

挂载之后,使用可以mount命令查看一下

$ mount
...
...
192.168.0.101:/data on /data type nfs4 (rw,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.100,local_lock=none,addr=192.168.0.101)

这说明已经挂载成功了。

测试NFS

测试一下,在客户端向共享目录创建一个文件

$ cd /data
$ sudo touch a

之后取NFS服务端192.168.0.101查看一下

$ cd /data
$ ll
total 0
-rw-r--r--. 1 root root 0 Aug  8 18:46 a

可以看到,共享目录已经写入了。

客户端自动挂载

自动挂载很常用,客户端设置一下即可。

$ sudo vi /etc/fstab

在结尾添加类似如下配置

#
# /etc/fstab
# Created by anaconda on Thu May 25 13:11:52 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=414ee961-c1cb-4715-b321-241dbe2e9a32 /boot                   xfs     defaults        0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
192.168.0.101:/data      /data                   nfs     defaults        0 0

由于修改了/etc/fstab,需要重新加载systemctl。

$ sudo systemctl daemon-reload

之后查看一下

$ mount
...
...
192.168.0.101:/data on /data type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.100,local_lock=none,addr=192.168.0.101)

此时已经启动好了。如果实在不放心,可以重启一下客户端的操作系统,之后再查看一下。

结论 本文演示了CentOS 7下yum安装和配置NFS,以及服务端和客户端的配置。

Search

    Table of Contents