在CentOS 8上如何安装NFS服务器和客户端

时间:2019-04-29 03:18:01  来源:igfitidea点击:

NFS网络文件系统是一个流行的、跨平台和分布式文件系统。
用于通过网络协议将本地文件系统共享。这样客户端就可以通过网络访问共享的目录和文件。就像在本地安装一样。

在CentOS/RHEL 8中,支持的NFS版本是NFSv3和NFSv4,默认的NFS版本是4.2,其中支持访问控制列表(acl)、服务器端复制、空间限制等。

服务器信息

NFS 服务器 IP: 10.20.20.8
NFS 客户端 IP: 10.20.20.9

服务端

在CentOS 8上安装NFS服务器

在NFS服务器上安装所需的包NFS-utils。它为内核NFS服务器提供了一个守护进程以及相关工具(比如showmount)。

# dnf install nfs-utils -y

启动nfs-server服务,设置在系统启动时自动启动,然后查看其状态

# systemctl start nfs-server.service
# systemctl enable nfs-server.service
# systemctl status nfs-server.service

运行NFS服务或者挂载NFS共享的文件系统还需要运行其他服务。
比如nfsd、NFS-idmapd、rpcbind 和
rpc.mountd, lockd, rpc.statd, rpc.rquotad, rpc.idmapd。

NFS服务端的配置文件

  • /etc/nfs.conf– NFS守护进程和工具的主配置文件。
  • /etc/nfsmount.conf– NFS 挂载的配置文件。

在NFS服务端创建要共享的文件系统

我们将创建四个共享文件系统

# mkdir -p  /mnt/nfs_shares/{Human_Resource,Finance,Marketing}
# mkdir  -p /mnt/backups
# ls -l /mnt/nfs_shares/

在NFS服务端上的配置文件 /etc/exports中导出上述文件系统,指定NFS客户端可以访问的本地文件系统。

/mnt/nfs_shares/Human_Resource  	10.20.20.0/24(rw,sync)
/mnt/nfs_shares/Finance			10.20.10.0/24(rw,sync)
/mnt/nfs_shares/Marketing		10.20.30.0/24(rw,sync)
/mnt/backups				10.20.20.9/24(rw,sync,no_all_squash,root_squash)

其中

rw读写权限
sync同步操作,在请求时,NFS服务端将信息写入磁盘
all_squash将客户端请求中的所有uid和gid映射到匿名用户。
no_all_squash用于将客户端请求中的所有uid和gid映射到NFS服务器上相同的uid和gid。
root_squash将来自客户端root用或者UID/GID为0的用户的请求映射到匿名的UID/GID。

共享文件系统

使用exportfs命令共享文件系统
-a表示导出或取消导出所有目录
-r表示重新导出/etc/exports.d下所有目录和文件,使用/etc/exports和/var/lib/nfs/etab进行同步
-v显示详细信息

# exportfs -arv

查看当前导出的列表:

# exportfs  -s

开放防火墙

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpc-bind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

客户端

安装NFS客户端软件包

在CentOS 6,7 /RHEL系统

# yum install nfs-utils nfs4-acl-tools -y

在CentOS 8/RHEL系统

# dnf install nfs-utils nfs4-acl-tools -y

在Debian/Ubuntu系统

$ sudo apt install nfs-common nfs4-acl-tools

运行showmount命令,查看NFS服务端的挂载信息。

# showmount -e 10.20.20.8

在客户端中创建目录,用于挂载远程NFS文件系统。
然后将其挂载为ntf文件系统。

# mkdir -p /mnt/backups
# mount -t nfs  10.20.20.8:/mnt/backups /mnt/backups

查看远程共享的文件系统是否已经挂载好。

# mount | grep nfs

将挂载命令添加到 /etc/fstab中,这样系统在重启时能自动挂载:

# echo "10.20.20.8:/mnt/backups     /mnt/backups  nfs     defaults 0 0">>/etc/fstab
# cat /etc/fstab

测试nfs文件系统是否可用。 创建一些文件来测试。

在服务器端执行:

# touch /mnt/backups/file1 

在客户端执行:

# ls -l /mnt/backups/file1

如果客户端不需要nfs文件系统了,可用像本地文件系统一样卸载:

# umount /mnt/backups