系统管理指南:网络服务

NFS Over RDMA

从 Solaris 10 发行版开始,NFS 的缺省传输为远程直接内存访问 (Remote Direct Memory Access, RDMA) 协议,这是一种通过高速网络实现内存到内存数据传输的技术。具体来说,RDMA 可提供不受 CPU 干预而直接进出内存的远程数据传输。RDMA 还可提供直接数据放置,这消除了数据副本,进一步消除了 CPU 干预。这样,RDMA 不仅减轻了主机 CPU 的负担,而且还减少了主机内存和 I/O 总线的争用。 为提供此功能,RDMA 将 InfiniBand-on-SPARC 平台的互连 I/O 技术与 Solaris 操作系统相结合。下图说明了 RDMA 与其他协议(如 UDP 和 TCP)的关系。

图 6–1 RDMA 与其他协议的关系

文中对该图形进行了说明。

由于 RDMA 是 NFS 的缺省传输协议,因此,在客户机或服务器上使用 RDMA 时不需要特殊的 sharemount 选项。现有的自动挂载程序映射 vfstab 和 dfstab 可用于 RDMA 传输。如果 SPARC 平台上在客户机和服务器之间存在 InfiniBand 连接,则会以透明方式通过 RDMA 进行 NFS 挂载。如果 RDMA 传输在客户机和服务器上都不可用,则 TCP 传输为首选备用传输协议,如果 TCP 不可用,则会再使用 UDP。但是请注意,如果使用 proto=rdma 挂载选项,则会强制 NFS 挂载仅使用 RDMA。

要指定仅使用 TCP 和 UDP,可以使用 proto=tcp/udp mount 选项。此选项可在 NFS 客户机上禁用 RDMA。有关 NFS 挂载选项的更多信息,请参见 mount_nfs(1M) 手册页和mount 命令


注 –

用于 InfiniBand 的 RDMA 会使用 IP 寻址格式和 IP 查找基础结构来指定对等点。但是,由于 RDMA 是单独的协议栈,因此,它没有完全实现所有的 IP 语义。例如,RDMA 不会使用 IP 寻址来与对等点通信。因此,RDMA 可能会跳过基于 IP 地址的各种安全策略的配置。但是,不会跳过 NFS 和 RPC 管理策略,如 mount 限制和安全 RPC。