本文介绍在CentOS 8/RHEL 8操作系统上安装和配置NFS服务器的方法。
简介 NFS代表网络文件系统,它使客户端系统能够通过网络访问存储在远程共享服务器上的文件,并将这些文件系统用作本地安装的文件系统,NFS是客户端和服务器文件系统(FS)。 通过使用NFS共享存储,系统管理员可以将资源整合到网络上的集中式服务器上,文件可以在同一网络上的多个系统之间轻松共享,客户端系统可以使用(读取、写入)权限访问远程共享,并且无权访问底层块存储。
支持的NFS版本 以下是RHEL 8支持的NFS版本: 1、NFS版本3(NFSv3) 支持安全的异步写入,并且在错误处理方面比以前的NFSv2更强大。 支持64位文件大小和偏移,允许客户端访问超过2GB的文件数据。 2、NFS版本4(NFSv4) 通过防火墙和Internet工作。 不再需要rpcbind服务。 支持访问控制列表(ACL)。 利用有状态操作。 注:本文将在RHEL/CentOS系统上设置NFSv4.2。
一、更新服务器并设置主机名 你的服务器应具有静态IP地址和静态主机名,以便重新启动: sudo yum -y update sudo hostnamectl set-hostname server.example.com --static 参考:在RHEL 8/CentOS 8系统上配置静态IP地址的方法、在RHEL 8系统上设置主机名和时区。
二、安装NFS服务器包 接下来是在RHEL 8/CentOS 8系统上安装NFS服务器包: sudo yum -y install nfs-utils 安装完成后,启动并启用nfs-server服务: sudo systemctl enable --now nfs-server rpcbind 状态应显示“running”,如下图:
三、配置方法:在RHEL/CentOS 8上导出NFS共享 有两种方法可以在NFS服务器上配置导出: 1、手动编辑/etc/exports配置文件。 2、在命令行上使用exportfs实用程序。 /etc/exports文件控制将哪些文件系统导出到远程主机并指定选项,它遵循以下语法规则: 1]、空行被忽略。 2]、要添加注释,请使用井号(#)开始一行。 3]、可以使用反斜杠(\)包装长行。 4]、每个导出的文件系统都应该在各自的行上。 5]、在导出的文件系统之后放置的任何授权主机列表必须用空格字符分隔。 6]、每个主机的选项必须直接放在主机标识符后面的括号中,而主机和第一个括号之间没有任何空格。 对于此设置,我将一个辅助磁盘添加到我的服务器,容量为20GB,我们将对此磁盘进行分区并在其上创建文件系统以用作NFS共享: $ lsblk | grep sdb sdb 8:16 0 20G 0 disk # Create partition and file system sudo parted -s -a optimal -- /dev/sdb mklabel gpt sudo parted -s -a optimal -- /dev/sdb mkpart primary 0% 100% sudo parted -s -- /dev/sdb align-check optimal 1 sudo mkfs.xfs /dev/sdb1 我们要将它挂载到/data目录: sudo mkdir /data echo "/dev/sdb1 /data xfs defaults 0 0" | sudo tee -a /etc/fstab sudo mount -a 我们检查设置以确认: $ df -hT | grep /data /dev/sdb1 xfs 20G 176M 20G 1% /data 我将在/data/nfshare上创建将导出到NFS客户端的目录: sudo mkdir /data/nfshare 现在我们需要修改/etc/exports来配置NFS共享,结构是: export host(options) 也可以指定多个主机,以及每个主机的特定选项,如下所示: export host1(options1) host2(options2) host3(options3) 注:export是要导出的目录、host是共享导出的主机或网络、options用于主机的选项列表。 在我的设置中,我将赋予导出的文件系统读写权限,以允许远程主机对文件系统上共享的数据进行更改,我的主机将是一个网络172.16.54.0/24。 所以我的/etc/exports文件中的行将是: /data/nfshare 172.16.54.0/24(rw,no_root_squash) no_root_squash选项禁用root压缩,使远程root用户具有root权限,这通常是NFS共享上的VM安装所必需的。 要了解有关可用选项的更多信息,请运行: $ man exports 完成设置后,使用exportfs实用程序有选择地导出目录,而无需重新启动NFS服务: $ sudo exportfs -rav exporting 172.16.54.0/24:/data/nfshare 1]、r:通过在/etc/lib/nfs/xtab中构造新的导出列表,导出/etc/exports中列出的所有目录。 2]、a:导出或取消导出所有目录,具体取决于传递给exportfs的其他选项。 3]、v:详细操作,显示正在发生的事情。 如果Firewalld正在运行,请允许NFS服务: sudo firewall-cmd --add-service=nfs --permanent sudo firewall-cmd --add-service={nfs3,mountd,rpc-bind} --permanent sudo firewall-cmd --reload 需要启用SELinux boolean: sudo setsebool -P nfs_export_all_rw 1 注:更深入的应用,可参考第12章 使用Samba或NFS实现文件共享一文。
相关主题 |