Overview
오늘은 블록 스토리지(Block Storage)와 오브젝트 스토리지(Object Storage)의 차이점을 알아보고,
이를 담당하는 OpenStack의 Cinder(Block Storage)와 Swift(Object Storage)를 비교하여 사용 용도를 구분해보도록 한다.

📅 관련 글
2022.05.11 - [Openstack] - Openstack이란?
2022.07.29 - [Openstack] - Openstack Nova란?
2022.08.08 - [Openstack] - Openstack Neutron이란? (network)
2022.08.08 - [Openstack] - Openstack 배치 서비스 Placement란?
2022.08.08 - [Openstack] - Openstack Glance란? (image)
2022.08.08 - [Openstack] - Openstack Keystone이란? (identity)
2022.08.08 - [Openstack] - Openstack horizon이란? (dashboard)
1️⃣ 블록 스토리지(Block Storage) vs. 오브젝트 스토리지(Object Storage)
블록 스토리지(Block Storage)란?
✔ 클라우드 환경에서 가상머신(Instance)의 하드디스크 역할
✔ 파일 시스템 또는 DBMS가 직접 데이터를 관리할 수 있도록 설계됨
✔ 고속 데이터 처리를 위한 스토리지로, IOPS(초당 입출력 속도)에 최적화
✔ 기본적으로 인스턴스(서버)에 마운트하여 사용
✔ Attach(연결) / Detach(해제) 기능 제공
✔ 스토리지가 특정 인스턴스에 연결되어야만 접근 가능
오브젝트 스토리지(Object Storage)란?
✔ 파일 및 데이터를 개별적인 오브젝트로 저장하는 시스템
✔ REST API를 사용하여 데이터를 업로드, 다운로드, 관리 가능
✔ 파일이 Key-Value 형태로 저장됨 (Metadata 기반으로 관리됨)
✔ 디렉토리(폴더) 구조가 아닌 "컨테이너" 형태로 저장됨
✔ 고가용성 및 데이터 무결성 보장 (Replication & Redundancy 지원)
✔ HTTP 기반으로 접근이 가능하며, 인스턴스와 독립적으로 사용할 수 있음
블록 스토리지 vs. 오브젝트 스토리지 비교
| 특징 | 블록 스토리지 (Block Storage) | 오브젝트 스토리지 (Object Storage) |
| 저장 방식 | 디스크(Block) 단위로 저장 | 개별 오브젝트(파일) 단위로 저장 |
| 관리 방식 | 운영체제(OS)에서 직접 관리 (파일 시스템 기반) | 메타데이터 + REST API 기반 관리 |
| 접근 방식 | OS에서 마운트해야 접근 가능 | HTTP/HTTPS API를 통해 접근 가능 |
| 데이터 변경 | 특정 블록만 수정 가능 | 전체 파일을 다시 업로드해야 변경됨 |
| 주요 사용 사례 | 데이터베이스, 가상 머신 디스크 | 백업, 미디어 저장, 로그 저장, CDN |
| 성능 | 낮은 지연시간 (IOPS 최적화) | 대규모 확장성(Scalability) 지원 |
2️⃣ OpenStack의 Cinder(Block Storage)와 Swift(Object Storage)
OpenStack Cinder (블록 스토리지 서비스)
Cinder는 OpenStack에서 블록 스토리지를 관리하는 컴포넌트이다.
기본적으로 VM(인스턴스)에 연결(Attach)하여 사용되는 볼륨(Volume) 기반의 스토리지를 제공한다.
Cinder의 특징
✔ 인스턴스(Compute)와 연결하여 사용 가능
✔ IOPS(입출력 성능)에 최적화된 블록 기반 저장소
✔ 스토리지 볼륨을 생성, 확장, 스냅샷, 복제 가능
✔ 스토리지 백엔드(Storage Backend) 플러그인 지원 (Ceph, LVM, NFS, iSCSI 등)
✔ 볼륨을 인스턴스에 Attach / Detach 가능
✔ 데이터베이스, 애플리케이션 서버 등의 고성능 워크로드에 적합
Cinder의 주요 구성 요소
| 구성 요소 | 설명 |
| cinder-api | REST API를 제공하며 클라이언트의 요청을 처리 |
| cinder-scheduler | 볼륨 생성 요청을 적절한 백엔드 스토리지에 할당 |
| cinder-volume | 실제 볼륨을 생성하고 관리하는 서비스 |
| cinder-backup | 볼륨의 데이터를 백업하는 기능 |
Cinder의 사용 사례
✔ 데이터베이스 저장소(MySQL, PostgreSQL 등)
✔ 가상 머신의 루트 디스크 또는 추가 디스크
✔ 고성능 애플리케이션(웹 서버, ERP, CRM 등) 저장소
OpenStack Swift (오브젝트 스토리지 서비스)
Swift는 OpenStack에서 대규모 데이터 저장을 위한 오브젝트 스토리지 서비스이다.
기존의 파일 시스템이 아닌 오브젝트 기반으로 데이터를 저장하고 관리하며, 확장성이 뛰어나다.
Swift의 특징
✔ 오브젝트 기반 저장 (파일을 개별적인 오브젝트로 저장)
✔ 확장성이 뛰어나며, 대규모 데이터 저장에 최적화
✔ REST API를 통해 데이터를 업로드/다운로드/관리 가능
✔ 멀티 테넌시(Multi-Tenancy) 지원 (각 사용자별 컨테이너 생성 가능)
✔ Replication(데이터 복제) 및 Data Durability(데이터 무결성) 제공
✔ 비정형 데이터(문서, 이미지, 비디오, 로그 파일) 저장에 적합
Swift의 주요 구성 요소
| 구성 요소 | 설명 |
| authentication | 사용자 계정 인증 (Keystone과 연동 가능) |
| account | 사용자 계정을 관리 |
| container | 파일 저장을 위한 컨테이너 관리 |
| object | 실제 데이터를 저장하는 오브젝트 |
| ring | 데이터 저장 위치를 논리적/물리적으로 매핑 |
| proxy | 클라이언트 요청을 처리하는 프록시 서버 |
Swift의 사용 사례
✔ 미디어(이미지, 동영상, 오디오) 저장
✔ 로그 데이터 저장 (대규모 로그 및 백업 시스템)
✔ CDN(Content Delivery Network) 연동
✔ 빅데이터 및 머신러닝 데이터셋 저장
3️⃣ Cinder vs. Swift 비교
Cinder와 Swift의 차이점 정리
| 특징 | Cinder (Block Storage) | Swift (Object Storage) |
| 스토리지 유형 | 블록 스토리지 | 오브젝트 스토리지 |
| 저장 방식 | OS가 직접 관리하는 디스크 기반 | REST API를 통한 오브젝트 저장 |
| 사용 목적 | VM 및 애플리케이션의 디스크 저장소 | 대용량 파일, 미디어, 로그 저장 |
| 데이터 변경 방식 | 블록 단위 수정 가능 | 전체 파일을 새로 저장해야 함 |
| 액세스 방식 | 인스턴스에 마운트하여 사용 | URL을 통해 직접 접근 가능 |
| 확장성 | 제한적 (스토리지 백엔드에 따라 다름) | 매우 높은 확장성 (수평 확장 가능) |
| 주요 사용 사례 | 데이터베이스, VM 볼륨 | 미디어 저장, CDN, 백업, 로그 |
📌 어떤 스토리지를 선택해야 할까?
- 고성능 DB, 가상 머신의 디스크, 애플리케이션 실행 환경이 필요하다면?→ Cinder (Block Storage) 사용
- 대용량 데이터를 저장하고 웹에서 직접 접근할 수 있어야 한다면?→ Swift (Object Storage) 사용
결론
Cinder와 Swift는 각각 다른 목적을 위한 스토리지 서비스
✔ Cinder (Block Storage) → 가상 머신 디스크, 데이터베이스, 애플리케이션 저장소
✔ Swift (Object Storage) → 미디어 저장, CDN, 백업, 로그 저장소
올바른 사용 사례에 맞게 선택하는 것이 중요
✔ 빠른 입출력이 필요하다면 Cinder!
✔ 대규모 확장성과 비용 효율성이 필요하다면 Swift!
Reference
https://www.linkedin.com/pulse/openstack-cinder-integration-tony-tom-eccac/
'Openstack' 카테고리의 다른 글
| OpenStack Ceilometer란? (Telemetry & Monitoring) (0) | 2025.03.05 |
|---|---|
| OpenStack Heat란? (Orchestration) (0) | 2025.02.27 |
| Openstack horizon이란? (dashboard) (0) | 2022.08.08 |
| Openstack Keystone이란? (identity) (0) | 2022.08.08 |
| Openstack Glance란? (image) (0) | 2022.08.08 |