7.2. ceph-volume が ceph-disk の代替になる理由
Red Hat Ceph Storage 4 までは、OSD の準備、アクティブ化、作成に ceph-disk
ユーティリティーが使用されていました。Red Hat Ceph Storage 4 以降では、ceph-disk
が ceph-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
ユーティリティーは、upstart
や sysvinit
のような異なるタイプの 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 が排他的に所有する必要があります。