Openstack

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

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

Overview

 

오늘은 블록 스토리지와 오브젝트 스토리지의 차이점에 대해서 알아보고

오픈스택에서 이 두가지 서비스를 담당하는 Cinder와 Swift의 사용 용도를 구분지어 비교해보도록 한다. 


 Block storage

블록 스토리지란 쉽게 생각하면 클라우드 시스템의 하드디스크를 뜻한다.

오픈스택이나 AWS와 같은 클라우드 시스템에서 한대의 컴퓨터(가상머신)을 인스턴스라고 부르듯

드디스크와 같은 저장 공간을 블록 스토리지라고 부르는 것이다.

그리고 블록 스토리지는 인스턴스에 연결(attach), 해제(detach)가 가능하는 특징을 가지고 있다.

이를 통해 새로 생성한 인스턴스에 기존에 존재하는 볼륨을 연결해서 원하는 형태로 포맷한 후 사용할 수 있다.

 


 

Object storage

오브젝트 스토리지란 파일 혹은 디렉토리를 단독으로 저장하기 위한 저장소로 각 사용자마다

구분된 컨테이너를 통해 데이터를 저장하는 공간을 뜻한다.

각 사용자는 오브젝트 스토리지를 사용하기 위해서 계정으로 로그인을 하고

디렉토리에 해당하는 컨테이너를 생성 또는 삭제할 수 있으며 문서, 동영상, 사진 등의

파일을 업로드하여 저장할 수 있다.

물론 오브젝트 스토리지에 저장된 파일들을 다운로드할 수도 있다.

오브젝트 스토리지로 저장되는 파일들은 key,value 형태로 저장되는 경우가 많으며

REST API를 통해 파일을 업로드, 다운로드할 수 있다.

 


Openstack의 Cinder와 Swift

 

Cinder

오픈스택에서는 Cinder라는 이름의 블록 스토리지 컴포넌트가 존재한다. Cinder는 아래와 같이 cinder-volume, cinder-scheduler, cinder-api, cinder-backup으로 구성되며 구체적인 역할은 다음과 같다.

 

  • cinder-volume cinder 프로세스의 요청을 받아 컨테이너와 파일을 저장한다.
  • cinder-scheduler 볼륨 생성 혹은 이동 요청이 발생했을 때 어디에 새로운 볼륨을 둘지 결정한다.
  • cinder-api cinder로 요청하는 REST API를 통해 클라이언트의 명령을 전달한다.
  • cinder-backup 볼륨의 데이터를 백업한다.

 


Swift

오브젝트 스토리지 서비스를 제공하는 컴포넌트의 이름은 Swift이다.

Swift는 아래와 같이 구성되며 내부적으로 전재하는 요소들이 수행하는 역할은 다음과같다.

 

  • authentication 계정에 따라 구분된 컨테이너 및 파일을 제어하기 위해 인증을 수행한다.
  • account 사용자 정보를 저장하고 구분한다. 
  • container 하위 파일의 개수 및 정보를 저장하고 구분한다.
  • object 파일 자체의 정보를 저장하고 구분한다.
  • ring 데이터가 저장될 논리적 위치와 물리적인 저장 위치간의 매핑을 제공한다.
  • proxy 위의 모든 요소를 관리한다.

 

728x90
반응형

'Openstack' 카테고리의 다른 글

Openstack horizon이란? (dashboard)  (0) 2022.08.08
Openstack Keystone이란? (identity)  (0) 2022.08.08
Openstack Glance란? (image)  (0) 2022.08.08
Openstack 배치 서비스 Placement란?  (0) 2022.08.08
Openstack Neutron이란? (network)  (0) 2022.08.08