2.12. マルチパス設定

マルチパスを使用してサーバーノードおよびストレージアレイ間の複数の I/O パスを単一のデバイスに設定することで、冗長性が得られると共にパフォーマンスが向上します。

2.12.1. director を使用したマルチパスの設定

Red Hat OpenStack Platform (RHOSP) オーバークラウドデプロイメントでマルチパスを設定して、帯域幅とネットワークの耐障害性を向上させることができます。

重要

既存のデプロイメントでマルチパスを設定すると、新しいワークロードはマルチパスに対応します。既存のワークロードがある場合は、これらのインスタンスでマルチパスを有効にするには、インスタンスを退避して復元する必要があります。

前提条件

手順

  1. アンダークラウドホストに stack ユーザーとしてログインします。
  2. source コマンドで stackrc 認証情報ファイルを読み込みます。

    $ source ~/stackrc
  3. 上書き環境ファイルを使用するか、multipath_overrides.yaml などの新しい環境ファイルを作成します。以下のパラメーターを追加して設定します。

    parameter_defaults:
      ExtraConfig:
        cinder::config::cinder_config:
          backend_defaults/use_multipath_for_image_xfer:
            value: true
    注記

    デフォルト設定では、ほとんどの環境で機能する基本的なマルチパス設定が生成されます。ただし、一部のストレージベンダーはハードウェア固有の最適化した設定を使用しているので、ベンダーに推奨事項を問い合わせてください。マルチパスについての詳細は、Device Mapper Multipath の設定 を参照してください。

  4. オプション: オーバークラウドデプロイメント用のマルチパス設定ファイルがある場合、MultipathdCustomConfigFile パラメーターを使用してこのファイルの場所を指定します。

    1. マルチパス設定ファイルを /var/lib/mistral ディレクトリーにコピーする必要があります。

           $ sudo cp <config_file_name> /var/lib/mistral

      <config_file_name> をファイルの名前に置き換えます。

    2. MultipathdCustomConfigFile パラメーターを、マルチパス設定ファイルの次の場所に設定します。

           parameter_defaults:
                MultipathdCustomConfigFile: /var/lib/mistral/<config_file_name>
      注記

      他の TripleO マルチパスパラメーターは、ローカルのカスタム設定ファイル内の対応する値を上書きします。たとえば、MultipathdEnableUserFriendlyNamesFalse の場合、ローカルのカスタムファイルで設定が有効になっている場合でも、オーバークラウドノードのファイルが一致するように更新されます。

      マルチパスパラメーターの詳細は、Multipath heat template parameters を参照してください。

  5. ご自分の環境に該当するその他の環境ファイルと共に、環境ファイルを openstack overcloud deploy コマンドに追加します。

    $ openstack overcloud deploy \
    --templates \
    …
    -e <existing_overcloud_environment_files> \
    -e /usr/share/openstack-tripleo-heat-templates/environments/multipathd.yaml
    -e multipath_overrides.yaml \
    …

2.12.1.1. マルチパス heat テンプレートパラメーター

マルチパスを有効にする以下のパラメーターについては、これを使用します。

パラメーター説明デフォルト値

MultipathdEnable

マルチパスデーモンを有効にするかどうかを定義します。このパラメーターは、multipathd.yaml ファイルに含まれる設定で、デフォルトで True に設定されます。

True

MultipathdEnableUserFriendlyNames

各パスに対してユーザーフレンドリーな名前の割り当てを有効にするかどうかを定義します。

False

MultipathdEnableFindMultipaths

パスごとにマルチパスデバイスを自動的に作成するかどうかを定義します。

True

MultipathdSkipKpartx

デバイスで自動的にパーティションの作成を省略するかどうかを定義します。

True

MultipathdCustomConfigFile

オーバークラウドノードのカスタムマルチパス設定ファイルが含まれています。デフォルトでは、最小の multipath.conf ファイルがインストールされます。

注意: 他の TripleO マルチパスパラメーターは、追加するローカルのカスタム設定ファイルの対応する値を上書きします。たとえば、MultipathdEnableUserFriendlyNamesFalse の場合、ローカルのカスタムファイルで設定が有効になっている場合でも、オーバークラウドノードのファイルが一致するように更新されます。

 

2.12.2. マルチパス設定の確認

以下の手順で、新規または既存のオーバークラウドデプロイメントのマルチパス設定を確認する方法を説明します。

前提条件

手順

  1. 仮想マシンを作成します。
  2. 暗号化されていないボリュームを仮想マシンに割り当てます。
  3. インスタンスが含まれるコンピュートノードの名前を取得します。

    $ nova show INSTANCE | grep OS-EXT-SRV-ATTR:host

    INSTANCE をブートした仮想マシンの名前に置き換えます。

  4. インスタンスの virsh 名を取得します。

    $ nova show INSTANCE | grep instance_name

    INSTANCE をブートした仮想マシンの名前に置き換えます。

  5. Compute ノードの IP アドレスを取得します。

    $ . stackrc
    $ nova list | grep compute_name

    compute_namenova show INSTANCE コマンドの出力に表示される名前に置き換えます。

  6. 仮想マシンを実行するコンピュートノードに SSH 接続します。

    $ ssh heat-admin@COMPUTE_NODE_IP

    COMPUTE_NODE_IP をコンピュートノードの IP アドレスに置き換えます。

  7. virsh を実行するコンテナーにログインします。

    $ podman exec -it nova_libvirt /bin/bash
  8. Compute ノードインスタンスで以下のコマンドを入力し、cinder ボリュームホストの場所でマルチパスが使用されていることを確認します。

    virsh domblklist VIRSH_INSTANCE_NAME | grep /dev/dm

    VIRSH_INSTANCE_NAMEnova show INSTANCE | grep instance_name コマンドの出力に置き換えます。

    インスタンスに /dev/dm- 以外の値が表示されている場合、接続は非マルチパスであるため、nova shelve および nova unshelve コマンドを使用して接続情報を更新する必要があります。

    $ nova shelve <instance>
    $ nova unshelve <instance>
    注記

    複数の種別のバックエンドがある場合には、すべてのバックエンド上のインスタンスおよびボリュームを検証する必要があります。これは、各バックエンドが返す接続情報が異なる可能性があるためです。