
在企业环境中通过网络分发和共享文件系统是一项常见任务。久经验证的网络文件系统 (NFS) 与黄页协议 NIS 协同工作。如需与 LDAP 和 Kerberos 搭配使用且更为安全的协议,请选中 NFSv4(默认值)。结合使用 pNFS,您可以突破性能瓶颈。
NFS 与 NIS 一起使用时网络面向用户是透明的。利用 NFS,可以通过网络分发任意文件系统。进行适当的设置后,用户将发现自己始终处于同一环境中,而与当前使用的终端无关。
下面是 YaST 模块中使用的术语。
由 NFS 服务器导出的目录,客户端可将其集成到系统中。
NFS 客户端是通过网络文件系统协议使用来自 NFS 服务器的 NFS 服务的系统。TCP/IP 协议已集成到 Linux 内核中;无需再安装任何其他软件。
NFS 服务器向客户端提供 NFS 服务。运行中的服务器依赖于以下守护程序:nfsd(工作)、idmapd(到 ID 的用户和组名映射,反之亦然)、statd(文件锁定)和 mountd(装入请求)。
NFSv3 是版本 3 实施,支持客户端身份验证的“旧版”无状态 NFS。
NFSv4 是新的版本 4 实施,支持通过 kerberos 进行安全用户身份验证。NFSv4 只需要一个端口,因此,它比 NFSv3 更适合用于防火墙后的环境。
并行 NFS,属于 NFSv4 的一种协议扩展。任何 pNFS 客户端都可以直接访问 NFS 服务器上的数据。
要安装和配置 NFS 服务器,请参见相应的 SUSE Linux Enterprise Server 文档。
要将主机配置为 NFS 客户端,无需安装其他软件。将默认安装所有需要的包。
授权用户可以用 YaST NFS 客户端模块从 NFS 服务器将 NFS 目录装入本地文件树。按如下所示继续:
启动 YaST NFS 客户端模块。
单击 选项卡中的。输入 NFS 服务器的主机名、要导入的目录以及要在本地的哪个装入点装入此目录。
使用 NFSv4 时,在 选项卡中选择。另外,必须包含 NFSv4 服务器所用的相同值。默认域为 localdomain。
要对 NFS 使用 Kerberos 身份验证,必须启用 GSS 安全性。选择。
若要使用防火墙并允许从远程计算机访问服务,请启用 选项卡中的。防火墙状态将显示在复选框旁边。
单击保存更改。
配置写入/etc/fstab,并将装入指定的文件系统。当您稍后启动 YaST 配置客户端时,它还将读取此文件中的现有配置。
在通过网络以 NFS 共享形式装入根分区的(无磁盘)系统中,配置可供访问 NFS 共享的网络设备时需保持谨慎。
关闭或重引导系统时,默认的处理顺序是关闭网络连接,然后卸载根分区。对于 NFS 根分区,这种顺序会产生问题,因为在尚未激活与 NFS 共享的网络连接的情况下,根分区无法完全卸载。为防止系统停用相关的网络设备,请按第 16.4.1.2.5 节 “激活网络设备”中所述打开网络设备配置选项卡,然后在窗格中选择。
手动从 NFS 服务器导入文件系统的先决条件是运行 RPC 端口映射器。nfs 服务负责正确启动该程序;因此,请以 root 身份输入 systemctl start nfs 来启动该服务。然后就可以使用 mount 将远程文件系统像本地分区那样装入文件系统中:
mount host:remote-pathlocal-path
例如,要从 nfs.example.com 计算机导入用户目录,请使用:
mount nfs.example.com:/home /home
autofs 守护程序可用于自动装入远程文件系统。请在 /etc/auto.master 文件中添加以下条目:
/nfsmounts /etc/auto.nfs
如果 auto.nfs 文件正确填充,/nfsmounts 目录将作为客户端上所有 NFS 装入的 root 目录。选择 auto.nfs 这个名称是为了方便起见,您可以选择任何名称。在 auto.nfs 中为所有 NFS 装入添加条目,如下所示:
localdata -fstype=nfs server1:/data nfs4mount -fstype=nfs4 server2:/
以 root 身份运行 systemctl start autofs 来激活该设置。对于此示例,/nfsmounts/localdata,server1 的 /data 目录将通过 NFS 装入,server2 的 /nfsmounts/nfs4mount 将通过 NFSv4 装入。
如果在 autofs 服务正在运行时编辑了 /etc/auto.master 文件,则必须使用 systemctl restart autofs 重启动自动装载器才能使更改生效。
/etc/fstab #
通常,/etc/fstab 中的 NFSv3 装入项如下:
nfs.example.com:/data /local/path nfs rw,noauto 0 0
对于 NFSv4 装入,请在第三列中使用 nfs4 而不是 nfs:
nfs.example.com:/data /local/pathv4 nfs4 rw,noauto 0 0
noauto 选项可禁止在启动时自动装入文件系统。如果您要手动安装各文件系统,可以缩短只指定安装点的安装命令:
mount /local/path
如果您没有输入 noauto 选项,系统的 init 脚本将在启动时处理这些文件系统的装入。
NFS 是最老的协议之一,开发于上世纪八十年代。因此,如果您要共享小文件,NFS 通常能够满足需求。但是,如果您要传送大文件或有大量的客户端要访问数据,则 NFS 会陷入瓶颈并且严重影响系统性能。这是因为文件迅速变大,而以太网的相对速度没有完全跟上这一变化。
当您请求“普通” NFS 服务器中的文件时,服务器会查找文件元数据、收集所有数据并通过网络将数据传送到您的客户端。但是,无论文件的大小如何,性能瓶颈都会凸显出来:
如果是小文件,则大部分时间都花在收集元数据上。
如果是大文件,则大部分时间花在将数据从服务器传送到客户端上。
pNFS 或并行 NFS 则突破了此种限制,因为它将文件系统元数据从数据位置分离出来。因此,pNFS 需要两类服务器:
一个元数据或控制服务器,用于处理所有非数据通讯
一个或多个储存服务器,用于存放数据
元数据和储存服务器组成单独一个逻辑 NFS 服务器。当客户端要读取或写入时,元数据服务器会告诉 NFSv4 客户端使用哪个储存服务器访问文件块。客户端可以直接访问该服务器上的数据。
SUSE Linux Enterprise 仅支持在客户端上的 pNFS。
请执行过程 24.1, “导入 NFS 目录”中所述的步骤,但选中 复选框以及可选的 。YaST 会执行所有必需的步骤,并且会在文件 /etc/exports 中写入所有必要选项。
请参阅第 24.3.2 节 “手动导入文件系统”着手配置。大多数配置通过 NFSv4 服务器完成。对于 pNFS,唯一的区别是将 minorversion 选项和元数据服务器 MDS_服务器添加到您的 mount 命令:
mount -t nfs4 -o minorversion=1 MDS_SERVER MOUNTPOINT
为方便调试,请更改 /proc 文件系统中的值:
echo 32767 > /proc/sys/sunrpc/nfsd_debug echo 32767 > /proc/sys/sunrpc/nfs_debug
除了 exports、nfs 和 mount 的手册页外,还可在 /usr/share/doc/packages/nfsidmap/README 中找到关于配置 NFS 服务器和客户端的信息。有关更多联机文档,请参见以下网站:
在 SourceForge 上联机查找详细的技术文档。
关于设置采用 Kerberos 的 NFS 的描述,请参见 NFS Version 4 Open Source Reference Implementation。
如果您对 NFSv4 有疑问,请参考 Linux NFSv4 FAQ(Linux NFSv4 常见问题)。