목록으로

클라우드

OpenStack Cinder: OpenStack 블록 스토리지 완전 가이드

BeanCon
OpenStack Cinder의 cinder-api, scheduler, volume service, Ceph RBD, SAN, NVMe 스토리지 백엔드를 표현한 블록 스토리지 아키텍처 이미지

OpenStack Cinder의 개념, 아키텍처, 핵심 구성요소, 스토리지 드라이버, 볼륨 생명주기, 백엔드 모델, 성능 최적화와 운영 모범 사례를 정리했습니다.

조직이 프라이빗 클라우드와 하이브리드 클라우드로 워크로드를 이전할수록 안정적인 영구 스토리지는 핵심 인프라가 된다. 가상 머신은 몇 분 안에 다시 만들 수 있지만, 애플리케이션 데이터는 내구성, 가용성, 유연성을 필요로 한다.

OpenStack에서 이 역할을 담당하는 서비스가 Cinder다. Cinder는 OpenStack의 Block Storage 서비스로, 가상 머신에 연결할 수 있는 영구 볼륨을 제공한다. 데이터베이스, 엔터프라이즈 애플리케이션, Kubernetes 클러스터, 백업 시스템, 고성능 워크로드를 운영할 때 Cinder는 일관된 API로 스토리지를 관리하게 해준다.

OpenStack Cinder란?

Cinder는 영구 블록 스토리지 볼륨을 프로비저닝하고 관리하는 OpenStack 서비스다. VM에 붙는 임시 디스크와 달리 Cinder 볼륨은 인스턴스가 삭제된 뒤에도 독립적으로 유지될 수 있다. 사용자는 필요할 때 볼륨을 만들고, VM에 연결하고, 스냅샷을 생성하거나 백업으로 복구할 수 있다.

데이터베이스 스토리지 엔터프라이즈 애플리케이션 데이터 볼륨 가상 머신 boot volume 백업 스토리지 Kubernetes Persistent Volume 고성능 워크로드와 재해 복구

왜 Block Storage가 중요한가

로컬 인스턴스 스토리지는 빠르고 단순하지만 VM 생명주기에 묶이는 경우가 많다. 반면 Cinder 블록 스토리지는 인스턴스와 독립된 생명주기를 가지며, 볼륨 확장, 스냅샷, 백업, 다른 인스턴스로의 이동이 가능하다.

항목로컬 인스턴스 스토리지Cinder Block Storage생명주기VM 삭제 시 함께 삭제될 수 있음VM과 독립적으로 유지 가능확장성확장이 제한적일 수 있음동적 볼륨 확장 지원이동성컴퓨트 노드에 종속되기 쉬움인스턴스 간 연결·분리 가능접근 방식로컬 디스크 중심네트워크 기반 스토리지 접근데이터 보호스냅샷과 백업 기능이 제한적일 수 있음스냅샷, 백업, 복구 기능 제공

Cinder 아키텍처

Cinder는 API, 스케줄러, 볼륨 서비스, 스토리지 드라이버로 구성된다. 사용자의 요청은 cinder-api로 들어오고, RabbitMQ 같은 메시지 큐를 통해 내부 서비스에 전달된다. cinder-scheduler는 적절한 스토리지 백엔드를 선택하고, cinder-volume은 실제 볼륨 생성·삭제·확장·스냅샷 작업을 수행한다.

Horizon Dashboard / OpenStack CLI / REST API
↓ REST API
cinder-api
↓ Message Queue: RabbitMQ
cinder-scheduler
Backend Selection
cinder-volume
Volume Operations
↓ Storage Driver Interface
LVM Driver
Ceph RBD
NetApp
Dell EMC
Pure Storage
NVMe / SAN
Physical Storage Devices · SSD · NVMe · HDD · SAN · Distributed Storage

핵심 구성요소

구성요소역할주요 책임cinder-apiREST API 진입점볼륨 생성·삭제, 스냅샷 요청, 인증, 메타데이터 관리, API 검증cinder-scheduler스토리지 백엔드 선택가용 용량, 백엔드 기능, 볼륨 타입, 성능 계층, 가용 영역, 정책 기반 배치cinder-volume실제 스토리지 작업 수행볼륨 생성, 삭제, 복제, 확장, 연결, 분리, 스냅샷 생성과 복구Storage Driver벤더별 스토리지 연동 계층LVM, Ceph RBD, NetApp, Dell EMC, Pure Storage, HPE, Huawei, IBM Storage 등과 연동Cinder Database메타데이터 저장소볼륨 메타데이터, 스냅샷, 볼륨 타입, 연결 정보, 쿼터, 백업, 그룹 정보 저장

중요한 점은 Cinder 데이터베이스가 실제 데이터 블록을 저장하지 않는다는 것이다. 데이터 블록은 Ceph, SAN, LVM, NVMe 스토리지 같은 백엔드에 저장되고, Cinder DB에는 볼륨과 작업에 대한 메타데이터가 저장된다.

지원되는 스토리지 백엔드

Cinder의 강점은 다양한 스토리지 백엔드를 동일한 API 뒤에 숨긴다는 것이다. 관리자는 LVM으로 작은 개발 환경을 구성할 수도 있고, Ceph RBD로 대규모 프로덕션 클라우드를 운영할 수도 있으며, 엔터프라이즈 SAN 장비를 연결할 수도 있다.

백엔드적합한 환경장점제약 또는 고려사항LVM테스트, 소규모 배포, 개발 환경구성이 단순하고 별도 스토리지 장비 없이 시작 가능단일 노드 중심이라 확장성과 고가용성에 한계Ceph RBD프로덕션 OpenStack 클라우드분산 아키텍처, 고가용성, 복제, 확장성, OpenStack 통합 우수Ceph 운영 역량과 네트워크·디스크 설계가 중요Enterprise SAN금융, 대기업, 미션 크리티컬 워크로드높은 성능, 벤더 지원, 고급 복제, 안정성비용과 벤더 종속성, 드라이버 호환성 검토 필요Software Defined Storage클라우드 네이티브 확장 환경자동화와 수평 확장에 유리제품별 운영 모델과 장애 복구 방식 이해 필요

Volume Type과 스토리지 계층

Volume Type은 사용자에게 여러 스토리지 등급을 노출하는 방식이다. 사용자는 백엔드 장비 이름을 몰라도 standard, premium, enterprise 같은 타입을 선택해 필요한 성능과 비용 수준의 볼륨을 요청할 수 있다.

Volume Type예시 백엔드성능 계층활용 예standardSATA / HDD Pool낮음일반 파일 저장, 개발 환경premiumSSD Pool중간업무 애플리케이션, 일반 DBenterpriseNVMe / Enterprise SAN높음고성능 데이터베이스, 핵심 서비스backupHDD / Object Storage 연동아카이브백업, 장기 보관

볼륨 생명주기

Cinder 볼륨은 생성 후 Available 상태가 되고, VM에 연결되면 In-use 상태가 된다. 이후 분리하면 다시 Available 상태로 돌아가며, 필요 없을 때 삭제할 수 있다. 이 독립적인 생명주기가 Cinder를 VM 로컬 디스크와 구분하는 핵심이다.

Create Volume
Available
Attach to VM
In-use
Detach
Available
Delete

볼륨 생성과 연결 흐름

볼륨 생성은 Cinder 내부에서 처리되지만, VM에 볼륨을 연결하는 과정에는 Nova와 하이퍼바이저도 참여한다. 사용자가 볼륨 연결을 요청하면 Nova가 컴퓨트 노드와 하이퍼바이저를 통해 게스트 운영체제에 블록 디바이스를 노출한다.

볼륨 생성 흐름
User → Cinder API → Scheduler → Volume Service → Storage Backend
볼륨 연결 흐름
User → Nova → Compute Node → Hypervisor → Guest OS

스냅샷, 클론, 백업

스냅샷은 특정 시점의 볼륨 복사본이다. 일반적으로 변경된 블록만 추가로 저장하므로 전체 복사보다 효율적이다. 테스트, 개발, 롤백, 백업 전 체크포인트에 유용하다. 볼륨 클론은 기존 볼륨을 기반으로 빠르게 새 볼륨을 만들 수 있어 템플릿 기반 프로비저닝에 적합하다.

Cinder Backup은 볼륨 데이터를 보조 스토리지로 복제한다. 대상은 Swift Object Storage, Ceph, NFS, S3 호환 스토리지 등이 될 수 있으며, 삭제된 볼륨을 복구하거나 재해 복구 시나리오에 활용할 수 있다.

Boot From Volume

Boot From Volume은 인스턴스가 로컬 디스크가 아니라 Cinder 볼륨에서 직접 부팅하는 방식이다. 루트 디스크를 더 크게 만들 수 있고, 운영체제 디스크를 영구적으로 유지하며, 백업과 마이그레이션 전략을 세우기 쉽다. 프로덕션 OpenStack 환경에서 널리 사용되는 방식이다.

고급 기능: Multi-Attach, 암호화, QoS, 복제

기능설명활용 시나리오Multi-Attach하나의 볼륨을 여러 VM에 동시에 연결클러스터 애플리케이션, 공유 파일시스템, HA 클러스터. 단, 호환 백엔드 필요EncryptionLUKS, dm-crypt, Barbican 연동으로 볼륨 암호화데이터 보호, 규제 준수, 안전한 멀티테넌시QoSIOPS, 대역폭, 읽기·쓰기 우선순위 제어테넌트 간 성능 간섭 방지, 서비스 등급 관리Replication동기·비동기 복제, Metro Cluster, Cross-region replication재해 복구, 중요 데이터 보호, 지역 장애 대비Availability Zone스토리지 풀을 논리적 가용 영역으로 분리AZ-East, AZ-West 같은 배치 정책과 장애 도메인 분리

다른 OpenStack 서비스와의 통합

서비스Cinder와의 관계NovaVM에 Cinder 볼륨을 연결하고 분리한다. Boot From Volume 구성에도 참여한다.Glance이미지를 기반으로 부팅 가능한 Cinder 볼륨을 만들 수 있다.Keystone인증, 권한 부여, 토큰 검증을 제공한다.Horizon볼륨 생성, 확장, 스냅샷, 백업 복구, VM 연결을 웹 UI로 제공한다.Barbican암호화 볼륨에 필요한 키 관리 기능을 제공한다.

성능 최적화 전략

Cinder 성능은 백엔드 스토리지뿐 아니라 네트워크, 스케줄러, 드라이버, VM I/O 패턴의 영향을 받는다. 데이터베이스처럼 지연시간에 민감한 워크로드는 SSD나 NVMe 계층을 사용하고, 스토리지 트래픽은 테넌트 트래픽과 분리하는 것이 좋다.

데이터베이스와 고성능 워크로드에는 SSD 또는 NVMe 기반 Volume Type을 사용한다. Management Network, Tenant Network, Storage Network를 분리해 지연시간과 장애 영향을 줄인다. Multipath를 활성화해 처리량, 장애 허용성, 부하 분산을 개선한다. CapacityFilter, AvailabilityZoneFilter, DriverFilter, GoodnessWeigher를 활용해 스케줄링 품질을 높인다. 읽기·쓰기 지연시간, queue depth, backend utilization, IOPS를 지속적으로 모니터링한다.

자주 사용하는 CLI 명령

OpenStack CLI를 사용하면 볼륨 생성, 조회, 연결, 스냅샷, 확장, 삭제를 자동화할 수 있다.

openstack volume create \
  --size 100 \
  database-volume

openstack volume list

openstack volume show database-volume

openstack server add volume VM1 database-volume

openstack volume snapshot create database-snapshot

openstack volume set \
  --size 200 \
  database-volume

openstack volume delete database-volume

운영 모범 사례

모범 사례설명프로덕션에는 Ceph 또는 엔터프라이즈급 백엔드 사용고가용성, 확장성, self-healing, OpenStack 통합을 고려한다.Volume Type 정의Standard, SSD, NVMe, Backup, Database 같은 스토리지 계층을 명확히 제공한다.정기 백업과 복구 검증중요 볼륨은 백업 일정을 적용하고 실제 복구 절차를 주기적으로 테스트한다.스토리지 트래픽 분리전용 스토리지 네트워크로 지연시간을 줄이고 안정성을 높인다.용량과 스냅샷 사용량 모니터링free space, snapshot usage, replication health, storage latency, backend availability를 추적한다.장애 도메인 분리가용 영역과 백엔드 풀을 설계해 장애 영향 범위를 줄인다.

OpenStack Cinder의 장점

영구 블록 스토리지 제공 벤더 중립적인 아키텍처 다양한 스토리지 백엔드 지원 엔터프라이즈 규모 확장성 스냅샷과 클론 기능 Boot From Volume 지원 고가용성, 암호화, QoS 기능 REST API 기반 자동화 Nova, Glance, Keystone, Horizon과 긴밀한 통합

결론

OpenStack Cinder는 OpenStack 환경에서 영구 스토리지 계층의 기반이다. 다양한 스토리지 기술을 일관된 API 뒤에 추상화함으로써 조직은 성능, 용량, 예산 요구사항에 맞는 백엔드를 선택하면서도 애플리케이션 워크플로우를 크게 바꾸지 않을 수 있다.

개발 환경에서는 LVM으로 단순하게 시작할 수 있고, 프로덕션에서는 Ceph RBD나 엔터프라이즈 SAN으로 고가용성과 성능을 확보할 수 있다. 스냅샷, 클론, 백업, 암호화, QoS, 복제, Boot From Volume 같은 기능은 Cinder를 프라이빗·하이브리드 클라우드의 핵심 구성요소로 만든다.

Nova가 컴퓨트를 담당하고, Glance가 이미지를 제공하며, Keystone이 인증을 처리하고, Horizon이 관리 UI를 제공한다면, Cinder는 OpenStack IaaS의 안정적인 스토리지 계층을 완성한다.

댓글

0

댓글을 불러오는 중입니다.