Ceph
概要

データを複数のサーバやストレージ装置に分散して保存する仕組みを提供するソフトウェアである。各データは自動的に複製され、特定のノードに障害が発生しても他のノードからアクセス可能である。
データ配置や再配置は内部のマップ情報に基づき自動で行われ、運用者が個別に管理する必要はない。データへのアクセスは、Cephクライアントがオブジェクトやブロック単位で行い、ネットワークを通じて直接対応するストレージノードに接続することができる。
Cephの主要な構成要素には、オブジェクトを保存する「OSD」(Object Storage Daemon)、クラスタ情報を管理する「モニター」、はクラスタの統計情報の収集やダッシュボード提供を担う「マネージャ」がある。ファイルシステム(CephFS)を利用する場合は、ファイルやディレクトリなどの属性情報(メタデータ)を管理する「メタデータサーバ」も必要になる。
データの配置には「CRUSH」(Controlled Replication Under Scalable Hashing)と呼ばれるアルゴリズムが使われる。これはデータのハッシュ値とクラスタの構成マップをもとに、どのOSDにデータを配置するかを計算で決定する。中央の配置管理サーバを持たない設計のため、単一障害点(SPOF)が生じにくい。データは複数のOSDにレプリカを分散して書き込むか、イレイジャーコーディングによって分割して冗長性を持たせる。
2006年にセイジ・ウェイル(Sage Weil)氏が博士論文の研究として開発を始め、現在は米レッドハット(Red Hat)社が中心となって開発者コミュニティで開発が継続され、LGPLに基づいてオープンソースとして公開されている。OpenStackのCinder(ブロックストレージ)やGlance(イメージストレージ)のバックエンド、KubernetesのPersistent Volume、Proxmox VEのストレージなどとして利用されている。「Red Hat Ceph Storage」としてRed Hat社が商用サポート付きのディストリビューションも提供している。