XenServer で iSCSI MPIO を使用して帯域幅を増やす方法は?

XenServer で iSCSI MPIO を使用して帯域幅を増やす方法は?

私は 4 つのネットワーク インターフェイスを備えた FreeNAS サーバーを持っています。iSCSI トラフィックはこれらのインターフェイスのうち 2 つを通過し、各インターフェイスには異なるサブネット内の 1 つの IP アドレスがあります。例:

igb0: 192.168.10.1/24 igb1: 192.168.11.1/24

iSCSI トラフィック専用のインターフェイスが 1 つだけある XenServer ホストが 3 つあります。したがって、図ではストレージにインターフェイスが 2 つ、ホストに合計 3 つあります。

私の計画は、ホストあたり 1Gbit に制限しながら、ホストと最大 2Gbit の接続を実現することでした。

問題は、サブネットが異なることから始まります。XenServer ホストの同じネットワーク インターフェイスに 2 つの異なる IP アドレスを設定する方法がわかりません。XenCenter では、これを行うことができません。別のアイデアとしては、この種類のトラフィックを異なる VLAN で分離するというものがあります。これは問題ありませんが、これもうまくいかないようです。

編集: 残念ながら、LACP は期待どおりに動作しません。FreeNAS ドキュメントに詳細情報があります: 「LACP およびその他の形式のリンク アグリゲーションは、通常、仮想化ソリューションではうまく動作しません。仮想化環境では、iSCSI ポータルを作成して iSCSI MPIO を使用することを検討してください。これにより、iSCSI イニシエーターはターゲットへの複数のリンクを認識し、それらを利用して帯域幅や冗長性を高めることができます。このハウツーには、ESXi で MPIO を構成する手順が記載されています。」

そのため、ストレージで 2Gbit/s を実現するために、VLAN やハックを使用して MPIO を設定しようとしています。

答え1

各ホストに iSCSI 用のインターフェイスが 1 つしかない場合、ここで説明した設定では MPIO を使用できません。ただし、FreeNAS システムをリンク アグリゲーション (LACP) を使用するように構成して、2 つのホストにそれぞれ 1Gb で同時にサービスを提供できるようにすることができます (FreeNAS から合計 2Gb)。MPIO の代わりに、LACP を検討してください (または、各ホストに 2 つ目の NIC を入手してください)。

編集: LACP が仮想化に一般的に推奨されない理由は、期待どおりに動作しないからです。通常、ホストに 2 つの NIC、ストレージに 2 つの NIC を配置することで、単一の VM (または、そのホスト上の複数の VM) のストレージへの帯域幅を 2 ​​倍にできると期待されます。実際にはそのようには動作しませんが、MPIO は適切に構成されていれば動作します。しかし明らかに、これはあなたがやろうとしていることではないでしょう。元の質問を正しく理解していれば、ストレージ ボックスには 1Gb NIC が 2 つあり、XenServer ホストごとに 1Gb NIC が 1 つあります (少なくともストレージ用です。他のネットワーク接続は今のところ無視しましょう)。必要なのは、各ホストが同時にストレージ ボックスへの接続を飽和させることです。ストレージボックス上のLACPはまさにここでの正しい解決策です(XenServer ホストにはそれぞれ NIC が 1 つしかないため、LACP は必要ありません)。

もし本当にMPIOでこれを動作させたいのであれば、それは可能ですが、それはひどい汚いハックになるでしょう。基本的に、各ホストにダミーのNICを設定する必要があります。他のストレージネットワークの場合は、XenServerに2つのNICをMPIO構成で使用するように指示します。XenCenterではそのように構成できないため、コマンドラインからハッキングする必要があります。その方法は説明しません。間違っている実行すべきことではありません。構成を変更すると破損する可能性が高く、XenServer をアップグレードするとほぼ確実に破損します。

コミュニティを信頼してください。ストレージ ボックスのみに LACP を構成すれば、ここで必要なことが得られます。同様の構成で心を落ち着かせる必要がある場合は、FreeNAS ボックスに 2Gb NIC をインストールすると考えてください。(もちろん、そうは言っても、もう 1 つの解決策は、FreeNAS ボックスに 10Gb NIC を追加し、ホストが接続されているスイッチの 10Gb ポートに接続することですが、スイッチには 10Gb ポートがないと思います。)

答え2

NFS には LACP を使用します。iSCSI には MPIO を使用します。

ハイパーバイザーホストにストレージインターフェースの冗長性がない場合、それはここで注意を集中する必要があります。ハックやナンセンスは不要です。ホストに NIC を追加し、MPIO を構成します。

答え3

LACP

リンク ボンディングは、IP 層 (L3) ではなく、イーサネット層 (L2) で行われます。LACP プロトコルには、L2 ハッシュ、L3 ハッシュ、または L4 ハッシュ (TCP/UDP ポート番号を調べる) などのハッシュが関係しており、このハッシュは (設計上)、単一のセッションが複数の物理インターフェイスにまたがるのを防ぎます。したがって、LACP を介した 1 つのターゲットへの 1 つの iSCSI セッションでは、せいぜい 1 つのインターフェイスの速度しか得られません。

ピオ

特定の IP アドレス上の単一のイニシエーターと単一のターゲットの間で複数のセッションを開くことは可能です。このセッションが LACP ボンディング接続を介して行われる場合、そのようにする理由がいくつかあります。残念ながら、イニシエーターとターゲットのすべての組み合わせがこれをサポートするわけではありません。Citrix XenServer 6.2 (拡張バージョンではなく、無料でダウンロードできるインストーラー) を使用したテストでは、マルチパス IO を有効にすると、検出できる各 IP アドレスに対して 1 つのセッションが正確に開かれることがわかりました。したがって、複数のパスが必要な場合は、複数のインターフェイスに複数の IP アドレスを設定する必要があります。

Linux open-iscsi の新しいバージョンには追加機能があるので、Xenserver にもいずれこの機能が追加されると思います。

関連情報