2.11. オーバークラウドノードでの LVM2 フィルターの有効化
特定の BlockStorage Service (cinder) バックエンドで LVM2 (Logical Volume Management) ボリュームを使用する場合、Red Hat OpenStack Platform (RHOSP) ゲスト内で作成したボリュームが、cinder-volume
または nova-compute
をホストするオーバークラウドノードに表示される場合があります。この場合、ホスト上の LVM2 ツールは、OpenStack ゲストが作成する LVM2 ボリュームをスキャンします。これにより、Compute ノードまたはコントローラーノードで次の問題が 1 つ以上発生する可能性があります。
- LVM がゲストからのボリュームグループを表示するように見える
- LVM が重複するボリュームグループ名を報告する
- LVM がストレージにアクセスしているため、ボリュームの切り離しが失敗する
- LVM の問題が原因でゲストがブートに失敗する
- ゲストマシン上の LVM は、実際に存在するディスクが見つからないため、部分的な状態にある
- LVM を持つデバイスで Block Storage サービス (cinder) のアクションが失敗する
- Block Storage サービス (cinder) のスナップショットが正しく削除されない
-
ライブマイグレーション中のエラー:
/etc/multipath.conf
が存在しない
この誤ったスキャンを防ぎ、ゲスト LVM2 ボリュームをホストノードから分離するために、オーバークラウドのデプロイまたは更新時に LVMFilterEnabled
heat パラメーターを使用してフィルターを有効にし、設定できます。このフィルターは、アクティブな LVM2 ボリュームをホストする物理デバイスのリストから計算されます。LVMFilterAllowlist
および LVMFilterDenylist
パラメーターを使用して、ブロックデバイスを明示的に許可および拒否することもできます。このフィルタリングは、グローバルに、特定のノードロールに、または特定のデバイスに適用できます。
前提条件
- アンダークラウドの正常なインストール。詳しくは、Installing the undercloud を参照してください。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 source コマンドでアンダークラウドの認証情報ファイルを読み込みます。
$ source ~/stackrc
新しい環境ファイルを作成するか、既存の環境ファイルを変更します。この例では、新しいファイル
lvm2-filtering.yaml
を作成します。$ touch ~/lvm2-filtering.yaml
環境ファイルに以下のパラメーターを追加します。
parameter_defaults: LVMFilterEnabled: true
LVM2 フィルターの実装はさらにカスタマイズできます。たとえば、Compute ノードでのみフィルタリングを有効にするには、次の設定を使用します。
parameter_defaults: ComputeParameters: LVMFilterEnabled: true
これらのパラメーターは、正規表現もサポートしています。コンピュートノードでのみフィルタリングを有効にし、
/dev/sd
で始まるすべてのデバイスを無視するには、次の設定を使用します。parameter_defaults: ComputeParameters: LVMFilterEnabled: true LVMFilterDenylist: - /dev/sd.*
openstack overcloud deploy
コマンドを実行し、LVM2 フィルタリング設定を含む環境ファイルと、オーバークラウドデプロイメントに関連するその他の環境ファイルを含めます。$ openstack overcloud deploy --templates \ <environment-files> \ -e lvm2-filtering.yaml