第3回 Hyper-Vネットワーク設計のベストプラクティス:Windows Server 2012 R2時代のHyper-Vサーバ設計術(1/3 ページ)
Hyper-Vの性能を最大限に引き出すためには最適なネットワーク設計が欠かせない。仮想マシンの通信用ネットワークのほかに、ホスト・アクセス用やクラスタ用、IPストレージ用など、多数のネットワーク系統も必要だ。これらをどう配置し、実際のサーバ上でどう管理するべきか。Hyper-Vのネットワーク設計のベストプラクティスを解説。10GbEの最新トレンドも解説。
本連載では、Windows Server 2012 R2のHyper-Vをベースにして、現在求められる仮想化システムの技術トレンドや設計、機器の選択方法などについて、全4回で解説します。
- 第1回「最新モデルを意識したCPUとメモリのサイジング」
- 第2回「Hyper-Vと最新のストレージ・テクノロジの併用」
- 第3回「Hyper-Vネットワーク設計のベストプラクティス(今回)」
- 第4回「クラスタリングとライセンス・コストを考慮した全体設計」
前回はHyper-Vの性能を引き出すためのストレージ設計について解説したが、今回はもう1つの“足回り”である「ネットワーク」の設計について解説する。
これまでほかの仮想化製品を利用していたユーザーにHyper-Vを試用してもらうと、「Hyper-Vはネットワーク周りが複雑」という感想がよく聞かれる。汎用OSであるWindows ServerをベースにしているHyper-Vにはよい面と悪い面があるが、ネットワーク周りについては分が悪いのが正直なところだろう。実際、Hyper-Vの過去のバージョンでは、初歩的ともいえるVLANやNICチーミング機能すらもサーバ・ベンダに依存し、正しく動作しないケースもあった。
しかし、こういった問題はバージョンを重ねるごとに改善している。複雑と揶揄されてきた設計についても、米マイクロソフトで大手顧客の技術支援を担当するPFE(Premier Field Engineering)チームから「ベストプラクティス」ガイドが公開されている。
今回はこのベスト・プラクティスを参考にしつつ、昨今のハードウェアの事情を加味して費用対効果の高いHyper-Vのネットワーク設計を考えてみよう。
Hyper-Vに必要なネットワーク系統数
ネットワークをサイジング・設計していくためには、「どんなネットワーク系統が」「どのくらいの帯域で」必要であるかなど、最初に要件を明確化しなければならない。ホスト・クラスタリングやライブ・マイグレーションといった、本番運用で求められる高可用性を前提とすると、下記5つのネットワーク系統が必要だ。
【必須ネットワーク系統】
(1)仮想マシン用ネットワーク
(2)親パーティション:ホスト・アクセス用
(3)親パーティション:WSFCハートビート用*1
(4)親パーティション:CSV通信用*2
(5)親パーティション:ライブ・マイグレーション用
*1 WSFC: Windows Server Failover Clustering
*2 CSV: Cluster Shared Volume(クラスタ共有ボリューム)
これに加えて、ストレージをiSCSIやSMBといった「IPストレージ」にする場合は、ストレージ専用のネットワークを用意するのが一般的だ(6)。また、仮想マシン・バックアップやHyper-Vレプリカを採用する場合も、それ専用のネットワークもしくは十分な帯域が必要になる(7)(8)。
【オプション・ネットワーク系統】
(6)親パーティション:IPストレージアクセス用(iSCSI・SMBなど)
(7)親パーティション:バックアップのデータ転送用
(8)親パーティション:Hyper-Vレプリカのデータ転送用
全部で5系統(IPストレージを利用する場合は6系統)になるので、ネットワークの数がかなり多く感じるだろう。これではさすがに厳しいため、実際の現場では一部の用途を相乗りさせて対応するケースが多い。冒頭で紹介したベストプラクティス・ガイドでは、(3)と(4)、つまりWSFCハートビートとCSV通信用を相乗りさせて計4系統(IPストレージ環境の場合は計5系統)にすることを推奨している。さらに減らしたい場合は、「ハートビート」「CSV」「ライブ・マイグレーション」の3つを相乗りさせるのが一般的だ。
必要なネットワーク帯域量
必要なネットワーク系統数が決まったところで、それぞれに必要な帯域量について考えてみよう。
(1)仮想マシン用ネットワーク
仮想マシン用ネットワークはサーバ集約率に比例するものの、最低でも「3G〜4Gbps」は確保したい。
たまに、ここを「1Gbps×2ポートだけ」といった構成にする例を見かけることがある。5年前であれば妥当といえるが、昨今のサーバ集約率を考えると、あまりにリスクの大きい設計だ。第1回でも解説したとおり、現行プロセッサの性能・コア数を鑑みると、1台のサーバに仮想マシンを10台前後は集約するため、1Gbps×2ポートでは1仮想マシンあたり100M〜200Mbpsにしかならない。
「すべての仮想マシンが常時そんなに通信しないのでは?」という意見もあるかもしれないが、それでも帯域を多く確保しておくことは運用面で重要だ。
仮想マシン上で利用するアプリケーションの最低要件に「1Gbps以上のネットワーク・アダプタ」といった記載がある場合、実際の通信量に関係なく仮想マシンには1Gbpsの帯域を確保しておきたい。そのアプリケーションのサポートを受ける場合に開発元から「サポート外」とされてしまうことを防ぐためだ。「アプリケーションの性能が悪い」とサポート・センターにヘルプを求めても「ネットワーク帯域を1Gbps確保できていないからではないですか?」と疑われてしまう。
こういった運用フェーズでのトラブルを防ぐためにも、サーバ1台で3G〜4Gbpsの仮想マシン用帯域を確保しよう。加えて、性能やサポート面で重要な仮想マシンについては、Hyper-Vの「帯域幅管理」機能(次の図1参照)などを併用するなど、アプリケーション担当者からクレームにならない構成にしておきたい。
図1「Hyper-Vの帯域幅管理機能」
仮想マシンごとの帯域幅管理はWindows Server 2012のHyper-Vより追加された機能。仮想マシン(厳密には仮想NIC)単位で使用する最小と最大帯域幅を制御できるため、アプリケーションのネットワーク要件を満たしておくために役立つ。なお、「最小帯域幅」を指定する場合は、ライブ・マイグレーションなどで仮想マシンが移動することを想定し、移動先ホストで帯域枯渇を引き起こさないよう注意したい。例えば、最小帯域幅を8Gbpsに設定した仮想マシンがあるホストへ、最小帯域幅を4Gbpsに設定した仮想マシンをマイグレーションしようとした場合、物理帯域が10Gbpsしかないと、仮想マシンを移動できずにエラーとなる。
(1)これをオンにすると帯域幅を設定できる。
(2)使用する帯域の上限と下限を設定する。
(3)移動先ホストの帯域が不足すると、エラーとなり、このようなイベントが記録される。
(2)親パーティション: ホスト・アクセス用
こちらはHyper-Vホスト(親パーティション)のメイン・ネットワークであり、ホストの管理やActive Directoryドメイン・コントローラとの通信などが中心となる。帯域は1Gbpsあれば十分だ。後述するNICパーティションといった細かな帯域設定ができる環境では500Mbps程度でも問題ないだろう。冗長化はNICチーミングで実施する。
(3)親パーティション: WSFCハートビート用(4)親パーティション: CSV通信用
前者は、Hyper-Vでホスト・クラスタリングを構成する場合に必要なWSFCのハートビート用のネットワーク、後者はライブ・マイグレーションなどでCSVを利用する場合に必要なネットワークである。両者ともWSFCサービスが利用するホスト間通信用の回線であるため、冒頭のベスト・プラクティスに従い、この2つは相乗りさせて1〜2Gbpsの回線を割り当てておく。
ここの冗長化ではNICチーミングは必須ではない。WSFC側の機能でほかのネットワークを副回線(代替回線)として設定できるため、ホスト・アクセス用(2)やライブ・マイグレーション用(5)のネットワークを副回線として指定しておけばよいだろう。
注意点として、このネットワークではSMBプロトコルを無効にしてはならない。WSFCの内部ネットワークはSMBプロトコルを無効にするのが旧来からの常識であるが、CSVではSMBプロトコルを使って通信するためだ(次の記事参照)。
- 「Hyper-Vライブ・マイグレーションの構築手順――WSFCのセットアップ」(連載「Hyper-V 2.0実践ライブ・マイグレーション術」)
- 「Hyper-V 2.0のライブ・マイグレーションの基礎知識――クラスタ共有ボリューム(CSV)の動作」(同上)
(5)親パーティション: ライブ・マイグレーション用
これはライブ・マイグレーションでのメモリ・データ転送に使用されるネットワークだ。仮想マシンはライブ・マイグレーション中も稼働しているため、メモリの内容は随時更新される。この更新も後追いで転送されるものの、回線が遅いと更新が溜まるばかりで転送が追いつかず、ライブ・マイグレーションがエラーになってしまう。最低でも1G〜2Gbpsは確保し、占有しておこう。
こちらも、ほかのネットワークに副回線を設定できるため、(3)+(4)と相互に副回線として設定しておくとちょうどよいだろう。
なおWindows Server 2012 R2のHyper-Vには、この処理時間をより短縮するために2つの転送モードが追加されている(図2)。
図2「Windows Server 2012 R2より追加されたライブ・マイグレーションの転送モード」
Windows Server 2012 R2のHyper-Vのライブ・マイグレーションの転送オプションでは、従来からの「TCP/IP」に加え、新たに「圧縮転送」と「SMB」が選べる。InfiniBandなどのRDMA環境がある場合はSMBを選択するとSMB Direct機能を利用した超高速転送が可能だ。だが今日の価格ではRDMA(Remote Direct Memory Access)機器をライブ・マイグレーション用に占有させるのは少々もったいない。早く手頃な価格にまで下がることを期待したい。
(1)TCP/IPを利用したライブ・マイグレーション。Windows Server 2012のデフォルト設定。
(2)ライブ・マイグレーション時にメモリの内容を圧縮してから転送する。Windows Server 2012 R2のデフォルト設定。
(3)SMB Directを利用した転送を利用するオプション。
(6)親パーティション: IPストレージアクセス用(iSCSI/SMBなど)
共有ストレージと接続するにあたり、どのプロトコルを採用すべきかについては第2回を参照してほしい。こちらで詳説しているとおり、帯域については最低でも4G〜5Gbpsは確保しよう。
冗長化については、もしiSCSIを採用するなら、NICチーミングではなくMPIO(マルチパスI/O)で行おう。逆に、SMBの場合はSMBマルチチャネルよりもNICチーミングをお勧めする。
1Gbps環境では最低でも8つのポートが必要に
ここまでの設定情報を表と図にまとめておく(表1、図3)。
用途 | 接続先 | 最低帯域 | 1GbEでの ポート数 |
---|---|---|---|
(1)仮想マシン用 | 仮想マシン | 3G〜4Gbps | 4ポート |
(2)ホスト・アクセス用 | 親パーティション | 1Gbps | 2ポート |
(3)WSFCハートビート用 (4)CSV通信用*3 |
親パーティション | 1G〜2Gbps | 1ポート(*4) |
(5)ライブ・マイグレーション用 | 親パーティション | 1G〜2Gbps | 1ポート(*5) |
(6)(オプション)IPストレージ用 | 親パーティション | 4G〜5Gbps | 5ポート |
表1「中規模クラスのHyper-V本番サーバで必要となるネットワーク」 共有ストレージにファイバ・チャネルやShared SASなどを利用する場合で8個、iSCSIやSMBなどを利用する場合には最低13個の1GbE(1Gbpsのイーサネット)ポートを1台のサーバに構成する必要がある。 *3 ネットワーク系統数を減らすために、1つのNICに2つの用途を相乗りさせる。 *4 (2)または(5)のネットワークに冗長化の副回線を設定する。 *5 (3)や(4)のネットワークに冗長化の副回線を設定する。 |
図3「1GbE環境のネットワーク構成」
ネットワークをすべて1GbE(1Gbpsのイーサネット)で構成すると、トータルではかなりのポート数が必要になる。PCI Expressのスロット数の上限を超えてしまうこともあるうえ、大量の増設NICに掛かる費用も相当な負担になるだろう。
ホスト・クラスタリングまで加味した中規模クラスの本番環境の場合、4系統のネットワークを構成するために、最低でも1Gbpsイーサネット(1GbE)ポートは8つ必要だ。加えてiSCSIやSMBなどのIPストレージを利用する場合は5ポート追加、バックアップやHyper-Vレプリカも導入するとなると、さらにポート追加が必要となる。
Copyright© Digital Advantage Corp. All Rights Reserved.