Ceph RBD 블록 스토리지 프로비저닝 및 클라이언트 마운트 구성

Ceph RBD 블록 스토리지 프로비저닝 및 클라이언트 마운트 구성

본 가이드는 Ceph RADOS Block Device(RBD)를 사용하여 블록 스토리지를 생성하고, 이를 리눅스 클라이언트 노드에 매핑 및 마운트하는 표준 프로세스를 다룹니다. 실습 환경은 클라이언트와 스토리지 노드가 통합된 단일 노드(ceph-client-01, IP: 10.0.1.50)를 기준으로 합니다.

1. Ceph 클러스터 상태 확인

스토리지 프로비저닝을 시작하기 전에 클러스터의 건강 상태를 검증해야 합니다. 관리자 노드에서 다음 명령어를 실행합니다.

ceph -s

출력 결과에서 HEALTH_OK 상태인지 확인합니다. PG(Placement Group) 비활성화, OSD 또는 Monitor 쿼럼 손실과 같은 치명적인 경고가 없어야 합니다.

2. RBD 스토리지 풀(Pool) 생성

블록 디바이스 데이터를 저장할 새로운 풀을 생성하고 RBD 애플리케이션을 활성화합니다.

ceph osd pool create block-storage-pool 128
ceph osd pool application enable block-storage-pool rbd

128은 실험 및 소규모 환경에 적합한 PG 수입니다. 풀 생성 후 목록을 확인합니다.

ceph osd pool ls detail | grep block-storage-pool

3. RBD 이미지(가상 블록 디바이스) 생성

생성한 풀 내에 20GB 크기의 RBD 이미지를 프로비저닝합니다.

rbd create block-storage-pool/data-volume-01 --size 20G --image-feature layering

이미지가 정상적으로 생성되었는지 확인합니다.

rbd info block-storage-pool/data-volume-01

4. 로컬 블록 디바이스로 매핑

RBD 이미지를 커널 수준에서 로컬 블록 디바이스로 매핑하기 위해 rbd 커널 모듈을 로드하고 매핑 명령을 실행합니다.

modprobe rbd
rbd map block-storage-pool/data-volume-01

매핑된 디바이스 경로를 확인합니다.

rbd showmapped

출력 결과에서 /dev/rbd0과 같은 경로가 할당된 것을 확인할 수 있습니다. 이로써 Ceph의 분산 스토리지가 로컬 시스템의 물리적 디스크처럼 인식됩니다.

5. 파일 시스템 포맷 및 마운트

매핑된 블록 디바이스에 ext4 파일 시스템을 생성하고, 마운트할 디렉토리를 준비합니다.

mkfs.ext4 /dev/rbd0
mkdir -p /data/ceph-rbd
mount /dev/rbd0 /data/ceph-rbd

마운트 상태와 용량을 검증합니다.

df -hT | grep rbd

6. 데이터 쓰기 및 분산 스토리지 검증

마운트된 디렉토리에 더미 데이터를 작성하여 I/O 작업이 정상적으로 수행되는지 테스트합니다.

cd /data/ceph-rbd
dd if=/dev/urandom of=sample_data.bin bs=1M count=500
ls -lh sample_data.bin

생성된 파일의 실제 데이터는 로컬 디스크가 아닌 Ceph OSD 노드들에 분산되어 저장되며, 리플리카 정책에 따라 노드 장애 시에도 데이터 가용성이 유지됩니다.

7. 시스템 재부팅 시 자동 마운트 구성

서버 재부팅 후에도 RBD 디바이스가 자동으로 매핑 및 마운트되도록 rbdmap 서비스를 구성합니다.

echo "block-storage-pool/data-volume-01 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring" | sudo tee -a /etc/ceph/rbdmap

rbdmap 서비스를 활성화하고 시작합니다.

systemctl enable rbdmap
systemctl start rbdmap

8. 가상화 환경(Libvirt/QEMU) 통합

RBD 블록 스토리지는 가상 머신의 디스크로 직접 연결할 수 있습니다. QEMU 및 Libvirt를 사용하여 RBD를 백엔드로 하는 인스턴스를 생성할 수 있습니다.

qemu-img create -f rbd rbd:block-storage-pool/compute-instance-01 50G
virt-install --name compute-instance-01 --ram 2048 --vcpus 2 \
  --disk path=rbd:block-storage-pool/compute-instance-01,format=raw,bus=virtio \
  --os-variant ubuntu22.04 --network network=default --graphics none --noautoconsole

이 구성을 통해 가상 머신은 Ceph 분산 블록 스토리지를 기본 디스크로 사용하게 되어, 라이브 마이그레이션 및 고가용성 구성이 용이해집니다.

태그: Ceph RBD BlockStorage linux libvirt

5월 29일 13:13에 게시됨