8.10. 在 NFS 中启用 pNFS SCSI 布局
您可以将 NFS 服务器和客户端配置为使用 pNFS SCSI 布局访问数据。
先决条件
- 客户端和服务器必须能够向同一个块设备发送 SCSI 命令。就是说块设备必须位于共享的 SCSI 总线中。
- 块设备必须包含 XFS 文件系统。
- SCSI 设备必须支持 SCSI Persistent Reservations,如 SCSI-3 Ppriary Commands 规格中所述。
8.10.1. pNFS SCSI 布局 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
SCSI 布局基于 pNFS 块布局的工作。布局在 SCSI 设备中定义。它包含一系列固定大小的块来作为逻辑单元(LU),这些逻辑单元必须能够支持 SCSI 持久保留。LU 设备识别通过其 SCSI 设备识别。
在涉及长时间的单客户端访问文件的用例中,pNFS SCSI 表现良好。例如:邮件服务器或者虚拟机。
客户端和服务器之间的操作
当 NFS 客户端从文件读取或写入文件时,客户端会执行
LAYOUTGET
操作。服务器会使用文件在 SCSI 设备中的位置进行响应。客户端可能需要执行 GETDEVICEINFO
的额外操作,以确定要使用哪个 SCSI 设备。如果这些操作正常工作,客户端可以直接向 SCSI 设备发出 I/O 请求,而不是向服务器发送 READ
和 WRITE
操作。
客户端之间的错误或争用可能会导致服务器重新调用布局,或者不将它们发送给客户端。在这些情况下,客户端回退到向服务器发出
READ
和 WRITE
操作,而不是直接向 SCSI 设备发送 I/O 请求。
要监控操作,请参阅 第 8.10.6 节 “监控 pNFS SCSI 布局功能”。
设备保留
pNFS SCSI 通过分配保留来处理保护。在服务器向客户端发送布局之前,它会保留 SCSI 设备,以确保只有注册的客户端才可以访问该设备。如果客户端可以向那个 SCSI 设备发送命令,但没有在该设备上注册,那么该设备上的客户端的许多操作都会失败。例如,如果服务器没有向客户端提供该设备的布局,客户端上的 blkid 命令将无法显示 XFS 文件系统的 UUID。
服务器不会删除其自身的持久性保留。这样可在重启客户端和服务器后保护该设备中的文件系统中的数据。为了重新使用 SCSI 设备,您可能需要手动删除 NFS 服务器中的持久性保留。
8.10.2. 检查与 pNFS 兼容的 SCSI 设备 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这个过程检查 SCSI 设备是否支持 pNFS SCSI 布局。
先决条件
- 安装 sg3_utils 软件包:
yum install sg3_utils
# yum install sg3_utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 8.4. 检查与 pNFS 兼容的 SCSI 设备
- 在服务器和客户端中检查正确的 SCSI 设备支持:
sg_persist --in --report-capabilities --verbose path-to-scsi-device
# sg_persist --in --report-capabilities --verbose path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保设置了 Persist Through Power Los Active (PTPL_A
)位。例 8.8. 支持 pNFS SCSI 的 SCSI 设备
以下是支持 pNFS SCSI 的 SCSI 设备的sg_persist
输出示例。PTPL_A
位报告1
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- sg_persist(8) man page
8.10.3. 在服务器中设置 pNFS SCSI 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这个过程将 NFS 服务器配置为导出 pNFS SCSI 布局。
过程 8.5. 在服务器中设置 pNFS SCSI
- 在服务器中挂载在 SCSI 设备中创建的 XFS 文件系统。
- 将 NFS 服务器配置为导出 NFS 版本 4.1 或更高版本。在
/etc/nfs.conf
文件的[nfsd]
部分中设置以下选项:[nfsd] vers4.1=y
[nfsd] vers4.1=y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 NFS 服务器配置为通过 NFS 导出 XFS 文件系统,使用
pnfs
选项:例 8.9. /etc/exports 中的条目导出 pNFS SCSI
/etc/exports
配置文件中的以下条目将挂载到/exported/directory/
的文件系统导出到allowed.example.com
客户端,来作为 pNFS SCSI 布局:/exported/directory allowed.example.com(pnfs)
/exported/directory allowed.example.com(pnfs)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关配置 NFS 服务器的详情请参考 第 8.6 节 “配置 NFS 服务器”。
8.10.4. 在客户端中设置 pNFS SCSI 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这个过程将 NFS 客户端配置为挂载 pNFS SCSI 布局。
先决条件
- NFS 服务器被配置为通过 pNFS SCSI 导出 XFS 文件系统。请参阅 第 8.10.3 节 “在服务器中设置 pNFS SCSI”。
过程 8.6. 在客户端中设置 pNFS SCSI
- 在客户端中使用 NFS 版本 4.1 或更高版本挂载导出的 XFS 文件系统:
mount -t nfs -o nfsvers=4.1 host:/remote/export /local/directory
# mount -t nfs -o nfsvers=4.1 host:/remote/export /local/directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 不要在没有 NFS 的情况下直接挂载 XFS 文件系统。
其它资源
- 有关挂载 NFS 共享的详情请参考 第 8.2 节 “配置 NFS 客户端”。
8.10.5. 在服务器中释放 pNFS SCSI 保留 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
此流程释放 NFS 服务器在 SCSI 设备中拥有的持久保留。这可让您在不再需要导出 pNFS SCSI 时重新使用 SCSI 设备。
您必须从服务器中删除保留。它不能从不同的 IT Nexus 中删除。
先决条件
- 安装 sg3_utils 软件包:
yum install sg3_utils
# yum install sg3_utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
过程 8.7. 在服务器中释放 pNFS SCSI 保留
- 在服务器上查询现有保留:
sg_persist --read-reservation path-to-scsi-device
# sg_persist --read-reservation path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 8.10. 在 /dev/sda 上查询保留
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 删除服务器上的现有注册:
sg_persist --out \ --release \ --param-rk=reservation-key \ --prout-type=6 \ path-to-scsi-device
# sg_persist --out \ --release \ --param-rk=reservation-key \ --prout-type=6 \ path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例 8.11. 删除 /dev/sda 上的保留
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- sg_persist(8) man page
8.10.6. 监控 pNFS SCSI 布局功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以监控 pNFS 客户端和服务器是否交换正确的 pNFS SCSI 操作,或者它们是否回退到常规的 NFS 操作。
先决条件
- 配置了 pNFS SCSI 客户端和服务器。
8.10.6.1. 从使用 nfsstat 的服务器检查 pNFS SCSI 操作 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这个过程使用
nfsstat
工具来监控服务器的 pNFS SCSI 操作。
过程 8.8. 从使用 nfsstat 的服务器检查 pNFS SCSI 操作
- 监控服务器中服务的操作:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 客户端和服务器在以下情况下使用 pNFS SCSI 操作:
layoutget
、layoutreturn
和layoutcommit
计数器递增。这意味着服务器提供布局。- 服务器
读写
8.10.6.2. 使用 mountstats 从客户端检查 pNFS SCSI 操作 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
这个过程使用
/proc/self/mountstats
文件来监控客户端的 pNFS SCSI 操作。
过程 8.9. 使用 mountstats 从客户端检查 pNFS SCSI 操作
- 列出每个挂载的操作计数器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在结果中:
LAYOUT
统计指示客户端和服务器使用 pNFS SCSI 操作的请求。READ
和WRITE
统计指示客户端和服务器回退到 NFS 操作的请求。