프로젝트 개요
Canonical의 OpenStack 공식 가이드를 참고해서
Juju를 이용해 OpenStack 클러스터를 구축했다.
스토리지는 Ceph를 연동하여
- 볼륨 저장(Cinder + Ceph)
- 이미지 저장(Glance + Ceph)
- 오브젝트 스토리지(Ceph RadosGW)
용도로 사용했다.
Juju로 배포된 주요 스토리지 유닛 설명
-
ceph-mon
Ceph 클러스터 상태를 관리하는 서버.
- 클러스터 상태를 모니터링하고
- 데이터 저장 위치를 결정하는 CRUSH 맵을 관리함.
-
ceph-osd
실제 데이터를 저장하는 Ceph 스토리지 서버.
- 디스크를 직접 사용해서 데이터를 저장하고 복제.
- 하나의 ceph-osd 유닛 = 하나 이상의 디스크 (OSD)
-
ceph-radosgw
오브젝트 스토리지(S3 API)를 제공하는 서버.
-
cinder
OpenStack의 볼륨 서비스.
- VM에 추가할 디스크(Volume)를 생성/삭제/관리한다.
-
cinder-ceph
Cinder와 Ceph을 연결해주는 드라이버 역할.
- Cinder가 생성하는 볼륨이 Ceph에 저장되게 함.
블록스토리지 흐름 (Cinder + Ceph)
- 사용자가 Horizon 대시보드나 CLI로 볼륨 생성 요청
- Cinder가 요청을 받아 cinder-ceph를 통해 Ceph에 RBD 이미지를 생성
- 생성된 RBD 이미지는 Ceph OSD에 분산 저장
- 생성된 볼륨은 Nova(Compute) 인스턴스에 attach 가능
- 인스턴스 내부에서는 일반 디스크처럼 사용
✅ 실제로는 VM 인스턴스가 부팅될 때도 Glance에서 이미지를 가져오고,