2.5. マルチパス設定
マルチパスを使用してサーバーノードおよびストレージアレイ間の複数の I/O パスを単一のデバイスに設定することで、冗長性が得られると共にパフォーマンスが向上します。マルチパスは、新規および既存のオーバークラウドデプロイメントに設定することができます。
2.5.1. 新規デプロイメントでのマルチパス設定 リンクのコピーリンクがクリップボードにコピーされました!
新規オーバークラウドデプロイメントでマルチパスを設定するには、以下の手順を実施します。
既存のオーバークラウドデプロイメントでマルチパスを設定する方法は、「既存デプロイメントでのマルチパス設定」を参照してください。
前提条件
オーバークラウドのコントローラーノードおよびコンピュートノードは、Red Hat Enterprise Linux Server のリポジトリーにアクセスできる必要があります。詳しくは、Director Installation and Usageの Downloading the base cloud image を参照してください。
手順
オーバークラウドを設定します。
注記詳細は、director のインストールと使用方法 の CLI ツールを使用した基本的なオーバークラウドの設定 を参照してください。
heat テンプレートを更新してマルチパスを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) Block Storage (cinder) を Image サービス (glance) のバックエンドとして使用する場合には、以下の手順も完了する必要があります。
次の
GlanceApiOptVolumes
設定をヒートテンプレートに追加します。parameter_defaults: GlanceApiOptVolumes: - /etc/multipath.conf:/etc/multipath.conf:ro - /etc/multipath/:/etc/multipath/:rw
parameter_defaults: GlanceApiOptVolumes: - /etc/multipath.conf:/etc/multipath.conf:ro - /etc/multipath/:/etc/multipath/:rw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の方法で
ControllerExtraConfig
パラメーターを設定します。parameter_defaults: ControllerExtraConfig: glance::config::api_config: default_backend/cinder_use_multipath: value: true
parameter_defaults: ControllerExtraConfig: glance::config::api_config: default_backend/cinder_use_multipath: value: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 注記
-
default_backend
とGlanceBackendID
ヒートテンプレートのデフォルト値の両方が一致していることを確認してください。
設定したすべてのバックエンドについて、
use_multipath_for_image_xfer
をtrue
に設定します。parameter_defaults: ExtraConfig: cinder::config::cinder_config: <backend>/use_multipath_for_image_xfer: value: true
parameter_defaults: ExtraConfig: cinder::config::cinder_config: <backend>/use_multipath_for_image_xfer: value: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドをデプロイします。
openstack overcloud deploy
$ openstack overcloud deploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記オーバークラウドパラメーターを使用してオーバークラウドを作成する方法は、director のインストールと使用方法の CLI ツールを使用した基本的なオーバークラウドの設定 を参照してください。
コンテナーを実行する前に、すべてのコントローラーノードおよびコンピュートノードにマルチパスをインストールします。
sudo dnf install -y device-mapper-multipath
$ sudo dnf install -y device-mapper-multipath
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記director にはフックのセットが用意されており、初回のブートが完了してコア設定が開始する前に、特定ノードロールのカスタム設定を行うことができます。オーバークラウドのカスタム設定についての詳しい情報は、オーバークラウドの高度なカスタマイズの 事前設定: 特定のオーバークラウドロールのカスタマイズ を参照してください。
すべてのコントローラーノードおよびコンピュートノードでマルチパスデーモンを設定します。
mpathconf --enable --with_multipathd y --user_friendly_names n --find_multipaths y
$ mpathconf --enable --with_multipathd y --user_friendly_names n --find_multipaths y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコード例により、ほとんどの環境で機能する基本的なマルチパス設定が作成されます。ただし、一部のストレージベンダーはハードウェア固有の最適化した設定を使用しているので、ベンダーに推奨事項を問い合わせてください。マルチパスについての詳細は、Device Mapper Multipath の設定 を参照してください。
すべてのコントローラーノードおよびコンピュートノードで以下のコマンドを実行して、パーティションが作成されないようにします。
sed -i "s/^defaults {/defaults {\n\tskip_kpartx yes\n\trecheck_wwid yes/" /etc/multipath.conf
$ sed -i "s/^defaults {/defaults {\n\tskip_kpartx yes\n\trecheck_wwid yes/" /etc/multipath.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記skip_kpartx
をyes
に設定すると、コンピュートノード上の kpartx がデバイス上に自動的にパーティションを作成しなくなり、不要なデバイスマッパーエントリーを避けることができます。設定属性の詳細は、Device Mapper Multipath の設定の DM Multipath 設定ファイルの編集 を参照してください。すべてのコントローラーノードおよびコンピュートノードでマルチパスデーモンを起動します。
systemctl enable --now multipathd
$ systemctl enable --now multipathd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. 既存デプロイメントでのマルチパス設定 リンクのコピーリンクがクリップボードにコピーされました!
ワークロードがマルチパス機能を使用できるように、既存のデプロイメントでマルチパスを設定します。
既存のデプロイメントでマルチパスを設定した後に作成する新しいワークロードは、デフォルトでマルチパスに対応しています。既存のワークロードがある場合は、これらのインスタンスでマルチパスを有効にするには、インスタンスを退避して復元する必要があります。
新規オーバークラウドデプロイメントでマルチパスを設定する方法は、「新規デプロイメントでのマルチパス設定」を参照してください。
前提条件
オーバークラウドのコントローラーノードおよびコンピュートノードは、Red Hat Enterprise Linux Server のリポジトリーにアクセスできる必要があります。詳しくは、Director Installation and Usageの Downloading the base cloud image を参照してください。
手順
すべてのコントローラーノードおよびコンピュートノードにマルチパスがインストールされていることを確認します。
rpm -qa | grep device-mapper-multipath
$ rpm -qa | grep device-mapper-multipath device-mapper-multipath-0.4.9-127.el8.x86_64 device-mapper-multipath-libs-0.4.9-127.el8.x86_64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マルチパスがインストールされていない場合は、すべてのコントローラーノードおよびコンピュートノードにインストールします。
sudo dnf install -y device-mapper-multipath
$ sudo dnf install -y device-mapper-multipath
Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードおよびコンピュートノードでマルチパスデーモンを設定します。
mpathconf --enable --with_multipathd y --user_friendly_names n --find_multipaths y
$ mpathconf --enable --with_multipathd y --user_friendly_names n --find_multipaths y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコード例により、ほとんどの環境で機能する基本的なマルチパス設定が作成されます。ただし、一部のストレージベンダーはハードウェア固有の最適化した設定を使用しているので、ベンダーに推奨事項を問い合わせてください。マルチパスについての詳細は、Device Mapper Multipath の設定 を参照してください。
すべてのコントローラーノードおよびコンピュートノードで以下のコマンドを実行して、パーティションが作成されないようにします。
sed -i "s/^defaults {/defaults {\n\tskip_kpartx yes\n\trecheck_wwid yes/" /etc/multipath.conf
$ sed -i "s/^defaults {/defaults {\n\tskip_kpartx yes\n\trecheck_wwid yes/" /etc/multipath.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記skip_kpartx
をyes
に設定すると、コンピュートノード上の kpartx がデバイス上に自動的にパーティションを作成しなくなり、不要なデバイスマッパーエントリーを避けることができます。設定属性の詳細は、Device Mapper Multipath の設定の DM Multipath 設定ファイルの編集 を参照してください。すべてのコントローラーノードおよびコンピュートノードでマルチパスデーモンを起動します。
systemctl enable --now multipathd
$ systemctl enable --now multipathd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow heat テンプレートを更新してマルチパスを有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) Block Storage (cinder) を Image サービス (glance) のバックエンドとして使用する場合には、以下の手順も完了する必要があります。
次の
GlanceApiOptVolumes
設定をヒートテンプレートに追加します。parameter_defaults: GlanceApiOptVolumes: - /etc/multipath.conf:/etc/multipath.conf:ro - /etc/multipath/:/etc/multipath/:rw
parameter_defaults: GlanceApiOptVolumes: - /etc/multipath.conf:/etc/multipath.conf:ro - /etc/multipath/:/etc/multipath/:rw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の方法で
ControllerExtraConfig
パラメーターを設定します。parameter_defaults: ControllerExtraConfig: glance::config::api_config: default_backend/cinder_use_multipath: value: true
parameter_defaults: ControllerExtraConfig: glance::config::api_config: default_backend/cinder_use_multipath: value: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 注記
-
default_backend
とGlanceBackendID
ヒートテンプレートのデフォルト値の両方が一致していることを確認してください。
設定したすべてのバックエンドについて、
use_multipath_for_image_xfer
をtrue
に設定します。parameter_defaults: ExtraConfig: cinder::config::cinder_config: <backend>/use_multipath_for_image_xfer: value: true
parameter_defaults: ExtraConfig: cinder::config::cinder_config: <backend>/use_multipath_for_image_xfer: value: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してオーバークラウドを更新します。
openstack overcloud deploy
$ openstack overcloud deploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記openstack overcloud deploy
コマンドを実行してマルチパスをインストールおよび設定する場合、--templates
、--roles-file
、-e
(すべての環境ファイル用)、および--timeout
など、オーバークラウドのデプロイに使用した以前のロールファイルおよび環境ファイルをすべて渡す必要があります。以前のロールファイルおよび環境ファイルをすべて渡さないと、オーバークラウドのデプロイメントで問題が発生する可能性があります。オーバークラウドパラメーターの使用についての詳細は、director のインストールと使用方法の CLI ツールを使用した基本的なオーバークラウドの設定 を参照してください。
2.5.3. マルチパス設定の確認 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順で、新規または既存のオーバークラウドデプロイメントのマルチパス設定を確認する方法を説明します。
手順
- 仮想マシンを作成します。
- 暗号化されていないボリュームを仮想マシンに割り当てます。
インスタンスが含まれるコンピュートノードの名前を取得します。
nova show INSTANCE | grep OS-EXT-SRV-ATTR:host
$ nova show INSTANCE | grep OS-EXT-SRV-ATTR:host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow INSTANCE をブートした仮想マシンの名前に置き換えます。
インスタンスの virsh 名を取得します。
nova show INSTANCE | grep instance_name
$ nova show INSTANCE | grep instance_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow INSTANCE をブートした仮想マシンの名前に置き換えます。
コンピュートノードの IP アドレスを取得します。
. stackrc nova list | grep compute_name
$ . stackrc $ nova list | grep compute_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow compute_name を
nova show INSTANCE
コマンドの出力に表示される名前に置き換えます。仮想マシンを実行するコンピュートノードに SSH 接続します。
ssh heat-admin@COMPUTE_NODE_IP
$ ssh heat-admin@COMPUTE_NODE_IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow COMPUTE_NODE_IP をコンピュートノードの IP アドレスに置き換えます。
virsh を実行するコンテナーにログインします。
podman exec -it nova_libvirt /bin/bash
$ podman exec -it nova_libvirt /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンピュートノードインスタンスで以下のコマンドを入力し、cinder ボリュームホストの場所でマルチパスが使用されていることを確認します。
virsh domblklist VIRSH_INSTANCE_NAME | grep /dev/dm
virsh domblklist VIRSH_INSTANCE_NAME | grep /dev/dm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VIRSH_INSTANCE_NAME を
nova show INSTANCE | grep instance_name
コマンドの出力に置き換えます。インスタンスに
/dev/dm-
以外の値が表示されている場合、接続は非マルチパスであるため、nova shelve
およびnova unshelve
コマンドを使用して接続情報を更新する必要があります。nova shelve <instance> nova unshelve <instance>
$ nova shelve <instance> $ nova unshelve <instance>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数の種別のバックエンドがある場合には、すべてのバックエンド上のインスタンスおよびボリュームを検証する必要があります。これは、各バックエンドが返す接続情報が異なる可能性があるためです。