2.10. NFS 서버에서 RDMA를 통해 NFS 활성화
RDMA(Remote Direct Memory Access)는 클라이언트 시스템이 스토리지 서버의 메모리에서 자체 메모리로 직접 데이터를 전송할 수 있는 프로토콜입니다. 이렇게 하면 스토리지 처리량이 향상되고 서버와 클라이언트 간의 데이터 전송 대기 시간이 단축되고 두 종료 모두에서 CPU 부하가 줄어듭니다. NFS 서버와 클라이언트가 모두 RDMA를 통해 연결된 경우 클라이언트는 NFSoRDMA를 사용하여 내보낸 디렉터리를 마운트할 수 있습니다.
사전 요구 사항
- NFS 서비스가 실행 중이고 구성됨
- RoCE(InfiniBand 또는 RDMA over Converged Ethernet) 장치가 서버에 설치되어 있습니다.
- IP over InfiniBand (IPoIB)는 서버에 구성되고 InfiniBand 장치에 IP 주소가 할당됩니다.
절차
rdma-core
패키지를 설치합니다.# dnf install rdma-core
패키지가 이미 설치된 경우
/etc/rdma/modules/rdma.conf
파일의xprtrdma
및svcrdma
모듈이 주석 해제되었는지 확인합니다.# NFS over RDMA client support xprtrdma # NFS over RDMA server support svcrdma
선택 사항: 기본적으로 RDMA를 통한 NFS에서는 포트 20049를 사용합니다. 다른 포트를 사용하려면
/etc/nfs.conf
파일의[nfsd]
섹션에서rdma-port
설정을 설정합니다.rdma-port=<port>
firewalld
에서 NFSoRDMA 포트를 엽니다.# firewall-cmd --permanent --add-port={20049/tcp,20049/udp} # firewall-cmd --reload
20049 이외의 다른 포트를 설정하면 포트 번호를 조정합니다.
nfs-server
서비스를 다시 시작합니다.# systemctl restart nfs-server
검증
InfiniBand 하드웨어가 있는 클라이언트에서 다음 단계를 수행합니다.
다음 패키지를 설치합니다.
# dnf install nfs-utils rdma-core
RDMA를 통해 내보낸 NFS 공유를 마운트합니다.
# mount -o rdma server.example.com:/nfs/projects/ /mnt/
기본값(20049) 이외의 포트 번호를 설정하면 port
= <port_number>
를 명령에 전달합니다.# mount -o rdma,port=<port_number> server.example.com:/nfs/projects/ /mnt/
rdma
옵션을 사용하여 공유가 마운트되었는지 확인합니다.# mount | grep "/mnt" server.example.com:/nfs/projects/ on /mnt type nfs (...,proto=rdma,...)
추가 리소스