ストレージのマルチパス
ファイバチャネルおよびiSCSIのストレージバックエンドでは、動的マルチパスがサポートされます。
XenServerは、マルチパスハンドラーとして、Linuxの汎用マルチパスソリューションであるLinuxネイティブマルチパス(DM-MP)を使用します。ただし、XenServerは、このハンドラーに追加機能を加えて、XenServerがストレージデバイスのベンダー固有の機能を認識できるようにします。
マルチパスを構成すると、接続が部分的に失われた場合にリモートストレージトラフィックに冗長性が提供されます。マルチパスは、冗長性とスループットの向上のために、複数のパスを介してストレージトラフィックをストレージデバイスにルーティングします。単一の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がスイッチファブリックに接続されている。
-
複数のセカンダリインターフェイスを作成する場合は、各インターフェイスが個別のサブネットに属している必要があります。たとえば、ストレージトラフィック用のセカンダリインターフェイスを2つ追加する場合、3つの異なるサブネットに属するIPアドレスが必要です。つまり、管理インターフェイスのサブネット、1つ目のセカンダリインターフェイスのサブネット、および2つ目のセカンダリインターフェイスのサブネットです。
この図は、マルチパスiSCSI構成のホスト上の両方のNICが異なるサブネット上に存在する必要があることを示しています。この図では、ホスト上のNIC 1とスイッチ1、 および両方のストレージコントローラー上のNIC 1は、NIC 2、スイッチ2、およびストレージコントローラー上のNIC 2とは異なるサブネット上にあります。
マルチパスの有効化
マルチパスを有効にするには、XenCenterまたはxe CLIを使用します。
XenCenterを使用してマルチパスを有効にするには
-
XenCenterのリソースペインで、ホストを右クリックし、[保守モードへの切り替え]を選択します。
-
続行する前に、ホストがリソースペインに保守モードアイコン(青い四角)で再表示されるまで待ちます。
-
ホストの[全般]タブで[プロパティ]をクリックして、[マルチパス]タブに移動します。
-
マルチパスを有効にするには、[このサーバーのマルチパスを有効にする] チェックボックスをオンにします。
-
[OK]をクリックして、新しい設定を適用します。XenCenterで新しいストレージ設定の保存が完了するまで少し時間がかかります。
-
リソースペインで、ホストを右クリックし、[保守モードからの切り替え]を選択します。
-
プール内のすべてのホストでマルチパスを有効にするために、これらの手順を繰り返します。
プール内のすべてのホストでマルチパスを有効にしてください。実際のケーブル接続やサブネット設定(iSCSIの場合)は、各ホスト上のNICと一致している必要があります。
xe CLIを使用してマルチパスを有効にするには
-
XenServerホストでコンソールを開きます。
-
次のコマンドを使用して、ホスト上のすべてのPBDをアンプラグします:
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
コマンド
xe pbd-list
を使用して、PBDのUUIDを見つけることができます。 -
次のコマンドを使用して、
multipathing
パラメーターの値をtrue
に設定します:xe host-param-set uuid=<host uuid> multipathing=true <!--NeedCopy-->
-
サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:
-
そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。
-
そのストレージリポジトリのPBDをマルチパスで再接続するために、再プラグします:
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
プール内のすべてのホストでマルチパスを有効にするために、これらの手順を繰り返します。
プール内のすべてのホストでマルチパスを有効にしてください。実際のケーブル接続やサブネット設定(iSCSIの場合)は、各ホスト上のNICと一致している必要があります。
マルチパスの無効化
マルチパスを無効にするには、XenCenterまたはxe CLIを使用します。
XenCenterを使用してマルチパスを無効にするには
-
XenCenterのリソースペインで、ホストを右クリックし、[保守モードへの切り替え]を選択します。
-
続行する前に、ホストがリソースペインに保守モードアイコン(青い四角)で再表示されるまで待ちます。
-
ホストの[全般]タブで[プロパティ]をクリックして、[マルチパス]タブに移動します。
-
マルチパスを無効にするには、[このサーバーのマルチパスを有効にする] チェックボックスをオフにします。
-
[OK]をクリックして、新しい設定を適用します。XenCenterで新しいストレージ設定の保存が完了するまで少し時間がかかります。
-
リソースペインで、ホストを右クリックし、[保守モードからの切り替え]を選択します。
-
プール内のすべてのホストでマルチパスを構成するために、これらの手順を繰り返します。
xe CLIを使用してマルチパスを無効にするには
-
XenServerホストでコンソールを開きます。
-
次のコマンドを使用して、ホスト上のすべてのPBDをアンプラグします:
xe pbd-unplug uuid=<pbd_uuid> <!--NeedCopy-->
コマンド
xe pbd-list
を使用して、PBDのUUIDを見つけることができます。 -
次のコマンドを使用して、
multipathing
パラメーターの値をfalse
に設定します:xe host-param-set uuid=<host uuid> multipathing=false <!--NeedCopy-->
-
サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:
-
そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。
-
そのストレージリポジトリのPBDをマルチパスで再接続するために、アンプラグして再プラグします:
xe pbd-plug uuid=<pbd_uuid> <!--NeedCopy-->
-
-
プール内のすべてのホストでマルチパスを無効にするために、これらの手順を繰り返します。
マルチパスの構成
追加のマルチパス構成を行うには、.conf
というサフィックスを持つファイルを/etc/multipath/conf.d
のディレクトリに作成します。これらのファイルに追加の構成を追加します。マルチパスは、そのディレクトリをアルファベット順に検索して.conf
で終わるファイルを見つけたら、そのファイルから構成情報を読み取ります。
/etc/multipath.conf
のファイルは編集しないでください。このファイルは、XenServerが更新されると上書きされます。
マルチパスツール
XenServerでのマルチパスのサポートは、デバイスマッパーmultipathd components
に基づいて行われます。マルチパスノードの有効化および無効化は、ストレージマネージャAPIにより自動的に処理されます。Linuxの標準ツール dm-multipath
とは異なり、システム上のすべてのLUNのデバイスマッパーノードが自動的に作成されるわけではありません。ストレージ管理レイヤーによりLUNがアクティブに使用されるときにのみデバイスマッパーノードがプロビジョニングされます。このため、dm-multipath
CLIツールを使ってXenServerのDMテーブルノードを照会したり更新したりする必要はありません。
システム上のアクティブなデバイスマッパーマルチパスノードを確認したり、デバイスマッパーテーブルの状態を手作業で照会したりするには、以下のmpathutil
ユーティリティを使用します:
mpathutil list
<!--NeedCopy-->
mpathutil status
<!--NeedCopy-->
単一サブネット上のiSCSIマルチパス
1つのIPアドレスを介して、単一のサブネット上でターゲットとIQNを公開するストレージアレイでiSCSIマルチパスを使用するようにXenServerを構成できます。たとえば、次の手順に従って、Dell EqualLogic PSおよびFSユニファイドシリーズストレージアレイをセットアップできます。
デフォルトでは、XenServerはiSCSIターゲットごとに1つの接続のみを確立します。したがって、デフォルト構成では、NICボンディングを使用してフェイルオーバーと負荷分散を実現することをお勧めします。このセクションの構成手順では、単一のサブネットまたはターゲットに対して複数のiSCSI接続が確立される代替構成について説明します。NICボンディングは必要ありません。
注:
次の構成は、単一のサブネットでターゲットおよびIQNを公開するストレージアレイに排他的に接続されているサーバーでのみサポートされます。これらのストレージアレイには、XenServerを使用したこの手順を適用できる必要があります。
マルチパスを構成するには:
-
保護したいデータをバックアップします。
-
XenCenterのリソースペインで、ホストを右クリックし、[保守モードへの切り替え]を選択します。
-
続行する前に、ホストがリソースペインに保守モードアイコン(青い四角)で再表示されるまで待ちます。
-
ホストの[全般]タブで[プロパティ]をクリックして、[マルチパス]タブに移動します。
-
マルチパスを有効にするには、[このサーバーのマルチパスを有効にする] チェックボックスをオンにします。
-
[OK]をクリックして、新しい設定を適用します。XenCenterで新しいストレージ設定の保存が完了するまで少し時間がかかります。
-
ホストコンソールで、2〜4個のOpen-iSCSIインターフェイスを構成します。各iSCSIインターフェイスは、個別のパスを確立するために使用されます。次の手順は、2つのインターフェイスのプロセスを示しています:
-
2つのiSCSIインターフェイスを構成し、次のコマンドを実行します:
iscsiadm -m iface --op new -I c_iface1 iscsiadm -m iface --op new -I c_iface2
インターフェイス名のプレフィックスが
c_
であることを確認してください。インターフェイスがこの命名基準を使用しない場合、それらは無視され、代わりにデフォルトのインターフェイスが使用されます。注:
この構成により、すべての接続にデフォルトのインターフェイスが使用されます。これは、すべての接続が単一のインターフェイスを使用して確立されていることを示しています。
-
次のコマンドを使用して、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カードを検出してください。
-
-
XenCenterの [リソース] ペインで、ホストを右クリックし、[保守モードからの切り替え] を選択します。まだ仮想マシンを再開しないでください。
-
ホストコンソールで、次のコマンドを実行して、セッションを検出してログインします:
iscsiadm -m discovery -t st -p <IP of SAN> iscsiadm -m node -L all
-
次のコマンドを使用して、古いセッション情報を含む古いエントリを削除します:
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>
-
LUNを接続解除して、再度接続します。これは次のいずれかの方法で実行できます:
- プール内のすべてのホストで前述の手順を完了したら、XenCenterを使用して、プール全体のLUNを接続解除して再接続できます。
-
または、各ホストのPBDをアンプラグして破棄してから、ストレージリポジトリを修復することもできます。
-
次のコマンドを実行して、PBDをアンプラグして破棄します。
-
ストレージリポジトリのUUIDを見つけます:
xe sr-list
-
ストレージリポジトリに関連付けられているPBDの一覧を取得します:
xe pbd-list sr-uuid=<sr_uuid>
-
前述のコマンドの出力で、SCSI IDが一致しないiSCSIストレージリポジトリのPBDのUUIDを探します。
-
特定したPBDをアンプラグして破壊します。
xe pbd-unplug uuid=<pbd_uuid> xe pbd-destroy uuid=<pbd_uuid>
-
-
XenCenterのストレージを修復します。
-
-
これで、仮想マシンを再開できます。