6.3. ceph-volume が ceph-disk の代替になる理由

以前のバージョンの Red Hat Ceph Storage では、ceph-disk ユーティリティーを使用して OSD を準備、アクティブ化、および作成していました。Red Hat Ceph Storage 4 以降では、ceph-diskceph-volume ユーティリティーに置き換えられました。これは、OSD として論理ボリュームをデプロイする 1 つの目的のコマンドラインツールとなることを目的としています。一方、OSD の準備、アクティブ化、および作成時に同様の API を ceph-disk に維持します。

ceph-volume はどのように機能しますか。

ceph-volume は、ハードウェアデバイスのプロビジョニングに関して、現在、レガシーの ceph-disk デバイスと LVM (Logical Volume Manager) デバイスの 2 つの方法に対応しているモジュラーツールです。ceph-volume lvm コマンドは、LVM タグを使用して、Ceph 固有のデバイスと、OSD との関係に関する情報を保存します。これらのタグを使用して、OSDS に関連付けられたデバイスを後で再検出し、クエリーし、それらをアクティベートできるようにします。LVM および dm-cache に基づく技術にも対応しています。

ceph-volume ユーティリティーは dm-cache を透過的に使用し、論理ボリュームとして処理します。処理する特定のワークロードに応じて、dm-cache を使用した場合のパフォーマンスの損益を考慮するとよいでしょう。一般的に、ブロックサイズが小さくなるとランダムおよび順次読み出し操作のパフォーマンスが向上し、ブロックサイズが大きくなるとランダムおよび連続書き込み操作のパフォーマンスが低下します。ceph-volume を使用しても、パフォーマンスが大幅に低下することはありません。

重要

ceph-disk ユーティリティーは非推奨になりました。

注記

ceph-volume simple コマンドは、レガシーの ceph-disk デバイスが使用されている場合には、そのデバイスを処理することができます。

ceph-disk はどのように機能しますか。

ceph-disk ユーティリティーは、upstartsysvinit のような異なるタイプの init システムを多数サポートしながら、デバイスを検出することができるようにする必要がありました。このため、ceph-disk は GUID パーティションテーブル (GPT) パーティションにのみ集中します。具体的には、デバイスを独自の方法でラベル付けする GPT GUID で、次のような質問に答えます。

  • このデバイスは ジャーナル ですか。
  • このデバイスは暗号化されたデータパーティションですか。
  • デバイスが部分的に準備されましたか。

これらの質問を解決するために、ceph-disk は UDEV ルールを使用して GUID に一致させます。

ceph-disk を使用するデメリットはなんですか。

UDEV ルールを使用して ceph-disk を呼び出すと、ceph-disk systemd ユニットと ceph-disk 実行ファイルの間に行き来が発生することがあります。このプロセスは信頼性が非常に低く、時間がかかるため、ノードのブートプロセス中に OSD が全く起動しなくなることがあります。さらに、UDEV の非同期動作により、これらの問題をデバッグしたり複製することもすることは困難です。

ceph-disk は GPT パーティションと排他的に機能するため、論理ボリュームマネージャー (LVM) ボリュームや同様のデバイスマッパーデバイスなどの他のテクノロジーには対応できません。

GPT パーティションがデバイス検出ワークフローで正しく機能するようにするには、ceph-disk で多数の特別なフラグを使用する必要があります。また、これらのパーティションには、デバイスを Ceph が排他的に所有する必要があります。