第1章 Ceph アーキテクチャー

Red Hat Ceph Storage クラスターは、優れたパフォーマンス、信頼性、スケーラビリティーを提供するように設計された、分散型のデータオブジェクトストアです。分散オブジェクトストアは、非構造化データに対応し、クライアントが最新のオブジェクトインターフェースとレガシーのインターフェースを同時に使用できるため、ストレージの未来と言えます。

以下に例を示します。

  • 多くの言語の API (C/C++、Java、Python)
  • RESTful インターフェース (S3/Swift)
  • ブロックデバイスインターフェース
  • ファイルシステムインターフェース

Red Hat Ceph Storage クラスターの電源は、特に RHEL OSP などのクラウドコンピューティングプラットフォーム用に、組織の IT インフラストラクチャーと大量のデータを管理する能力を変革することができます。Red Hat Ceph Storage クラスターは、ペタバイトからエクサバイト以上のデータにアクセスする数千のクライアントという 並外れた スケーラビリティーを提供します。

すべての Ceph デプロイメントの中心となるのは、Red Hat Ceph Storage クラスターです。これは、3 種類のデーモンで構成されます。

  • Ceph OSD デーモン: Ceph OSD は、Ceph クライアントの代わりにデータを格納します。また、Ceph OSD は Ceph ノードの CPU、メモリー、ネットワークを使用して、データの複製、イレイジャーコーディング、リバランス、復旧、監視、レポート作成などの機能を実行します。
  • Ceph Monitor: Ceph Monitor は、Red Hat Ceph Storage クラスターの現在の状態を備えた Red Hat Ceph Storage クラスターのマッピングのマスターコピーを維持します。監視には高い整合性が必要で、Paxos を使用して Red Hat Ceph Storage クラスターの状態に関する合意を確保します。
  • Ceph Manager: Ceph Manager は、Ceph Monitor の代わりに、配置グループ、プロセスメタデータ、ホストメタデータに関する詳細情報を維持します。これにより、スケーリング時にパフォーマンスを大幅に向上させます。Ceph Manager は、配置グループの統計など、読み取り専用の Ceph CLI クエリーの多くの実行を処理します。Ceph Manager は RESTful モニタリング API も提供します。
Daemons

Ceph クライアントインターフェースは、Red Hat Ceph Storage クラスターとの間で、データの読み取りと書き込みを行います。クライアントが、Red Hat Ceph Storage クラスターと通信するには、以下のデータが必要です。

  • Ceph 設定ファイル、またはクラスター名 (通常は ceph) およびモニターアドレス
  • プール名
  • ユーザー名およびシークレットキーへのパス。

Ceph クライアントは、オブジェクト ID とオブジェクトを保存するプール名を維持します。ただし、Object-to-OSD インデックスを維持したり、オブジェクトの位置を検索するために集中化オブジェクトインデックスと通信したりする必要はありません。データを保存および取得するために、Ceph クライアントは Ceph Monitor にアクセスし、Red Hat Ceph Storage クラスターマップの最新コピーを取得します。次に、Ceph クライアントは librados にオブジェクト名とプール名を提供します。これは、CRUSH (Controlled Replication Under Scalable Hashing) アルゴリズムを使用して、オブジェクトの配置グループと、データの保存と取得のための主要な OSD を計算します。Ceph クライアントは、読み取りおよび書き込み操作を実行することができるプライマリー OSD に接続します。クライアントと OSD には、中間サーバー、ブローカー、またはバスがありません。

OSD がデータを保存すると、クライアントが Ceph Block Device、Ceph Object Gateway、Ceph Filesystem または別のインターフェースであるかどうかに関わらず、Ceph クライアントからデータを受信し、データをオブジェクトとして格納します。

注記

オブジェクト ID は、OSD のストレージメディアだけでなく、クラスター全体で一意です。

Ceph OSD は、すべてのデータをオブジェクトとしてフラットな namespace に格納します。ディレクトリーの階層はありません。オブジェクトには、クラスター全体での一意の ID、バイナリーデータ、および名前/値のペアで構成されるメタデータがあります。

Object

Ceph クライアントは、クライアントのデータフォーマットのセマンティクスを定義します。たとえば、Ceph ブロックデバイスはブロックデバイスイメージを、クラスター全体で保存した一連のオブジェクトにマッピングします。

注記

一意の ID、データ、および名前と値のペアのメタデータで構成されるオブジェクトは、構造化と非構造化のデータの両方だけでなく、レガシーと最新のデータストレージインターフェースを表すことができます。