ストレージ

分散ストレージ(Ceph・Rook・Longhorn) ぶんさんすとれーじ(せふ・るーく・ろんぐほーん)

CephRookLonghorn分散ストレージKubernetesSoftware Defined Storage
分散ストレージ(Ceph・Rook・Longhorn)について教えて

簡単に言うとこんな感じ!

複数のサーバーのディスクを束ねて、クラウドのようなストレージを自分で作れる技術だよ。Cephが基盤エンジン、Rookはそれをk8sで管理するツール、LonghornはRancherが作ったk8s向けの軽量版って感じのポジションだよ!


分散ストレージ(Ceph・Rook・Longhorn)とは

分散ストレージとは、複数のサーバーにまたがってデータを分散保存し、単一の障害点(SPOF)をなくしながら高可用性・高スケーラビリティを実現するストレージシステムです。クラウドの「無限に広がるストレージ」の多くはこの技術が基盤になっています。

CephはRedHat(現IBM傘下)が主導するオープンソースの分散ストレージです。オブジェクト・ブロック・ファイルの3種のインターフェースを統合的に提供できるのが特徴で、Petabyteスケールの大規模環境でも使われています。

RookはCephなどの分散ストレージをKubernetes上で管理するためのCNCFプロジェクト(Graduated)です。Ceph自体の運用は複雑ですが、RookはそれをKubernetesのOperatorパターンで自動化します。

LonghornはRancher(現SUSE傘下)が開発したKubernetesネイティブの分散ブロックストレージです。Cephと比べてシンプルで軽量なため、エッジ環境や中小規模クラスターで人気があります。


各ソフトウェアの比較

項目CephRookLonghorn
主な用途大規模分散ストレージ基盤Cephの自動化/K8s統合K8s用ブロックストレージ
ストレージ種別オブジェクト/ブロック/ファイルCephに準じるブロックのみ
Kubernetesへの親和性設定が必要ネイティブ対応ネイティブ対応
運用の複雑さ高い中程度低い
スケーラビリティPetabyte級Petabyte級中規模向け
スナップショット対応対応対応
CNCFステータス独立プロジェクトGraduatedIncubating

Cephの主要コンポーネント

  • OSD(Object Storage Daemon) — 実際のデータ保存を担当。各ディスクに1プロセス
  • MON(Monitor) — クラスター状態の監視と調整。奇数台必要
  • MDS(Metadata Server) — CephFSのメタデータ管理
  • RGW(RADOS Gateway) — S3/Swift互換のオブジェクトストレージAPI

歴史と背景

  • 2007年 — Sage Weil(カリフォルニア大)がCephを開発。博士論文として発表
  • 2012年 — CephがLinuxカーネルに統合
  • 2014年 — RedHatがInkstorageを買収しCeph開発を引き継ぐ
  • 2018年 — RookがCNCFプロジェクトとして認定
  • 2019年 — LonghornがRancherによりオープンソース化
  • 2020年 — RookがCNCF Graduatedプロジェクトに昇格

アーキテクチャ概要

Rook + Ceph on Kubernetes Kubernetes クラスター Rook Operator(CephCluster CRDを監視・自動運用) Ceph MON × 3 クラスター状態監視 Ceph OSD × N データ保存・複製 Ceph RGW/MDS オブジェクト/ファイル CSI ドライバー(rook-ceph) PVCからRBD(ブロック)/ CephFS / S3(オブジェクト)へアクセス

関連する規格・RFC

規格内容
CRUSH AlgorithmCephが使うデータ配置アルゴリズム(論文: CRUSH: Controlled, Scalable, Decentralized Placement)
RADOSCephの基盤となる分散オブジェクトストア
S3 APICeph RGWが実装するオブジェクトストレージAPI

関連用語