[DC/OS] DCOS Storage Service(DSS)
Enterprise한정으로 이용할 수 있는 기능이다.
DC / OS Storage Service(이하 DSS)는 DC / OS 클러스터에서 볼륨, 볼륨 프로파일, 볼륨 제공자, 스토리지 장치를 관리하는 서비스다. DSS는 클러스터내의 다양한 구성 요소에서 스토리지 관련 정보를 수집하고 상태를 추적하며 사용자 요청을 처리하는 기능을 제공한다.
관련 용어 및 개념
CSI Spec
Container Storage Interface(CSI)는 컨테이너 오케스트레이터
(Mesos, Kubernetes, Cloud Foundry, Docker, etc.)들과 스토리지 공급업체
(EBS, Dell ScaleIO, Ceph, Portworx, etc.)들 간의 API를 표준화 하기 위해서 커뮤니티에 의해 개발된 개방형 표준을 의미한다.
현재 DC/OS는 CSI Spec V0.1을 지원한다.
CSI Plugin
CSI 플러그인은 CSI 사양으로 정의 된 gRPC 서비스를 제공하는 엔드 포인트를 제공한다.
Storage Local Resource Provider (SLRP)
SLRP는 agent의 로컬에 있는 스토리지 자원을 매니지먼트 할 수 있는 CSI 플러그인을 제공하는 메소스 컴포넌트이다. SLRP는 로컬 스토리지 자원을 메소스에 제공하고, RPC가 CSI 플러그인을 통해 전달하는 자원 운영에 관한 명령을 해석하여 전달한다. 플러그인의 예로는 LVM, Raw GPT, 기타 직접 연결형식의 스토리지에 관한 것들이 있다.
Storage External Resource Provider (SERP)
SERP는 로컬 에이전트에 속해있지 않은 외부 자원을 클러스터가 매니지먼트 할 수 있도록 CSI 플러그인을 제공하는 메소스 컴포넌트이다. SERP는 외부 스토리지 자원을 메소스에 제공하고, RPC가 CSI 플러그인을 통해 전달하는 자원 운영에 관한 명령을 해석하여 전달한다. 플러그인의 예로는 Amazone EBS, NFS, 기타 스토리지(다른 에이전트에 자동으로 재배치 될 수 있는 형식)에 관한 것들이 있다.
Volume Provider
볼륨을 제공할 수 있는 스토리지 객체를 의미한다. Volume Provider(이하 볼륨 제공자)는 CSI 플러그인의 단일 인스턴스와 연결되게 된다. 즉, 각 볼륨 제공자는 SLRP
, SERP
의 단일 인스턴스를 통해 메소스와 연결된다. 한 종류의 볼륨 제공자로부터 많은 인스턴스를 제공받을 수 있다. 예를 들면, LVM 볼륨 그룹은 한 종류의 볼륨 제공자에 해당하지만, 여러개의 볼륨 그룹이 있다면 각각의 볼륨 그룹은 하나의 단일 볼륨 제공자로써 간주되어 관리된다.
위의 내용에 해당하는 볼륨 제공자로는 아래와 같은 예가 있다.
- LVM Volume Group(LVM CSI Plugin과 연동)
- NFS mount (NFS CSI Plugin과 연동)
- ScaleIO<Protection Domain, Storage Pool>(ScaleIO CSI Plugin과 연동)
- Amazon EBS(EBS CSI Plugin과 연동)
Volume Plugin
볼륨 제공자와 연동되는 소프트웨어 설치가능 구성요소. LVM 플러그인과 같이 일반적으로 에이전트 노드에 설치되며, lvm
, ebs
등과 같이 이름으로 쉽게 식별할 수 있는 형태를 가진다.
Volume Profile
볼륨 구성시 이용할 수 있는 매개변수 세트. Volume Profile은 사용자의 사용 목적에 따라 볼륨을 분류하는데 사용한다. 예를 들면 HDD를 slow
프로필로, SSD 를 fast
프로필로 그룹화 하여 식별하는 형태이다. Volume Profile은 변경할 수 없으므로 특정 장치, 노드 및 기타 임시 식별자들에 대한 참조를 포함할 수 없고, 해서는 안된다. 참고로 CLI 하위 명령에서는 간결성을 위해서 "Volume Profile"이라는 키워드 대신 "profile"을 사용한다.
Volume
볼륨 제공자로 부터 할당받은 스토리지 용량 청크. 최종적으로는 Mesos Container Volume, Mesos Persistent Volume 이라는 이름으로 서비스에 제공된다.
Architecture
아래 그림은 DC/OS에서 제공하는 스토리지에 관한 전반적인 아키텍처를 그린다.
위 아키텍쳐에서 가장 중요한 부분을 담당하는 것이 바로 DSS이다. DSS는 앞서 말한것과 같이 클러스터 내에 있는 Volumes, volume profiles, volume providers, storage devices을 매니징 하는 서비스이다. DSS는 클러스터 내의 다양한 컴포넌트로부터 스토리지 연계에 관한 정보를 수집하고, 상태를 추적하고, 사용자의 요청을 수행하는 등의 전반적인 스토리지 서비스에 대해서 뇌와 같은 역할을 수행한다.
DSS에 의해 관리되는 volume에는 quota
, fair sharing
, weights
와 같은 리소스 관리 기능을 적용할 수 있다.
각 에이전트의 장치들은 DSS에 Mesos RAW Disk Reosurces
라는 항목으로 보고된다. 이렇게 보고된 디바이스는 LVM Volume Provider를 생성하는데 사용될 수 있는데, 이는 즉 SLRP를 생성한다는 것을 의미한다.