5.3. Ceph Storage ノードのディスクレイアウトのマッピング
コンテナー化された Ceph Storage をデプロイする場合には、ディスクレイアウトをマッピングし、Ceph OSD サービス用に専用のブロックデバイスを指定する必要があります。カスタム Ceph パラメーターを定義するために作成した環境ファイル (/home/stack/templates/ceph-config.yaml) で、このマッピングを行うことができます。
parameter_defaults で CephAnsibleDisksConfig リソースを使用して、ディスクレイアウトをマッピングします。このリソースでは、以下の変数が使用されます。
| 変数 | 必須/オプション | デフォルト値 (未設定の場合) | 説明 |
|---|---|---|---|
| osd_scenario | 必須 | lvm
注記: デフォルト値は |
|
| devices | 必須 | なし。変数を設定する必要があります。 | ノード上の OSD に使用するブロックデバイスのリスト。 |
| dedicated_devices |
必須 (ただし | devices |
|
| dmcrypt | オプション | false |
OSD に保存されるデータが暗号化されているか ( |
| osd_objectstore | オプション | bluestore
注記: デフォルト値は | Ceph の使用するストレージバックエンドを設定します。
注記: 値のデフォルトは |
5.3.1. BlueStore の使用 リンクのコピーリンクがクリップボードにコピーされました!
手順
Ceph OSD として使用するブロックデバイスを指定するには、以下のスニペットのバリエーションを使用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/nvme0n1は高パフォーマンスのデバイスクラスにあるため、例に示すparameter_defaultsでは、/dev/sdb、/dev/sdc、および/dev/sdd上で動作する 3 つの OSD が作成されます。この 3 つの OSD は、block.dbおよび BlueStore WAL デバイスに/dev/nvme0n1を使用します。ceph-volumeツールは、batchサブコマンドを使用してこれを実施します。Ceph Storage ノードごとに同じ設定が複製され、ハードウェアが統一されていることを前提とします。block.dbおよび BlueStore WAL データが OSD と同じディスクに存在する場合は、以下に示すようにパラメーターのデフォルトを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2. 永続デバイス名が付いたデバイスの参照 リンクのコピーリンクがクリップボードにコピーされました!
手順
一部のノードでは、
/dev/sdbおよび/dev/sdc等のディスクパスが、リブート中に同じブロックデバイスをポイントしない場合があります。このようなケースが Ceph Storage ノードで見られる場合は、各ディスクに/dev/disk/by-path/シンボリックリンクを指定して、ブロックデバイスのマッピングがデプロイメント全体で一貫性を保つようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) オーバークラウドのデプロイメント前に OSD デバイスのリストを設定しなければならないので、ディスクデバイスの PCI パスを把握/設定できない場合があります。このような場合には、イントロスペクション中にブロックデバイスの
/dev/disk/by-path/symlinkデータを収集します。以下の例の最初のコマンドを実行して、サーバー
b08-h03-r620-hciのアンダークラウド Object Storage サービス (swift) からイントロスペクションデータをダウンロードし、そのデータをb08-h03-r620-hci.jsonと呼ばれるファイルに保存します。2 番目のコマンドを実行して、"by-path" を grep します。このコマンドの出力には、ディスクの特定に使用できる一意の/dev/disk/by-path値が含まれます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ストレージデバイスの命名規則の詳細は、ストレージデバイスの管理ガイドの 永続的な命名属性の概要 を参照してください。
5.3.3. 高度なシナリオでの OSD の設定 リンクのコピーリンクがクリップボードにコピーされました!
環境ファイルにおいて、CephAnsibleDisksConfig リソースの devices 変数で、OSD に使用するブロックデバイスをリスト表示します。
他のデバイス設定パラメーターを指定せずに devices 変数を使用する場合、ceph-volume lvm batch は、高パフォーマンスデバイスを低速なデバイスの block.db として均等に共有し、OSD 設定を自動的に最適化します。
以下の手順を使用して、ceph-volume lvm batch モードで実行しないように devices を設定できます。
5.3.3.1. block.db を使用したパフォーマンスの向上 リンクのコピーリンクがクリップボードにコピーされました!
block.db を使用すると、スループットを高め、応答時間を改善することで、Ceph Storage クラスターのパフォーマンスを向上させることができます。block.db は、データセグメントと BlueStore ログ先行書き込み (WAL) で設定されるデータベースです。
手順
環境ファイルに以下の内容を追加してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
sda、sdb、sdc、およびsddの 4 つの OSD が設定されます。各ペアには、独自のデータベースnvem0n1およびnvme0n2があります。注記devicesリスト内のデバイスの順序は重要です。ドライブに続いて block.db および BlueStore WAL (DB-WAL) デバイスをリスト表示します。この例では、nvme0n1はsdaおよびsdbの DB-WAL で、nvme0n2はsdcおよびsddの DB-WAL です。詳細は、BlueStore の使用 を参照してください。-
オーバークラウドのデプロイ時に、
-eオプションを使用して、デプロイメントコマンドに新しいコンテンツが含まれる環境ファイルを追加します。
5.3.3.2. 専用のログ先行書き込み (WAL) デバイスの使用 リンクのコピーリンクがクリップボードにコピーされました!
専用のログ先行書き込み (WAL) デバイスを指定できます。devices、dedicated_devices、および bluestore_wal_devices を一緒に使用すると、OSD のすべてのコンポーネントを別々のデバイスに分割できるため、パフォーマンスが向上します。
以下の手順例では、別の追加ディクショナリー bluestore_wal_devices が、NVMe デバイス nvme0n1 および nvme0n2 のログ先行書き込みを分離します。
手順
環境ファイルに以下の内容を追加してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オーバークラウドのデプロイ時に、
-eオプションを使用して、デプロイメントコマンドに新しいコンテンツが含まれる環境ファイルを追加します。
5.3.3.3. 制御性の向上のための事前作成 LVM の使用 リンクのコピーリンクがクリップボードにコピーされました!
以前の高度なシナリオでは、ceph-volume は異なる種別のデバイスリストを使用して OSD の論理ボリュームを作成します。ceph-volume を実行する前に論理ボリュームを作成し、それらの論理ボリュームの lvm_volumes リストを ceph-volume に渡すこともできます。これには、論理ボリュームを事前に作成する必要がありますが、制御がより正確になります。director はハードウェアをプロビジョニングするロールりも果たすため、初回ブートスクリプトを使用してこれらの LVM を事前に作成する必要があります。
手順
OS::TripleO::NodeUserDataリソース種別として heat テンプレートを登録する、以下の内容の環境ファイル/home/stack/templates/firstboot.yamlを作成します。resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/ceph-lvm.yaml
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/ceph-lvm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 環境ファイル
/home/stack/templates/ceph-lvm.yamlを作成します。3 つの物理ボリュームを含む以下の例のようなリストを追加します。デバイスリストが長い場合は、要件に応じて例をデプロイメントします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の方法で、デバイスリストの代わりに
lvm_volumesパラメーターを使用します。これは、ボリュームグループと論理ボリュームがすでに作成されていることを前提とします。このシナリオの一般的なユースケースでは、WAL および DB LV が SSD 上にあり、データ LV が HDD 上にあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドのデプロイ時に、
-eオプションを使用して、デプロイメントコマンドに新しいコンテンツが含まれる環境ファイルを追加します。- 注記
- WAL デバイスが DB デバイスよりも優れたパフォーマンスのハードウェアに存在する場合に限り、別の WAL デバイスを指定する必要があります。通常、別の DB デバイスを作成するだけで十分で、同じパーティションが WAL 機能に使用されます。