Ceph

 コンピューター科学の分野において、Ceph（またはと発音する）は、単一の分散コンピュータ・クラスター上でオブジェクトストレージを実装したフリーソフトウェアのストレージプラットフォームである。オブジェクト、ブロック、ファイルレベルのストレージインタフェースを提供し、単一障害点がなく、エクサバイトレベルまで拡張可能な、フリーで利用できる完全な分散オペレーションを主な目的としている。
Cephは、特別なハードウェアサポートを必要としないを使用して、データを複製することで耐障害性を持たせている。管理時間やその他のコストを最小にすることを目指す設計の結果として、Cephのシステムは、自己修復機能との両方を備える。
2016年4月21日、Cephの開発チームは、CephFSが安定したと思われる最初のバージョンである「Jewel」をリリースした。このバージョンにおいて、CephFSの修復および障害復旧ツールは、必要な機能を完備した（スナップショット機能など。複数のアクティブなメタデータサーバなどの機能は、環境によっては不安定になるため、デフォルトでは無効化されている）。
2017年8月のリリース（コードネーム「Luminous」）では、本番環境対応のBlueStoreストレージフォーマットが導入された。BlueStoreは、古いファイルシステムベースのファイルストアの多数の欠点を解決し、レイテンシの改善や追加のストレージ機能を提供している。
設計.
Cephは、独立した4種類のデーモンを使用する。
これらすべてのデーモンは完全に分散して動作し、同じサーバ群で動作させることもできる。
Cephは、高いスループットを達成するために、が複数のハードドライブにまたがってパーティションをストライプするのと同様に、個々のファイルを複数のノードにまたがってする。頻繁にアクセスされるオブジェクトがより多くのノードに複製される、適応的なロードバランシングがサポートされている。、BlueStoreが本番環境でのデフォルトの推奨ストレージタイプである。BlueStoreはCeph独自のストレージ実装であり、以前使用されていたFilestoreバックエンドよりも優れたレイテンシと高い拡張性を提供し、追加の処理やレイヤのキャッシュなどが必要なファイルシステムベースのストレージの欠点を解消している。Filestoreバックエンドはまだ有用で非常に安定していると考えられており、その場合には本番環境ではXFSを使用することが推奨されており、非本番環境ではBtrfsも推奨されている。RADOSオブジェクトの最大長に制限があるため、ext4ファイルシステムの使用は非推奨であり、すでにテストも行われなくなっている。
オブジェクトストレージ.
Cephは分散オブジェクトストレージ実装している。Cephのソフトウェア・ライブラリが提供するクライアント・アプリケーションcodice_1を利用することで、RADOS（"reliable autonomic distributed object store; 信頼性の高い自律分散オブジェクトストア"）と呼ばれるCeph独自のオブジェクトベースのストレージ・システムに直接アクセスすることができる。また、codice_1は、"RADOSブロックデバイス (RBD)、RADOS" "Gateway"、Ceph File System (CephFS) などのCephの主要インタフェースの基盤を提供している。
codice_1ソフトウェアライブラリは、C、C++、Java、PHP、およびPythonでのアクセスを提供する。RADOS Gatewayは、RADOSオブジェクトストアを、ネイティブのAmazon S3 APIとOpenStack Swift APIの両方から利用できるRESTfulインタフェースとして公開する。
ブロックストレージ.
Cephのオブジェクトストレージシステムは、Cephをシン・プロビジョニングされたブロックデバイスとしてマウントすることを可能にする。アプリケーションがブロックデバイスを使用してCephにデータを書き込むと、Cephは自動的にデータをストライプ化し、クラスタ全体に複製する。また、Cephの"RADOS Block Device" (RBD) は、Kernel-based Virtual Machines (KVM) と統合されている。
CephのRBDインタフェースは、codice_1インタフェースとCephFSファイルシステムを提供するのと同じCephオブジェクトストレージシステムを利用しており、ブロックデバイスのイメージをオブジェクトとして保存する。RBDはcodice_1上に構築されているため、RBDは、codice_1が持つ読み取り専用スナップショットの作成や、スナップショットの復元などの機能を継承している。クラスタ全体でイメージをストライピングすることで、大きなブロックデバイスイメージの読み取りアクセス性能を向上させている。
ブロックデバイスは仮想化できるため、、OpenStack、、、Proxmox Virtual Environmentなどの仮想化プラットフォームにおいて、仮想マシンにブロックストレージを提供できる。
ファイルシステム.
Cephのファイルシステム (CephFS) は、オブジェクトストレージとブロックデバイスインタフェースを提供するのと同じCephのオブジェクトストレージシステム上で動作する。Cephメタデータサーバクラスタは、ファイルシステムのディレクトリやファイル名を、RADOSクラスタ内に保存されているオブジェクトにマッピングするサービスを提供する。メタデータサーバクラスタは、拡大・縮小することができ、ファイルシステムを動的にリバランスしてクラスタホスト間でデータを均等に分散させることができる。この機能のおかげで、高い性能が維持され、クラスタ内の特定のホストに大きな負荷がかかるのを防ぐことが保証される。
クライアントは、Linuxカーネルクライアントを使用して、POSIX互換ファイルシステムとしてマウントする。2010年3月19日、リーナス・トーバルズは、2010年5月16日にリリースされたLinuxカーネルバージョン2.6.34にCephクライアントをマージした。また、古いFUSEベースのクライアントも利用可能である。サーバは、通常のUnixデーモンとして動作する。
歴史.
Cephは、2006 USENIX Conference on Operating System Design (OSDI 2006) において、Weil、Brandt、Miller、Long、Maltzahnによる論文内で初めて提案された。さらに詳細な記述が、翌年にの博士論文として出版された。
2007年秋に大学院を卒業した後も、WeilはフルタイムでCephに取り組み続け、Cephのコア開発チームにはYehuda Sadeh WeinraubとGregory Farnumが新たに参加した。2012年、WeilはCephのプロフェッショナルサービスおよびサポートのための会社を設立した。
2014年4月、Inktankはレッドハットに買収され、Ceph開発の大部分はレッドハット社内で行われるようになった。
2015年10月、オープンソースのソフトウェア定義型ストレージ技術の方向性を推進することでコミュニティを支援するために、Ceph Community Advisory Boardが設立された。チャーターアドバイザリボードには、カノニカル、CERN、シスコシステムズ、富士通、インテル、レッドハット、SanDisk、SUSEなどのグローバルなIT組織から、Cephプロジェクトにコミットしている所属メンバーが参加している。
語源.
「Ceph」という名前は、タコを含む軟体動物のクラスである「頭足類 (cephalopod) 」の略語である。ロゴが強調しているように、この名前は、分散システムを示唆するタコの非常に並列的な振る舞いから来ている。また、「サミー」という名前のバナナナメクジがCephが誕生したUCSCのマスコットであるため選ばれた。タコもバナナナメクジも、ともに軟体動物であり、頭足類である。