Software Defined Storage

IBM Ceph Storage 7.0 - NVMe over TCP Gateway (Tech Preview)

DaehanCNI 2024. 4. 13. 09:00

IBM Storage Ceph 7.0 에서 개선 사항 중, 하나인 NVMe over TCP Storage Gateway에 대한 추가 및 설정 방법에 대하여 알아보도록 하겠습니다. 다음 내용은 Tech Preview Code 로 참고만 하시는게 좋을 것 같습니다. 

 

NVMe over TCP 는 데이터 센터에서 사용되는 고대역폭, 저지연 광 네트워크를 활용하여 NVMe 드라이브의 성능 및 집약도, 병렬성을 확보하도록하는 네트워크 전송 기반 스토리지 프로토콜 입니다. 이러한 방식을 이용하여 증가하고 있는 대규모의 데이터 센터, 컨테이터 및 가상 머신에 대하여 효율적인 고성능 솔루션을 제공할 수 있습니다. 

 

 

NVMe Gateway 서비스와 리스너를 구성하여 NVMe namespace를 Ceph RBD 이미지와 연결하여 사용할 수 있습니다. 다음은 Ceph Storage에 NVMe Gateway 설치 및 구성하는 방법에 대하여 알아보도록 하겠습니다. 

 

1. NVMe Gateway 설치

1.1 Pool 생성

$ ceph osd pool create $nvme_datastore01

 

1.2 Pool 초기화

$ rbd pool init $nvme_datastore01

 

1.3 RBD Pool 에 이미지 생성 (MB 단위)

$ rbd create $nvme_image01 --size $disk_size --pool $nvme_datastore01

 

1.4 NVMeof 서비스에 추가

$ ceph orch apply nvmeof $nvme_datastore01 --placement="$nvme-demo-2"

기존 클러스터 노드에 NVMef를 추가. (예: nvme-demo-2 노드에 추가)

 

1.5 NVMeof 서비스 확인

 $ ceph orch ls nvmeof

작업 시간이 소요되며, RUNNING 결과 (1/1)로 확인할 수 있습니다.

 

1.6 Ceph 관리노드에 로그인 (자동 로그인 일 경우, 생략)

$ podman login -u cp -p $entitlement_key_goes_here cp.icr.io

 

1.7 NVMe 이름 복사 (향후 사용, vme-demo-2 노드에서 실행)

$ cat /etc/nvme/hostnqn

 

1.8 NQN 추가 (관리 노드에서 실행)

$ nqn=”$nqn.2014-08.org.nvmexpress:uuid:b7340342-f923-173a-a550-4d9d60f2ecd6”

 

2. NVMe Gateway 구성

2.1 NVMe Subsystem 생성

$ podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 create_subsystem --subnqn $nqn --max-namespaces 256

작업 시간이 많이 소요되며, 생성 중 질문에 대해 "True" 응답한다. 

 

2.2 NVMeof TCP Gateway daemon 이름 확인

$ ceph orch ps | grep nvmeof

 

 

2.3 NVMe Subsystem에 Daemon 추가

$ podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 create_listener -n $nqn -g client.$nvmeof.nvme_datastore01.nvme-demo-2.fidpef  -a $ip_of_node -s 4420

 

참고 사항으로 전자에 "client" 를 붙여서 진행합니다. 

 

2.4 승인된 Initiators 생성

$ podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 add_host --subnqn $nqn --host "$nqn.2014-08.com.vmware:nvme:nvme-esxi"

 

 

또는 모두가 접근 가능하도록 설정

$ podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 add_host --subnqn $nqn --host “*”

 


2.5 NMVe over TCP 할당 (RBD 이미지와 연결)

$   podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 create_bdev --pool $nvme_datastore01 --image $nvme_image01 --bdev $ceph_nvme_block01

 

 

2.6 Namespace 생성 (RBD 연동)

$  podman run -it cp.icr.io/cp/ibm-ceph/nvmeof-cli-rhel9:latest --server-address $ip_of_node --server-port 5500 add_namespace --subnqn $nqn --bdev $ceph_nvme_block01

 

 

 

이제까지 Ceph 클러스터 노드에 NVMe Gateway를 설치하는 법을 알아 보았습니다.

본 내용은 IBM Blog을 통하여 확인된 내용으로 Tech Preview 코드임을 참고하시기 바랍니다. 아래 링크를 통하여 blog 원본을 확인하실 수 있습니다. 

 

Original

https://community.ibm.com/community/user/storage/blogs/mike-burkhart/2024/01/25/ceph-70-brings-nvme-over-tcp-into-tech-preview

 

IBM Storage Ceph 7.0 brings NVMe over TCP into Tech Preview

IBM Storage Ceph 7.0 enables NVMe over TCP

community.ibm.com