MENU

Cephとは|オブジェクト・ブロック・ファイルを統合する分散ストレージ

Ceph アイキャッチ
Ceph

Cephは、2007年にカリフォルニア大学サンタクルーズ校のSage Weil氏が博士論文の研究成果として公開した分散ストレージシステムです。単一のクラスタでオブジェクト、ブロック、ファイルシステムの3種類のストレージインターフェースを提供できる点が最大の特徴で、OpenStackのデフォルトストレージとしての地位を確立し、CERN、ヨーロッパ宇宙機関、各国の国立研究機関などペタバイト級ストレージ基盤で広く採用されています。現在はLinux Foundation傘下のCeph Foundationが運営し、Red Hat(IBM傘下)、SUSE、Canonicalなどが商用サポートを提供しています。

目次

この記事の目次

  1. Cephの歴史と思想
  2. RADOSとアクセスインターフェース
  3. 代表的な採用事例
  4. 運用の難しさと対策
  5. まとめ

Cephの歴史と思想

Cephの歴史と思想

Sage Weil氏は2003年にUCSCで分散ファイルシステムの研究を開始し、2007年に博士論文『Ceph: Reliable, Scalable, and High-Performance Distributed Storage』として体系化しました。卒業後の2007年に企業DreamHostでCephの開発を継続し、2012年にInktank Storage社を設立して商用化に乗り出します。2014年にInktankはRed Hatに買収され、以降はRed Hat Cephの名前で企業向けに広く展開されてきました。2018年にCeph FoundationがLinux Foundation傘下で発足し、ベンダー中立な開発体制に移行しています。

Cephの中核思想は「中央メタデータサーバーを置かない」ことです。CRUSH(Controlled Replication Under Scalable Hashing)と呼ばれる分散アルゴリズムにより、データの配置先を計算で導出し、従来の分散ファイルシステムが抱えていたメタデータサーバーへの集中アクセスというボトルネックを解消しました。ノードを追加するとCRUSHマップの更新だけで自動的に再配置が走り、ペタバイト級まで線形にスケールできることがCephの最大の強みです。

RADOSとアクセスインターフェース

RADOSとアクセスインターフェース

Cephの基盤はRADOS(Reliable Autonomic Distributed Object Store)と呼ばれるオブジェクトストアです。OSD(Object Storage Daemon)が各ディスクに張り付き、Monitor(MON)デーモンがクラスタ状態を管理、Manager(MGR)が運用機能を提供します。オブジェクトはPlacement Group(PG)単位でレプリケーションまたはErasure Codingにより冗長化され、ノード障害時は自動でリカバリされます。

ユーザーはRADOSの上に提供される3つのインターフェースから用途に応じて選択します。RGW(RADOS Gateway)はS3/Swift互換のオブジェクトストレージAPIを提供し、RBD(RADOS Block Device)はOpenStackやKVMから利用するブロックデバイス、CephFSはPOSIX準拠の分散ファイルシステムを提供します。1つのクラスタで全種類を同時提供できるため、用途別にストレージ製品を分けていた現場を統合できる点が大規模事業者に好まれます。

代表的な採用事例

代表的な採用事例

CephはOpenStackのリファレンスストレージとして長年使われており、楽天モバイル、NTTコミュニケーションズ、CERN、欧州の国立スーパーコンピュータセンターなどで導入実績があります。CERNでは大型ハドロン衝突型加速器(LHC)の実験データを格納するストレージ基盤として複数百ペタバイト規模のCephクラスタを運用しています。DigitalOceanのSpacesもCephベースで構築されており、商用クラウドの裏側でも利用されています。

近年はKubernetes環境での利用も伸びています。Rook(CNCF卒業プロジェクト)を使えばKubernetes Operatorとして宣言的にCephクラスタを構築・運用でき、永続ボリュームの提供基盤として地に足の着いた選択肢となっています。プライベートクラウドでS3互換ストレージを内製したい企業、機密データを外部に出せない官公庁・研究機関、ペタバイト級のメディアアーカイブを抱える放送局など、長期的な自前運用が経済合理性を持つ規模で特に強みを発揮します。

運用の難しさと対策

運用の難しさと対策

Ceph運用の最大の難しさは、ハードウェア設計と容量計画の正確さが要求される点です。OSDのジャーナル/WALデバイスをNVMeに置くか、レプリケーション係数を何にするか、Erasure Codingを何プロファイルで運用するかで性能と耐障害性が大きく変わります。また、ノード追加時のリカバリトラフィックがネットワーク帯域を埋め尽くしてしまうケースもあり、計画的なバックフィル制御と十分な10GbE以上のネットワーク設計が前提となります。

運用支援として、cephadmという公式オーケストレータでcontainer化されたデーモンを管理する仕組みが整っており、Ceph DashboardやPrometheus exporter経由のGrafanaダッシュボード、Ceph Manager moduleでの自動チューニングなどが活用できます。商用サポートが必要ならIBM/Red Hat Ceph Storage、SUSE Enterprise Storage、Canonical Charmed Cephなどを採用し、SLAやセキュリティパッチの提供を受けながら大規模運用するのが定石です。小規模クラスタ(3〜5ノード)では運用負担に対する見返りが小さいため、本来は10ノード以上での運用が推奨されます。

まとめ

Cephは、CRUSHアルゴリズムを核に「中央サーバーレス」で線形スケールを実現した分散ストレージの代表格です。オブジェクト・ブロック・ファイルを単一クラスタで提供できる柔軟性は他に類を見ず、ペタバイト級のプライベートクラウドや研究基盤を構築する際の事実上の標準として、今後も中核的な役割を担い続けるでしょう。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次