分散ストレージ(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と比べてシンプルで軽量なため、エッジ環境や中小規模クラスターで人気があります。
各ソフトウェアの比較
| 項目 | Ceph | Rook | Longhorn |
|---|---|---|---|
| 主な用途 | 大規模分散ストレージ基盤 | Cephの自動化/K8s統合 | K8s用ブロックストレージ |
| ストレージ種別 | オブジェクト/ブロック/ファイル | Cephに準じる | ブロックのみ |
| Kubernetesへの親和性 | 設定が必要 | ネイティブ対応 | ネイティブ対応 |
| 運用の複雑さ | 高い | 中程度 | 低い |
| スケーラビリティ | Petabyte級 | Petabyte級 | 中規模向け |
| スナップショット | 対応 | 対応 | 対応 |
| CNCFステータス | 独立プロジェクト | Graduated | Incubating |
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プロジェクトに昇格
アーキテクチャ概要
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| CRUSH Algorithm | Cephが使うデータ配置アルゴリズム(論文: CRUSH: Controlled, Scalable, Decentralized Placement) |
| RADOS | Cephの基盤となる分散オブジェクトストア |
| S3 API | Ceph RGWが実装するオブジェクトストレージAPI |
関連用語
- CSI(Container Storage Interface) — Ceph/Longhornをk8sに接続する仕組み
- PersistentVolume・PVC — 分散ストレージをPodから利用する抽象化
- S3互換ストレージ(MinIO) — Ceph RGWと同様のS3互換機能
- RAID — 従来の単一サーバー内の冗長化技術との比較