
🚩
용어 정의, 클라이언트* : 요청자 == 스토리지를 필요로 하는 사람 서버* : 공급자 == 물리적인 서버(PC, EC2 등) 영어로 써진 것은 특정한 공식 용어
A. Ceph
Ceph은 분산형 스토리지 클러스터를 구축하는데 사용됩니다.
즉, 클라이언트*가 스토리지 사용을 유연하고 확장성있게 하게 만들 수 있습니다.
AS-IS : 클라이언트*는 본인이 배포되는 서버*에 귀속된 디스크를 사용
TO-BE : 클라이언트*는 클러스터 내부의 서버*에 귀속된 스토리지를 사용
Ceph Storage Cluster는 크게 보면 3가지로 구성됩니다.
Ceph Client : Ceph Storage Cluster에 접근하기 위한 인터페이스
Ceph Storage Node : 실제 저장과 관련된 책임, 역할 (cpeh-osd|mon|mgr)
Ceph Protocol : Ceph Storage Node ← → Ceph Client
클라이언트가 사용 가능한 스토리지*는 그 유형에 따라서 3가지로 구분됩니다.
Object Storage | RADOS GW | RADOS Gateway |
---|---|---|
Block Storage | RBD | RADOS Block Device |
Filesystem | FS | |
RADOS(Reliable, Autonomous, Distributed Object Store) |
A.1. Ceph Client
Ceph Client는 3가지 유형에 대한 4가지 엑세스 방법이 제공됩니다.
유형 : APP, HOST/VM, Client
엑세스 방법 : libRADOS, Object(RADOS GW), Block(RBD), Filesystem(FS)
3가지 주요 엑세스 방법은 다음과 같은 예시로 손쉽게 이해할 수 있습니다.
Object Storage | 데이터는 객체로 저장되고 네트워크를 통해 데이터로 쿼리 - GET /path/to/object |
---|---|
Block Storage | VM에서 패스스루된 블록 장치*를 사용 (포맷 불필요) - /dev/sda/* |
Filesystem | 네트워크를 통해 원격 저장소를 마운트*해서 사용 (포맷 필요) - POSIX open() |
A.2. Ceph Storage Node
Ceph Storage Node는 Daemon을 통해서 데이터를 저장 및 관리합니다.
Ceph Object Storage Daemon | 실제 데이터를 저장하고 복제, 복구, 재조정 (ceph-osd) |
---|---|
Ceph Monitor Daemon | 클러스터 상태를 모니터링, 인증 및 맵 관리 (ceph-mon) |
Ceph Manager Daemon | 클러스터 상태를 수집, 요약 및 관리 제공 (ceph-mgr) |
이떄 데이터 단위를 Object라고 부르며, Pool / PG / CRUSH 개념이 등장합니다.
A.3. 결론
Ceph을 사용하면 분산 스토리지 구성이 가능합니다.