Oracle Solaris 11.1 릴리스부터 NFS의 기본 전송은 RDMA(Remote Direct Memory Access) 프로토콜입니다. 이 프로토콜은 고속 네트워크를 통해 메모리 간 데이터 전송을 제공합니다. 구체적으로, RDMA는 CPU를 사용하지 않고 메모리에서/메모리로 직접 원격 데이터를 전송하는 기능을 제공합니다. 또한 RDMA는 직접 데이터 배치 기능도 제공하므로 데이터 복사본이 없어져 CPU 작업이 더욱 줄어듭니다. 따라서 RDMA는 호스트 CPU를 해제할 뿐 아니라 호스트 메모리 및 I/O 버스에 대한 경합도 줄여 줍니다. 이 기능을 제공하기 위해 RDMA는 SPARC 및 x86 플랫폼에서 사용할 수 있는 InfiniBand의 상호 연결 I/O 기술을 Oracle Solaris 운영 체제와 결합합니다. 다음 그림에서는 UDP, TCP 등의 다른 프로토콜에 대한 RDMA의 관계를 보여줍니다.
그림 2-1 RDMA와 다른 프로토콜 간의 관계
RDMA는 NFS의 기본 전송 프로토콜이므로 클라이언트나 서버에서 RDMA를 사용하기 위해 특수한 share 또는 mount 옵션은 필요하지 않습니다. 기존 자동 마운트 맵 vfstab 및 파일 시스템 공유도 RDMA 전송에서 작동합니다. RDMA 전송을 통한 NFS 마운트는 클라이언트와 서버 간의 InfiniBand 연결이 있으면 투명하게 수행됩니다. InfiniBand 연결 기능은 SPARC 및 x86 플랫폼에서 모두 작동합니다. 클라이언트와 서버에서 모두 RDMA 전송을 사용할 수 없는 경우에는 TCP 전송이 초기 폴백으로 사용되고, TCP도 사용할 수 없으면 UDP가 사용됩니다. 그러나 –proto=rdma 마운트 옵션을 사용하면 NFS 마운트가 RDMA만 사용하도록 강제 지정됩니다.
TCP 및 UDP만 사용하도록 지정하려면 –proto=tcp/udp mount 옵션을 사용합니다. 이 옵션을 사용하면 NFS 클라이언트에서 RDMA가 사용 안함으로 설정됩니다. NFS 마운트 옵션에 대한 자세한 내용은 mount_nfs(1M) 및 mount(1M) 매뉴얼 페이지를 참조하십시오.