pNFS 块布局服务器用户指南

Linux NFS 服务器现在支持 pNFS 块布局扩展。在这种情况下,NFS 服务器充当 pNFS 的元数据服务器 (MDS),除了处理对 NFS 导出的所有元数据访问外,还向客户端分发布局,以便直接访问与客户端共享的底层块设备。

要将 pNFS 块布局与 Linux NFS 服务器一起使用,导出的文件系统需要支持 pNFS 块布局(目前只有 XFS),并且文件系统必须位于共享存储(通常是 iSCSI)上,客户端和 MDS 都可以访问。到目前为止,文件系统需要直接位于导出的卷上,尚不支持在 MDS 和客户端上对卷进行条带化或串联。

在服务器上,如果文件系统支持,则会自动启用 pNFS 块卷支持。在客户端上,请确保内核启用了 CONFIG_PNFS_BLOCK 选项,nfs-utils 中的 blkmapd 守护进程正在运行,并且文件系统使用 NFSv4.1 协议版本挂载(mount -o vers=4.1)。

如果 nfsd 服务器需要隔离无响应的客户端,它会调用 /sbin/nfsd-recall-failed,第一个参数设置为客户端的 IP 地址,第二个参数设置为要隔离的文件系统的设备节点,不带 /dev 前缀。下面是一个示例文件,展示了如何将设备转换为来自 SCSI EVPD 0x80 的序列号

cat > /sbin/nfsd-recall-failed << EOF
#!/bin/sh

CLIENT="$1"
DEV="/dev/$2"
EVPD=`sg_inq --page=0x80 ${DEV} | \
        grep "Unit serial number:" | \
        awk -F ': ' '{print $2}'`

echo "fencing client ${CLIENT} serial ${EVPD}" >> /var/log/pnfsd-fence.log
EOF