なぜ「Ceph」は人気なのか? これで分かる“分散ストレージ”入門:Ceph徹底解説【前編】
「Ceph」は、一般的なストレージシステムにはないメリットをもたらす分散ストレージソフトウェアだ。その人気の理由や、基本的な仕組みを解説する。
オープンソースの分散ストレージソフトウェア「Ceph」は、データセンターでは人気の存在だ。広く採用されている理由は、集中管理型のストレージシステムにはない幾つかのメリットをもたらす点にある。一般的なストレージシステムとは何が違うのかを含めて、その人気の理由や、基本となる仕組みを押さえておこう。
Cephはなぜ人気で、普通のストレージと何が違うのか?
Cephは、複数のストレージにデータを分散させるOSSだ。データセンターにある既存の汎用(はんよう)ストレージに導入できるため、専用のインフラを購入する必要はない。Cephは、ストレージのスケーラビリティ(拡張性)や変化への適応力を高めるツールとして、データセンターでは人気だ。
従来の一般的なストレージシステムは、ストレージコントローラー(以下、コントローラー)のような中央に位置する装置を中心とした、集中管理型のアーキテクチャとなっている。このアーキテクチャの欠点として以下が挙げられる。
- スケーラビリティ(拡張性)の限界
- 拡張に伴うパフォーマンスの低下
- 単一障害点の存在
Cephで構成した分散ストレージシステムでは、データは複数のノード(サーバ)に分散され、集中型のコントローラーは不要になる。複数のノードは、他のノードやクライアント(アクセス元のシステム)と直接やりとりできる。Cephは、オブジェクトストレージ、ブロックストレージ、ファイルストレージといった複数の異なるデータ格納方式を同一クラスタ内で同時に提供できる。
こうしたソフトウェア定義ストレージ(SDS)を構築するために、Cephは以下のコンポーネントで構成されている。
- RADOS(Reliable Autonomic Distributed Object Store)
- 「Ceph Storage Cluster」(Cephで構成した分散ストレージシステム)全体にデータを分散させる、スケーラブルでインテリジェントな分散ストレージシステム。Cephの基盤として機能する。
- RADOS Gateway(RGW、Ceph Object Gatewayとも)
- クラウドサービス群「Amazon Web Services」(AWS)のオブジェクトストレージサービス「Amazon Simple Storage Service」(Amazon S3)、およびオープンソースのオブジェクトストレージシステム「OpenStack Swift」のAPI(アプリケーションプログラミングインタフェース)と互換性のあるオブジェクトストレージサービス。
- RADOS Block Device(RBD、Ceph Block Deviceとも)
- 仮想ディスクをオブジェクトとして分散させ、「SAN」(ストレージエリアネットワーク)に類似したメリットを実現するブロックストレージサービス。
- Ceph File System(CephFS)
- OSのインタフェース規格「POSIX」(Portable Operating System Interface)準拠の分散ファイルシステム。
- librados
- RGW、RBD、CephFSを経由せずに、Ceph Storage Clusterへの独自のインタフェースを作成できるAPI。
以上のコンポーネントにより、Cephは従来型のストレージシステムでは不可能な高レベルのスケーラビリティと変化への適用能力を実現した。Ceph Storage Clusterはこれらのコンポーネントを使用して、物理ストレージから切り離した論理ストレージプール(仮想的なストレージ領域)を作成する。
Ceph Storage Clusterの仕組み
Ceph Storage Clusterは複数のノードで構成される。そのほとんどはHDD、SSD、またはその組み合わせで構成されるストレージノードだ。その他のノードは、ストレージノードと連携して管理や操作といったタスクを実行する。
Ceph Storage Clusterのノードは、この、操作を実行する「デーモン」(deamon:UNIX系OSのバックグラウンドで動作するプロセス)を実行する。デーモンによってノードは他のノードやクライアントと通信する。データは複数のノードに分散され、各ノードは独立して動作するので、単一障害点がなくなる。
Ceph Storage Clusterは以下の4種類のデーモンを使用する。
- Ceph Monitor
- クラスタの現在の状態とステータスを追跡し、クラスタマップのマスターコピーを管理するデーモン。
- Ceph OSD(Ceph Object Storage Daemon)
- Ceph Storage Clusterは通常、データのアクセスや管理を容易にする多数のストレージノードで構成される。各ストレージノードは複数のOSDインスタンス(データの保存や読み書き、バックアップなどを担当するプロセス)を実行し、それぞれがデータを格納している個々のストレージと連携する。
- Ceph Manager
- Ceph Monitorと連携して、ストレージの使用率やシステム負荷、パフォーマンスといった実行時のメトリクスとクラスタのステータスを追跡するデーモン。
- Ceph Metadata Server(MDS)
- CephFSを実装するCeph Storage Clusterでのみ使用されるデーモン。ファイル名、タイムスタンプ、データパスなどのファイルメタデータを格納、および管理する。
Cephはデーモンと併せ、アルゴリズム「CRUSH」(Controlled Replication Under Scalable Hashing)を使用し、各ストレージを追跡し、情報を取得する。これにより1つのルックアップテーブル(対応表)に依存することがない。CRUSHは、個々のストレージをどのプレースメントグループ(データの格納場所を決定する論理的なグループ)とOSDノード(データの保存や読み書き、復旧などを担当するノード)に配置するかを決定する。CRUSHはデータをOSDノード全体に分散させ、効率的な方法でデータのレプリケーション(複製)をし、高いレジリエンシー(障害からの回復力)を実現する。
次回はCephを実装する上での課題や、サポート付きの商用版などを紹介する。
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.