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) 사용
4️⃣ 결론
📌 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 |