第3回 Hyper-Vネットワーク設計のベストプラクティスWindows Server 2012 R2時代のHyper-Vサーバ設計術(1/3 ページ)

Hyper-Vの性能を最大限に引き出すためには最適なネットワーク設計が欠かせない。仮想マシンの通信用ネットワークのほかに、ホスト・アクセス用やクラスタ用、IPストレージ用など、多数のネットワーク系統も必要だ。これらをどう配置し、実際のサーバ上でどう管理するべきか。Hyper-Vのネットワーク設計のベストプラクティスを解説。10GbEの最新トレンドも解説。

» 2013年11月01日 17時21分 公開
[小川大地(Microsoft MVP for Virtual Machine)日本ヒューレット・パッカード]
Windows Server 2012 R2時代のHyper-Vサーバ設計術
Windows Server Insider


「Windows Server 2012 R2時代のHyper-Vサーバ設計術」のインデックス

連載目次

本連載では、Windows Server 2012 R2の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の帯域幅管理機能」
図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プロトコルを使って通信するためだ(次の記事参照)。

(5)親パーティション: ライブ・マイグレーション用

 これはライブ・マイグレーションでのメモリ・データ転送に使用されるネットワークだ。仮想マシンはライブ・マイグレーション中も稼働しているため、メモリの内容は随時更新される。この更新も後追いで転送されるものの、回線が遅いと更新が溜まるばかりで転送が追いつかず、ライブ・マイグレーションがエラーになってしまう。最低でも1G〜2Gbpsは確保し、占有しておこう。

 こちらも、ほかのネットワークに副回線を設定できるため、(3)(4)と相互に副回線として設定しておくとちょうどよいだろう。

 なおWindows Server 2012 R2のHyper-Vには、この処理時間をより短縮するために2つの転送モードが追加されている(図2)。

図2「Windows Server 2012 R2より追加されたライブ・マイグレーションの転送モード」 図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環境のネットワーク構成」 図3「1GbE環境のネットワーク構成」
ネットワークをすべて1GbE(1Gbpsのイーサネット)で構成すると、トータルではかなりのポート数が必要になる。PCI Expressのスロット数の上限を超えてしまうこともあるうえ、大量の増設NICに掛かる費用も相当な負担になるだろう。

 ホスト・クラスタリングまで加味した中規模クラスの本番環境の場合、4系統のネットワークを構成するために、最低でも1Gbpsイーサネット(1GbE)ポートは8つ必要だ。加えてiSCSIやSMBなどのIPストレージを利用する場合は5ポート追加、バックアップやHyper-Vレプリカも導入するとなると、さらにポート追加が必要となる。


       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。