이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 어플라이언스 시스템의 다중 노드 스토리지를 설명합니다.
GDC 오프라인 어플라이언스는 세 개의 서버와 각 서버에 연결된 6개의 비휘발성 메모리 익스프레스 (NVme) 디스크로 구성됩니다.
- 2X 1TB NVMe 부팅 미디어
- 4X 3.84TB NVMe
각 노드의 1TB NVMe 디스크 2개는 부팅 및 시스템 워크로드 전용이며, 나머지 3.84TB NVMe 디스크 4개는 안정적인 데이터 스토리지의 일부로 사용됩니다.
GDC는 Ceph를 소프트웨어 정의 스토리지로 사용하여 시스템 및 사용자 데이터를 안정적으로 저장합니다. Ceph 클러스터는 세 서버 모두에서 베어메탈 수준으로 배포되며 이러한 서버에 연결된 총 12개 (서버당 4개)의 3.84TB NVMe 드라이브를 기본 스토리지로 사용합니다.

Ceph 스토리지 구성요소
Ceph 모니터
Ceph 모니터는 모니터 맵, 관리자 맵, 객체 스토리지 데몬 (OSD) 맵을 비롯한 클러스터 상태 맵을 유지관리합니다. 이러한 맵은 Ceph 서비스가 서로 조정하는 데 필요한 중요한 클러스터 상태를 나타냅니다. 모니터는 서비스와 클라이언트 간의 인증 관리도 담당합니다. 중복 및 고가용성을 위해서는 모니터가 3개 이상 필요합니다.
Ceph 관리자
Ceph 관리자는 스토리지 사용률, 현재 성능 측정항목, 시스템 부하 등 런타임 측정항목과 Ceph 클러스터의 현재 상태를 추적하는 역할을 합니다. 일반적으로 고가용성을 위해서는 관리자가 두 명 이상 필요합니다. GDC 환경은 모니터 수만큼 Ceph 관리자를 실행하므로 클러스터에 Ceph 관리자가 3개 배포됩니다.
Ceph 객체 스토리지 데몬 (OSD)
객체 스토리지 데몬 (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-OSD)은 데이터를 저장하고 데이터 복제, 복구, 재조정을 처리합니다. OSD는 다른 Ceph OSD의 하트비트를 확인하여 Ceph 모니터와 관리자에게 모니터링 정보를 제공합니다. 일반적으로 중복성과 고가용성을 위해서는 Ceph OSD가 3개 이상 필요합니다. GDC 환경은 물리적 드라이브당 하나의 OSD를 할당합니다.
Ceph Rados 블록 기기 (RBD)
Ceph 블록 기기는 씬 프로비저닝되고 크기를 조정할 수 있습니다. 여러 OSD에 스트라이프된 데이터를 저장합니다. Ceph 블록 기기는 스냅샷 생성, 복제, 강력한 일관성을 비롯한 핵심 Ceph 기능을 활용합니다. GDC 환경에서는 Ceph RBD가 직접 노출되지 않습니다. 하지만 사용자 대상 Kubernetes 스토리지 (https://kubernetes.io/docs/concepts/storage/)를 지원하는 블록 스토리지 Ceph CSI 드라이버에서 사용합니다.
Ceph RGW
Ceph Rados Gateway는 애플리케이션에 Ceph 스토리지 클러스터에 대한 RESTful 게이트웨이를 제공하는 객체 스토리지 인터페이스입니다 (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-Object-Storage).
- S3 호환: Amazon S3 RESTful API의 대규모 하위 집합과 호환되는 인터페이스를 사용하여 객체 스토리지 기능을 제공합니다.
- Swift 호환: OpenStack Swift API의 대규모 하위 집합과 호환되는 인터페이스를 사용하여 객체 스토리지 기능을 제공합니다.
GDC 환경에서는 Kubernetes 서비스 메시 서비스를 사용하여 S3 엔드포인트만 노출됩니다.
GDC 스토리지 복원력
Ceph 블록 및 객체 스토리지 구성요소는 데이터 복제 요소 3을 사용하도록 구성됩니다. 입력/출력 (I/O) 제공을 계속하려면 최소 2개의 복제본이 있어야 합니다. 노드 수준 장애 도메인이 사용됩니다. 즉, Ceph는 세 개의 서로 다른 서버에서 데이터를 세 번 (3x) 복제하려고 시도합니다.
실패를 처리하는 방법의 몇 가지 예는 다음과 같습니다.
- 단일 노드 장애는 데이터 손실을 일으키지 않으며 워크로드의 스토리지 작업에 영향을 미치지 않습니다.
- 서로 다른 노드에서 두 개의 디스크 장애가 발생해도 데이터 손실이 발생하지 않습니다. 하지만 이러한 디스크에 데이터 복제본이 3개 중 2개 있는 워크로드의 스토리지 가용성에 영향을 미칠 수 있습니다.
- 두 개 이상의 노드 장애 또는 서로 다른 노드에서 세 개 이상의 디스크 장애가 발생하면 데이터 손실이 발생하고 워크로드의 스토리지 가용성에 영향을 미칠 수 있습니다.
GDC 스토리지 용량
사용 가능한 원시 디스크 공간 용량은 다음과 같습니다.
raw_capacity = 3.84TB * 4 (disks_per_node) * 3 (nodes) = 46.08TB
하지만 Ceph 클러스터에 저장된 데이터는 3번 복제되므로 모든 워크로드에 사용할 수 있는 유용한 스토리지 용량은 다음과 같습니다.
available_capacity = raw_capacity / 3 (replicas) = 15.36TB
15.36TB는 블록 및 객체 스토리지를 위해 시스템과 사용자 워크로드 간에 공유됩니다.