Citrix Hypervisor

ストレージのマルチパス

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

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

マルチパスを構成すると、接続が部分的に失われた場合にリモートストレージトラフィックに冗長性が提供されます。マルチパスは、冗長性とスループットの向上のために、複数のパスを介してストレージトラフィックをストレージデバイスにルーティングします。単一のLUNに対して最大16のパスを使用できます。マルチパスはアクティブ/アクティブ構成です。デフォルトでは、ストレージアレイの種類に応じてラウンドロビンまたはマルチバスによる負荷分散を使用します。通常の運用中は、すべてのルートにアクティブなトラフィックを分散することで、スループットを向上させることができます。

重要:

ストレージリポジトリを作成する_前_に、プール内のすべてのサーバーに対してマルチパスを有効にすることをお勧めします。マルチパスを有効にする前にストレージリポジトリを作成する場合は、サーバーを保守モードにして、マルチパスを有効にする必要があります。

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

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

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

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

前提条件

マルチパスを有効にする前に、以下の事項を確認してください:

  • ストレージサーバーで複数のターゲットが使用できる。

    たとえば、iSCSIストレージバックエンドの特定のポータルに対してsendtargetsを照会した場合、以下のように複数のターゲットが返されます:

      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がスイッチファブリックに接続されている。

マルチパスの有効化

マルチパスを有効にするには、XenCenterまたはxe CLIを使用します。

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

  1. XenCenterの [リソース] ペインで、サーバーを右クリックし、[保守モードへの切り替え] を選択します。

  2. 続行する前に、サーバーが [リソース] ペインに保守モードアイコン(青い四角)で再表示されるまで待ちます。

  3. サーバーの [全般] タブで [プロパティ] をクリックして、[マルチパス] タブに移動します。

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

  5. [OK]をクリックして、新しい設定を適用します。XenCenterで新しいストレージ設定の保存が完了するまで少し時間がかかります。

  6. [リソース] ペインで、サーバーを右クリックし、[保守モードからの切り替え] を選択します。

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

プール内のすべてのサーバーでマルチパスを有効にしてください。実際のケーブル接続やサブネット設定(iSCSIの場合)は、各サーバー上のNICと一致している必要があります。

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

  1. Citrix Hypervisorサーバーのコンソールを開きます。

  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. サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:

    • そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。

    • そのストレージリポジトリの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. Citrix Hypervisorサーバーのコンソールを開きます。

  2. 次のコマンドを使用して、サーバー上のすべてのPBDをアンプラグします:

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

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

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

    xe host-param-set uuid=<host uuid> multipathing=false
    <!--NeedCopy-->
    
  4. サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:

    • そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。

    • そのストレージリポジトリのPBDをマルチパスで再接続するために、アンプラグして再プラグします:

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

マルチパスの構成

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

/etc/multipath.confのファイルは編集しないでください。このファイルは、Citrix Hypervisorが更新されると上書きされます。

マルチパスツール

Citrix Hypervisorでのマルチパスのサポートは、デバイスマッパーmultipathd componentsに基づいています。マルチパスノードの有効化および無効化は、ストレージマネージャAPIにより自動的に処理されます。Linuxの標準ツール dm-multipathとは異なり、システム上のすべてのLUNのデバイスマッパーノードが自動的に作成されるわけではありません。ストレージ管理レイヤーによりLUNがアクティブに使用されるときにのみデバイスマッパーノードがプロビジョニングされます。このため、dm-multipath CLIツールを使ってCitrix HypervisorのDMテーブルノードを照会したり更新したりする必要はありません。

システム上のアクティブなデバイスマッパーマルチパスノードを確認したり、デバイスマッパーテーブルの状態を手作業で照会したりするには、以下のmpathutilユーティリティを使用します:

mpathutil list
<!--NeedCopy-->
mpathutil status
<!--NeedCopy-->

単一のターゲットのみを公開するアレイのiSCSIマルチパス

1つのIPアドレスを介して、単一のiSCSIターゲットと1つのIQNのみを公開するストレージアレイでiSCSIマルチパスを使用するようにCitrix Hypervisorを構成できます。たとえば、次の手順に従って、Dell EqualLogic PSおよびFSユニファイドシリーズストレージアレイをセットアップできます。

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

注:

次の構成は、単一のiSCSIターゲットのみを公開するストレージアレイに排他的に接続されているサーバーでのみサポートされます。これらのストレージアレイは、Citrix Hypervisorを使用したこの手順を使用できる必要があります。

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

  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の [リソース] ペインで、サーバーを右クリックし、[保守モードからの切り替え] を選択します。まだ仮想マシンを再開しないでください。

  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をアンプラグして破棄してから、ストレージリポジトリを修復することもできます。

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

        1. ストレージリポジトリのUUIDを見つけます:

          xe sr-list
          
        2. ストレージリポジトリに関連付けられている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. これで、仮想マシンを再開できます。

ストレージのマルチパス