アーキテクチャーガイド

Red Hat Ceph Storage 6

Red Hat Ceph Storage アーキテクチャーガイド

Red Hat Ceph Storage Documentation Team

概要

本書では、Ceph Storage クラスターとそのクライアントのアーキテクチャー情報を提供します。
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、弊社の CTO、Chris Wright のメッセージ を参照してください。

1. Ceph アーキテクチャー

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

以下に例を示します。

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

Red Hat Ceph Storage クラスターの電源は、特に Red Hat Enterprise Linux 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 も提供します。
デーモン

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、バイナリーデータ、および名前/値のペアで設定されるメタデータがあります。

オブジェクト

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

注記

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