XenServer

ストレージマルチパス

ファイバーチャネルおよびiSCSIストレージバックエンドでは、動的マルチパスがサポートされています。

XenServer®は、汎用LinuxマルチパスソリューションであるLinuxネイティブマルチパス(DM-MP)をマルチパスハンドラーとして使用します。ただし、XenServerは、ストレージデバイスのベンダー固有の機能を認識できるように、このハンドラーに追加機能を補完します。

マルチパスを構成すると、部分的な接続損失が発生した場合に、リモートストレージトラフィックの冗長性が提供されます。マルチパスは、冗長性とスループットの向上を実現するために、複数のパスを介してストレージトラフィックをストレージデバイスにルーティングします。単一のLUNに対して最大16のパスを使用できます。マルチパスはアクティブ/アクティブ構成です。デフォルトでは、マルチパスはストレージアレイの種類に応じて、ラウンドロビンまたはマルチバスのいずれかのロードバランシングを使用します。すべてのルートは、通常動作中にアクティブなトラフィックを持ち、その結果、スループットが向上します。

重要:

We recommend that you enable multipathing for all hosts in your pool before creating the SR. If you create the SR before enabling multipathing, you must put your hosts into maintenance mode to enable multipathing.

NICボンディングもストレージトラフィックの冗長性を提供できます。iSCSIストレージの場合、可能な限りNICボンディングの代わりにマルチパスを構成することをお勧めします。

マルチパスは、次のシナリオでは効果がありません。

  • NFSストレージデバイス
  • NICの数が限られており、iSCSIトラフィックとファイルトラフィック(NFSまたはSMB)を同じNIC経由でルーティングする必要がある場合

これらの場合は、代わりにNICボンディングの使用を検討してください。NICボンディングの詳細については、ネットワークを参照してください。

前提条件

マルチパスを有効にする前に、次の記述が正しいことを確認してください。

  • ストレージサーバーで複数のターゲットが利用可能であること。

    たとえば、特定のポータルでsendtargetsを照会したiSCSIストレージバックエンドは、次の例のように複数のターゲットを返します。

      iscsiadm -m discovery --type sendtargets --portal 192.168.0.161
      192.168.0.161:3260,1 iqn.strawberry:litchie
      192.168.0.204:3260,2 iqn.strawberry:litchie
    

    ただし、単一ターゲットのみを公開するアレイに対してiSCSIマルチパスを有効にするための追加設定を実行できます。詳細については、「単一ターゲットのみを公開するアレイのiSCSIマルチパス」を参照してください。

  • iSCSIの場合のみ、制御ドメイン (dom0) は、マルチパスストレージで使用される各サブネットにIPアドレスを持っています。

    ストレージへの各パスに対して、NICがあり、各NICにIPアドレスが構成されていることを確認してください。たとえば、ストレージへのパスを4つ設定したい場合は、それぞれにIPアドレスが構成された4つのNICが必要です。

  • iSCSIの場合のみ、すべてのiSCSIターゲットとイニシエーターは一意のIQNを持っています。

  • iSCSIの場合のみ、iSCSIターゲットポートはポータルモードで動作しています。

  • HBAの場合のみ、複数のHBAがスイッチファブリックに接続されています。

  • セカンダリインターフェースを構成する場合、各セカンダリインターフェースは個別のサブネット上にある必要があります。たとえば、ストレージ用にさらに2つのセカンダリインターフェースを構成したい場合、3つの異なるサブネットにIPアドレスが必要です。つまり、管理インターフェース用に1つのサブネット、Secondary Interface 1用に1つのサブネット、Secondary Interface 2用に1つのサブネットです。

    マルチパスiSCSI図

    この図は、マルチパスiSCSI構成のホスト上の両方のNICが異なるサブネット上にある必要があることを示しています。この図では、ホスト上のNIC 1とSwitch 1、および両方のストレージコントローラー上のNIC 1は、NIC2、Switch 2、およびストレージコントローラー上のNIC 2とは異なるサブネット上にあります。

マルチパスを有効にする

XenCenter®またはxe CLIでマルチパスを有効にできます。

XenCenterを使用してマルチパスを有効にするには

  1. XenCenterのリソースペインで、ホストを右クリックし、メンテナンスモードに入るを選択します。

  2. ホストがリソースペインにメンテナンスモードアイコン(青い四角)とともに再表示されるまで待ってから続行します。

  3. ホストの全般タブで、プロパティをクリックし、マルチパスタブに移動します。

  4. マルチパスを有効にするには、このサーバーでマルチパスを有効にするチェックボックスをオンにします。

  5. OKをクリックして新しい設定を適用します。XenCenterが新しいストレージ構成を保存するまで、しばらく時間がかかります。

  6. リソースペインで、ホストを右クリックし、メンテナンスモードの終了を選択します。

  7. プール内のすべてのホストでマルチパスを有効にするには、これらの手順を繰り返します。

プール内のすべてのホストでマルチパスを有効にしてください。すべてのケーブル接続と、iSCSIの場合、サブネット構成は各ホストの対応するNICと一致している必要があります。

xe CLIを使用してマルチパスを有効にするには

  1. XenServerホストでコンソールを開きます。

  2. 次のコマンドを使用して、ホスト上のすべてのPBDをプラグを抜きます。

    xe pbd-unplug uuid=<pbd_uuid>
    <!--NeedCopy-->
    

    コマンド xe pbd-list を使用して、PBDのUUIDを見つけることができます。

  3. 次のコマンドを使用して、multipathing パラメーターの値を true に設定します。

    xe host-param-set uuid=<host uuid> multipathing=true
    <!--NeedCopy-->
    
  4. サーバー上にシングルパスモードで実行されているが、複数のパスを持つ既存のSRがある場合:

    • 影響を受けるSR内の仮想ディスクを持つ実行中のゲストを移行または一時停止します。

    • 影響を受けるSRのPBDを再接続して、マルチパスを使用して再接続します。

       xe pbd-plug uuid=<pbd_uuid>
       <!--NeedCopy-->
      
  5. プール内のすべてのホストでマルチパスを有効にするには、これらの手順を繰り返します。

プール内のすべてのホストでマルチパスを有効にしてください。すべてのケーブル接続と、iSCSIの場合、サブネット構成は各ホストの対応するNICと一致している必要があります。

マルチパスを無効にする

XenCenterまたはxe CLIでマルチパスを無効にできます。

XenCenterを使用してマルチパスを無効にするには

  1. XenCenterのリソースペインで、ホストを右クリックし、メンテナンスモードに入るを選択します。

  2. 続行する前に、ホストがメンテナンスモードアイコン(青い四角)とともにリソースペインに再表示されるまで待ちます。

  3. ホストの全般タブで、プロパティをクリックし、マルチパスタブに移動します。

  4. マルチパスを無効にするには、このサーバーでマルチパスを有効にするチェックボックスをオフにします。

  5. OKをクリックして新しい設定を適用します。XenCenterが新しいストレージ構成を保存する間、短い遅延が発生します。

  6. リソースペインで、ホストを右クリックし、メンテナンスモードを終了するを選択します。

  7. プール内のすべてのホストでマルチパスを構成するには、これらの手順を繰り返します。

xe CLIを使用してマルチパスを無効にするには

  1. XenServerホストでコンソールを開きます。

  2. 次のコマンドを使用して、ホスト上のすべてのPBDをプラグ解除します。

    xe pbd-unplug uuid=<pbd_uuid>
    <!--NeedCopy-->
    

    PBDのUUIDを見つけるには、コマンドxe pbd-listを使用できます。

  3. 次のコマンドを使用して、multipathingパラメーターの値をfalseに設定します。

    xe host-param-set uuid=<host uuid> multipathing=false
    <!--NeedCopy-->
    
  4. サーバー上に、シングルパスモードで実行されているが複数のパスを持つ既存のSRがある場合:

    • 影響を受けるSR内の仮想ディスクを持つ実行中のゲストを移行または一時停止します

    • 影響を受けるSRのPBDを抜き差しして、マルチパスを使用して再接続します。

       xe pbd-plug uuid=<pbd_uuid>
       <!--NeedCopy-->
      
  5. これらの手順を繰り返して、プール内のすべてのホストでマルチパスを無効にします。

マルチパスの構成

追加の一時的なマルチパス構成の変更を行うには、ディレクトリ /etc/multipath/conf.d にサフィックス .conf を持つファイルを作成します。これらのファイルに追加の構成を追加します。マルチパスは、ディレクトリ内で .conf で終わるファイルをアルファベット順に検索し、そこから構成情報を読み取ります。

ファイル /etc/multipath.conf を編集しないでください。このファイルはXenServerのアップデートによって上書きされます。マルチパス構成に永続的な変更を加えたい場合は、ストレージベンダーに連絡してください。ストレージベンダーは、当社のパートナーエンジニアリングチームに依頼して、変更を永続的に追加してもらうことができます。

単一サブネットでのiSCSIマルチパス

XenServerを構成して、単一サブネット上でターゲットとIQNを公開するストレージアレイでiSCSIマルチパスを使用できます。たとえば、これらの手順に従って、Dell EqualLogic PSおよびFS統合シリーズストレージアレイをセットアップできます。

デフォルトでは、XenServerはiSCSIターゲットごとに1つの接続のみを確立します。したがって、デフォルト構成では、フェイルオーバーとロードバランシングを実現するためにNICボンディングを使用することが推奨されます。このセクションで概説する構成手順は、単一のサブネットまたはターゲットに対して複数のiSCSI接続が確立される代替構成について説明しています。NICボンディングは必要ありません。

注:

以下の構成は、単一サブネットを介してターゲットとIQNを公開するストレージアレイに排他的に接続されているサーバーでのみサポートされます。これらのストレージアレイは、XenServerでこの手順の資格を満たしている必要があります。

マルチパスを構成するには:

  1. 保護したいデータをバックアップします。

  2. XenCenterのリソースペインで、ホストを右クリックし、メンテナンスモードに入るを選択します。

  3. 続行する前に、ホストがメンテナンスモードアイコン(青い四角)とともにリソースペインに再表示されるまで待機します。

  4. ホストの全般タブで、プロパティをクリックし、マルチパスタブに移動します。

  5. マルチパスを有効にするには、このサーバーでマルチパスを有効にするチェックボックスをオンにします。

  6. OKをクリックして新しい設定を適用します。XenCenterが新しいストレージ構成を保存する間、短い遅延が発生します。

  7. ホストコンソールで、2~4個のOpen-iSCSIインターフェースを構成します。各iSCSIインターフェースは、個別のパスを確立するために使用されます。次の手順は、2つのインターフェースの場合のプロセスを示しています。

    1. 2つのiSCSIインターフェースを構成し、次のコマンドを実行します。

      iscsiadm -m iface --op new -I c_iface1
      iscsiadm -m iface --op new -I c_iface2
      

      インターフェース名にプレフィックスc_が付いていることを確認してください。インターフェースがこの命名標準を使用していない場合、それらは無視され、代わりにデフォルトのインターフェースが使用されます。

      注:

      この構成では、すべての接続にデフォルトのインターフェースが使用されます。これは、すべての接続が単一のインターフェースを使用して確立されていることを示します。

    2. 次のコマンドを使用して、iSCSIインターフェースをxenbr1およびxenbr2にバインドします。

      iscsiadm -m iface --op update -I c_iface1 -n iface.net_ifacename -v xenbr1
      iscsiadm -m iface --op update -I c_iface2 -n iface.net_ifacename -v xenbr2
      

      注:

      この構成は、コントロール ドメイン用に構成されたネットワーク インターフェース(xenbr1およびxenbr2を含む)とxenbr0が管理に使用されることを前提としています。また、ストレージ ネットワークに使用されるNICカードがNIC1とNIC2であることも前提としています。 そうでない場合は、これらのコマンドで使用するネットワーク インターフェースとNICカードを特定するために、ネットワーク トポロジを参照してください。

  8. XenCenterのリソースペインで、ホストを右クリックし、メンテナンスモードの終了を選択します。まだVMを再開しないでください。

  9. ホストコンソールで、セッションを検出してログインするために、次のコマンドを実行します。

    iscsiadm -m discovery -t st -p <IP of SAN>
    iscsiadm -m node -L all
    
  10. 次のコマンドを使用して、古いセッション情報を含む古いエントリを削除します。

    cd /var/lib/iscsi/send_targets/<IP of SAN and port, use ls command to check that>
    rm -rf <iqn of SAN target for that particular LUN>
    
    cd /var/lib/iscsi/nodes/
    rm -rf <entries for that particular SAN>
    
  11. LUN をデタッチして、再度アタッチします。これを行うには、次のいずれかの方法があります。

    • プール内のすべてのホストで前述の手順を完了した後、XenCenter を使用して、プール全体の LUN をデタッチおよび再アタッチできます。
    • または、各ホストの PBD をアンプラグして破棄し、SR を修復することもできます。

      1. PBD をアンプラグして破棄するには、次のコマンドを実行します。

        1. SR の UUID を見つけます。

          xe sr-list
          
        2. SR に関連付けられている PBD のリストを取得します。

          xe pbd-list sr-uuid=<sr_uuid>
          
        3. 前のコマンドの出力で、SCSI ID が一致しない iSCSI ストレージリポジトリの PBD の UUID を探します。

        4. 特定した PBD をアンプラグして破棄します。

          xe pbd-unplug uuid=<pbd_uuid>
          xe pbd-destroy uuid=<pbd_uuid>
          
      2. XenCenter でストレージを修復します。

  12. これで、VM を再開できます。

ストレージマルチパス