在CentOS 8上如何安装NFS服务器和客户端
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