Openstack

Openstack Cinder/Swift란? (block storage/object storage)

Somaz 2022. 8. 9. 13:32
728x90
반응형

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://wiki.openstack.org/

https://www.openstack.org/

https://www.linkedin.com/pulse/openstack-cinder-integration-tony-tom-eccac/

728x90
반응형