Open Source Software

Ceph 란?

Somaz 2022. 7. 29. 14:37
728x90
반응형

Overview

 

오늘은 ceph에 대한 기본 개념과 구조에 대하여 공부를 해보려고 한다.

 

출처 : ChatGPT

 

2024.02.20 - [Open Source Software] - Rook-Ceph란?

 

Rook-Ceph란?

Overview Rook-Ceph에 대해서 알아보려고 한다. Cephadm 이란? Cephadm은 Ceph의 최신 배포 및 관리 도구로, Ceph Octopus 릴리즈부터 도입되었다. Ceph 클러스터를 배포, 구성, 관리하고 확장하는 작업을 단순화

somaz.tistory.com

 

2024.02.20 - [Open Source Software] - Cephadm-ansible이란?

 

Cephadm-ansible이란?

Overview Cephadm-ansible에 대해서 알아보려고 한다. 모든 리소스는 해당 Github 디렉토리에 업로드 되어있다. https://github.com/somaz94/install-cephadm-script GitHub - somaz94/install-cephadm-script: install-cephadm-script instal

somaz.tistory.com

 

 

 


 

Ceph 란?

Ceph 분산형 스토리지로 여러 스토리지들을 클러스터로 묶어 하나로 보이게하는 스토리지이다.

 

분산 클러스터 위에서 object storage를 구현해 object, block, file level의 storage 인터페이스를 제공한다.

하나로 object, block storage, file system 모두를 제공한다는 것이 장점이다.

 

SPOF(Single Point Of Failure) 없는 완전한 분산처리와 exabyte 단위까지 확장 가능하다.

Ceph Storage Cluster를 구성하기 위해서는 Ceph Monitor, Ceph Manager, Ceph OSD(Object Storage Daemon)이 하나이상 있어야 하고 Ceph File System Client를 사용하려면 Ceph Metadate Server가 있어야 한다.

 

 


 

Ceph 아키텍처 및 데몬

 

 

각각의 데몬들은 다음과 같은 역할을 한다.

 

  • Monitors
    • Ceph Monitor (ceph-mon)는 monitor map, manager map, OSD map, MDS map, CRUSH map과 같은 cluster의 상태정보를 구성한다.  HA를 위해서는 3개 이상 구성하는 것을 추천한다.
  • Managers
    • Ceph Manager daemon (ceph-mgr)는 storage utilization이나 performance, system load와 같은 Ceph cluster의 상태 정보를 추적한다. HA를 위해서는 2개 이상 구성하는 것을 추천한다.
  • Ceph OSDs
    • Ceph OSD (object storage daemon, ceph-osd)는 데이터를 저장하고, replication이나 recovery, rebalancing을 수행한다.
    • 또한 Ceph OSD 데몬들의 heartbeat를 Ceph Monitors and Managers에 제공하기도 합니다. HA를 위해서 3개 이상 구성하는 것을 추천한다.
  • MDSs
    • Ceph Metadata Server (MDS, ceph-mds)는 Ceph File System의 메타데이터를 저장한다.(Ceph Block Devices나 Ceph Object Storage는 MDS를 사용하지 않는다.)
    • Ceph Metadata Server를 통해 POSIX File System 사용자는 Ceph Storage Cluster에 큰 부담을 주지 않으면서 기본 명령을 실행할 수 있다.
  • Ceph Object Gateway
    • Rados Gateway(ceph-rgw)는 Amazon S3와 Openstack Swift Api용 인터페이스로 사용되는 Object Storage layer이다.

 

 

출처 : https://docs.ceph.com/en/latest/architecture/

 

위 그림과 같이 RADOS를 기반으로 데이터를 Read/Write 하고, librados라는 라이브러리를 제공하여 RADOS에 직접 접근할 수 있도록 제공한다.

또한 RadosGW, RBD, CephFS와 같은 ceph clients를 제공하여 Ceph Storage에 접근할 수 있는 인터페이스를 제공한다.

 

 


 

 

Ceph Clients

Ceph Client는 다양한 서비스 인터페이스를 제공하여 외부에서 데이터를 관리할 수 있도록 제공한다

 

 

 


 

 

RADOS (Ceph Storage Cluster)

Scalable, Reliable Storage Service for Petabyte-scale Storge Clusters로 Ceph의 데이터 접근에 대해 근간을 이루는 서비스이다. 즉 Ceph에서 object를 읽고 쓸때 RADOS를 사용한다.

 

RADOS Block Device

Ceph Block Device(RADOS block device, RBD)는 RBD 이미지를 통해 Ceph 클러스터 내에 블록 스토리지를 제공한다.
RBD 이미지는 클러스터의 서로 다른 OSD에 흩어져 있는 개별 object로부터 구성됩니다. 클러스터 내의 object 간에 데이터를 스트라이핑 할 수 있다.
RBD를 구성하는 object는 클러스터 주변의 서로 다른 OSD에 분산되기 때문에 블록 디바이스에 대한 액세스는 자동으로 병렬화된다.

RBD는 다음과 같은 기능을 제공한다.

  • Storage for virtual disks in the Ceph cluster
  • Mount support in the Linux kernel
  • Boot support in QEMU, KVM, and OpenStack Cinder

 

 

Ceph Object Gateway (RADOS Gateway)

Ceph Object Gateway(RADOS Gateway, RADOSGW 또는 RGW)는 라이브러리(librados)를 사용하여 구축된 object 스토리지 인터페이스이다.
라이브러리를 사용하여 Ceph 클러스터와 통신하고 OSD 프로세스에 직접 데이터를 쓴다. 응용 프로그램에 RESTful API가 포함된 게이트웨이를 제공하고 다음 두 인터페이스를 지원한다. (Amazon S3 및 OpenStack Swift)

Ceph Object Gateway는 배포할 수 있는 게이트웨이 수를 제한하지 않고 표준 HTTP 로드 밸런서를 지원하여 확장성 지원을 제공한다.

RGW 의 몇 가지 사용 사례는 다음과 같다.

  • Image storage (for example, SmugMug, Tumblr)
  • Backup services
  • File storage and sharing (for example, Dropbox)

 


 

Ceph File System (CephFS)

Ceph 파일 시스템(CephFS)은 확장 가능한 단일 계층 공유 디스크를 제공하는 병렬 파일 시스템이다.
CephFS에 저장된 파일과 관련된 메타데이터는 Ceph Metadata Server(MDS)에서 관리한다.

 

Placement Groups

클러스터에 수백만 개의 object 를 저장하고 개별적으로 관리하는 것은 리소스를 많이 사용한다.
따라서 Ceph는 placement group (PG)을 사용하여 수많은 object 를 보다 효율적으로 관리한다.

PG는 object 모음을 포함하는 역할을 하는 Pool 의 하위 집합이다.
Ceph는 Pool 을 일련의 PG로 분할하고 CRUSH 알고리즘은 클러스터 맵과 클러스터 상태를 고려하여 PG를 클러스터의 OSD에 무작위로 고르게 배포한다.

 

 


 

Pool Type

기본적으로 Ceph 는 Replicated pool 방식과 Erasure coded pool 방식을 통해 데이터 복원을 지원한다.
주로 일반 스토리지의 RAID 1 (mirror) 와 RAID 6 or RAID 5 (parity) 와 비교한다면 이해가 편할 것이다.

각 방식에는 아래와 같은 장단점이 있다.

  • Replicated pool
    • 높은 내구성
    • 3 replica 로 인한 200% overhead
    • 빠른 복구
  • Erasure coded pool
    • 비용 효율적인 내구성
    • 50% overhead
    • expensive recovery

 

 


 

Ceph Operation

Data가 들어오면 Data의 종류의 따라 아래의 설명 대로 변경이 된다.

변경된 결과 값은 결국 Object로 변환되고 변환된 Object는 Libados에 따라 이후과정은 룰에 따라 OSD에 저장 된다.

 

 


 

Reference

https://ko.wikipedia.org/wiki/Ceph

 

https://docs.ceph.com/en/reef/

 

https://ceph.io/en/community/

728x90
반응형

'Open Source Software' 카테고리의 다른 글

Cephadm-ansible이란?  (3) 2024.02.29
Rook-Ceph란?  (0) 2024.02.20
Redis(Remote Dictionary Server)란?  (0) 2022.09.26
Ceph 노드 제거 및 추가 방법(mon/mgr/osd)  (0) 2022.09.21
RabbitMQ란?  (0) 2022.08.01