Share via


仮想化: Hyper-V の新機能

Windows Server 2012 の主な強化点には、Hyper-V に関するものもあります。この記事では、その強化点のいくつかについて詳しく説明します。

Paul Schnackenburg

Hyper-V は、Windows Server 2012 で行われた大きな変更において重要な位置を占めています。多くの新機能や機能強化が加えられたため、Hyper-V の適切な実装計画を立てるには、これらの技術的な変更点について十分な理解が必要になります。

多くの強化された機能では、ネットワークのさまざまな側面がサポートされています。また、スケーラビリティ、セキュリティ、ストレージ、および仮想マシン (VM) の移行も強化されています。この 2 部構成シリーズの第 1 部では、シングル ルート I/O 仮想化 (SR-IOV)、ネットワーク監視とサービスの品質 (QoS)、NIC チーミング、拡張仮想スイッチ、ネットワーク仮想化、および Software Defined Networking (SDN) について説明します。

SR-IOV

SR-IOV は、本質的には、Intel Virtualization Technology (Intel VT) と AMD Virtualization (AMD-V) でプロセッサを仮想化するために行っている処理を実行する新しいテクノロジです。ソフトウェアから専用のハードウェアに機能を移すことで、パフォーマンスを向上しています。SR-IOV には、新しい Hyper-V クラスターを計画するときに考慮が必要な特殊な使用方法といくつかの制限があります。

SR-IOV をサポートするネットワーク カードと、BIOS で SR-IOV をサポートするサーバーを用意すると、NIC により仮想機能 (VF)、つまり NIC の仮想コピーが VM に提供されます。SR-IOV は、かなり新しいテクノロジなので、使用するネットワーク カード モデルを確認するようにしてください。カードによっては、4 個または 8 個の VF しか提供しないものもあれば、最大 64 個の VF を提供するものもあります。新しい外部仮想スイッチを作成する場合は、単純に SR-IOV スイッチにすることを選べます (図 1 参照)。後から通常の vSwitch に変換することはできません。

すべての前提条件が満たされている場合、スイッチ作成時に、SR-IOV の有効化のチェック ボックスが選択できる

図 1 すべての前提条件が満たされている場合、スイッチ作成時に、SR-IOV の有効化のチェック ボックスが選択できる

SR-IOV には一定の制限があります。仮想スイッチのポートのアクセス制御リスト (ACL)、拡張機能、またはポリシーを構成すると、SR-IOV のトラフィックはスイッチをまったく経由しないため、SR-IOV は無効になります。ホストでは 2 枚の SR-IOV ネットワーク カードをチーミングすることはできません。ただし、ホストに 2 枚の物理 SR-IOV 対応の NIC を取り付け、個別の仮想スイッチを作成して、VM 内で 2 枚の仮想ネットワーク カードをチーミングすることはできます。

各 SR-IOV 対応の NIC が通常の VM バス NIC により "シャドウ コピー" されるため、(vSphere 5.1 の vMotion とは異なり) SR-IOV 対応の NIC による VM のライブ マイグレーションは機能します。そのため、VM を SR-IOV 対応の NIC が搭載されていないホストに移行する場合や空いている VF がない場合、トラフィックは単純に通常の統合リンク経由で転送されます。

帯域幅は必ずしも Hyper-V の SR-IOV における重要なメリットではありません。VM バスにより、10 Gb リンクが飽和状態になる場合があり、そのトラフィックにより、1 つのコアを占有するほどの CPU 負荷が生成されます。そのため、CPU の低使用率が設計の大きな目的である場合、SR-IOV が鍵となります。遅延が重要な側面の場合、SR-IOV では物理 NIC に近いパフォーマンスを提供します。

大量の着信 VM トラフィックが予想されるホストでは、Dynamic Virtual Machine Queue (dVMQ) により、MAC アドレスのハッシュに基づいて各 VM のキューにトラフィックが分散されます。また、割り込みも CPU コア間で分散されます。

測定と監視

Hyper-V には VM リソースの使用状況を測定する機能が組み込みで用意されています。この機能は、主にホスティング シナリオに適しています。また、ショーバックまたはチャージバックのデータを収集するプライベート クラウドでも有用です。測定機能では、CPU とメモリの平均使用率を、ディスクとネットワーク トラフィックの使用状況と併せて追跡します。この機能は、Windows PowerShell からしか使用できないので、System Center 2012 Virtual Machine Manager (VMM) SP1 を使用すると、さらに包括的なデータ収集と仮想化が可能になります。

アクション測定とポート ACL を仮想スイッチに追加して、インターネット (デフォルト ゲートウェイ) トラフィックをデータセンター内部のトラフィックから分離して測定できます。仮想ネットワークのネットワーク パケットをキャプチャする必要がある場合は、監視ポートまたはポート ミラーリングを定義して、ネットワーク モニターを使用できます。

帯域幅の管理

ここ数年、多くのクラスター設計では、複数の 1 Gb NIC を使用しており、各 NIC は、特定のトラフィック (ライブ マイグレーション、VM 通信、クラスター ハートビート、管理、および iSCSI) 専用として使用されています。10 Gb イーサネットがより一般的になり、ほとんどのサーバーには前述の NIC のいくつかしか備えられていません。

新しい QoS 機能を使用すると、特定のサービスで常に使用できる必要がある最小帯域幅と、最大帯域幅を定義できます (図 2 参照)。これにより、10 Gb リンクを複数のサービスで分割して使用することができます。

VM で使用する最小帯域幅と最大帯域幅の両方を制御できる

図 2 VM で使用する最小帯域幅と最大帯域幅の両方を制御できる

輻輳がない場合、各サービスでは割り当てられた最大帯域幅まで使用できます。ネットワーク トラフィック量が多いときも、各サービスでは最小帯域幅が保証されます。ソフトウェア ベースの QoS では、さまざまなトラフィックの種類に対してきめ細かく対応していますが、処理オーバーヘッドがあります。

また、ライブ マイグレーション、サーバー メッセージ ブロック (SMB)、iSCSI などの一般的なトラフィックの種類に対する組み込みフィルターも用意されています。このフィルターにより、すばやく QoS の運用を開始できます。これらの帯域幅の管理機能によってサービス レベル契約 (SLA) を明確に定義して適用できるようになるため、これらの機能は特にホスト側にとって魅力的です。

SMB ダイレクト (Windows Server 2012 の新機能) をリモート ダイレクト メモリ アクセス (RDMA) NIC で使用している場合、ソフトウェア ベースの QoS は無視されます。そのようなシナリオ (制御が必要な TCP 以外のトラフィックがある場合) では、Windows Server でデータ センター ブリッジング (DCB) もサポートされます。DCB を使用すると、帯域幅は互換性のある NIC のハードウェアによって管理されます。DCB では、8 つのトラフィック クラスを定義できるだけですが、処理オーバーヘッドが大幅に少なくなります。

ネットワーク カードのチーミング

今日、多くのサーバーでは、フォールト トレランスと増加したスループットに対応するためにネットワーク カード チーミングを使用しています。各 NIC ベンダーには独自のソリューションがあるため、チーミングは柔軟性に欠け、管理が困難です。ネイティブな NIC チーミング (通称、負荷分散フェールオーバー) を含めると、仮想環境は便利になります。

ユーザーは、(必要に応じて、異なるベンダーが提供する) 最大 32 枚の NIC をチーミングできます。各チームは、スイッチに非依存モードまたはスイッチに依存モードで構成できます (図 3 参照)。前者は、管理されていないスイッチがあるか、スイッチの構成を変更できない場合に適用できます。

Windows Server 2012 では最適なオプションを使用するだけで簡単に複数 NIC のチーミングを行える

図 3 Windows Server 2012 では最適なオプションを使用するだけで簡単に複数 NIC のチーミングを行える

これは、冗長性を確保するうえで有効に機能します。2 枚の NIC を使用し、そのうち 1 枚をスタンバイ モードで使用します。1 枚目で障害が発生した場合は、2 枚目で処理を引き継ぎます。保護を強化するために、各 NIC を異なるスイッチに接続することができます。

両方の NIC をアクティブにする必要がある場合は、アドレスのハッシュ負荷分散モードまたは Hyper-V ポート負荷分散モードを使用できます。前者は、メディア サーバーや Web サーバーなどで、多くの発信トラフィックがある場合に有効に機能します。着信トラフィックは 1 枚の NIC のみを経由します。後者は、ホストにいくつかの VM があり、各 VM で必要な速度が 1 枚の NIC で十分な場合に有効に機能します。

さらに複雑なシナリオでは、スイッチに依存モードが適しています。このモードは、静的モードまたは Link Aggregation Control Protocol (LACP) モードに設定できます。ネットワーク チームのサポートを得て適切にスイッチを設定する必要があります。静的モードは、あまり変更が行われない小さな環境でのみ機能します。LACP モードでは、スイッチで自動的にチームを認識し、NIC がチームに追加されたときには追加の NIC を検出します。

VLAN はチームと組み合わせて使用できます。この際、各チームの複数のチームインターフェイスは、特定の VLAN ID に対応するように設定します。チームを 1 枚の NIC のみに設定することもできますが、VLAN をベースとしたトラフィックの分離を実現するために複数のチーム インターフェイスが必要です。

異なる VLAN と通信する必要があるホストに複数の VM がある場合、Hyper-V スイッチと仮想 NIC を使用してアクセスを設定します。ホストのネットワーク チームは使用しません。VM 内での NIC チーミングはサポートされているので、AllowTeaming 設定を有効にするようにします。

拡張仮想スイッチ

新しい仮想スイッチは、以前のバージョンから大幅に強化されています。テナントの分離、トラフィックのシェイプ、簡素化されたトラブルシューティング、悪意のある VM からの保護など、クラウドの基本的な機能が追加されています。仮想スイッチの他の新しい側面は、Network Driver Interface Specification (NDIS 6.0) または Windows フィルタリング プラットフォーム (WFP) API を通じて、サードパーティ ベンダーが機能を追加できることです。これはどちらも、ネットワーク ソフトウェア エンジニアにとって慣れ親しみのある環境です。

拡張機能にはいくつかの種類があります。

  • ネットワーク パケット検査拡張機能では、パケットがスイッチに入ったりスイッチから出たりするときにパケットを確認 (読み取り専用) して、変化を識別します。1 つの例が InMon 社の sFlow です。無償バージョンの sFlowTrend を使用して、トラフィックを視覚化できます。
  • ネットワーク パケット フィルター拡張機能では、スイッチでパケットを作成、フィルター処理、および修正できます。その 1 つの例が 5nine Software 社の Security Manager です。このツールでは、各 VM にエージェントをインストールする必要なく、侵入検出システム (IDS)、ファイアウォール、およびマルウェア対策機能を提供します。
  • ネットワーク転送拡張機能では、スイッチ転送を変更します。各 vSwitch には、このような拡張機能を 1 つだけインストールできます。この象徴的な例は Cisco Nexus 1000V です。

拡張機能は比較的簡単に管理できます (図 4 参照)。VMM 2012 SP1 では、拡張機能とスイッチ構成の一元管理がサポートされており、これを自動的にすべてのホストに配布できます。

新しい仮想スイッチのネットワーク拡張機能は簡単に有効化および構成できる

図 4 新しい仮想スイッチのネットワーク拡張機能は簡単に有効化および構成できる

1 つのスイッチを複数の仮想 NIC に関連付けることができます。また、ポート ACL をリモートまたはローカルの IPv4、IPv6、または MAC アドレスで設定してトラフィックを制御したり、ネットワーク データを測定したりできます。ホスティング環境では、VM がルーター アドバタイズに基づいて動作するのを停止するルーター ガードと、ユーザーが VM を動的ホスト構成プロトコル (DHCP) サーバーとして承認しない限り VM の DHCP トラフィックを停止する DHCP ガードが役に立ちます。

IPsec は、データ トラフィックを保護するすばらしい方法ですが、プロセッサのオーバーヘッドが大きいため見過ごされることが往々にしてありません。Hyper-V では、Windows Server 2008 R2 および Windows Server 2012 を実行している VM の IPsecTO (タスクのオフロード) がサポートされるようになりました。この機能により、IPSecTO がサポートされている物理 NIC に計算処理が委任されます。

SDN

SDN は、大規模なデータセンターやクラスターでネットワークと VM の分離を管理する新しい方法です。データセンターでは、一元的に管理されたポリシーに基づいてネットワークと分離を制御できる必要があります。そのため、手動による VLAN スイッチの構成では柔軟性が十分とは言えません。マイクロソフトは、クラウド OS のビジョンの 1 つとして、ネットワーク仮想化 (NV) を掲げています。NV と SDN は、インフラストラクチャの一部をクラウドに移動する必要があるときに本領を発揮します。

VM の IP アドレスを変更しなければならないことは頻繁にあります。これは、特に、VM が複数の場所のセキュリティとファイアウォール ポリシーに関連付けられていることが多いため、簡単なことではありません。あまり柔軟性がなく、クラウド プロバイダー間で VM を移動するのも簡単ではありません。

Windows Server 2012 の NV では、仮想化が他のファブリック コンポーネント (プロセッサ、メモリ、ディスクなど) に対して行ってきたことを実現します。NV を使用する各 VM では、VM が "所有している" ネットワーク インフラストラクチャ上で実行されていると認識されます。内部では、実際はソフトウェアによって他の VM から分離されています。また、NV では、自社所有の IP の利用 (BYOIP: Bring Your Own IP) を有効にすることで、VM の移動に関する問題を見事に解決しています。VM では、パブリック クラウドに移動したときにアドレスを保持できます。そのため、インフラストラクチャの残りの部分と VM がシームレスに通信できます。

各 VM には、VM で使用するカスタマー アドレス (CA) と、実際にネットワークで使用されるプロバイダー アドレス (PA) の 2 つの IP アドレスがあります。同じホストで、NV を使用している VM と NV を使用していない VM を同時にホストできます。ブロードキャスト トラフィックが、セグメントの "すべてのホスト" に送信されることはありません。常に NV 経由で分離を維持します。NV は基盤となる OS に対して透過的なので、どのような VM でも VN を構成できます。

NV を構成する 2 つのオプションは IP 書き換えと Generic Routing Encapsulation (GRE) です。IP 書き換えでは、適切な CA または PA を使用して、パケットがホストに入るか、ホストから離れるときに各パケットを変更します。つまり、ネットワーク機器を変更することなく、NIC オフロードが機能するようになります。また、各 VM には PA と CA の両方が必要になるので、アドレス管理の負荷が増加します。

GRE では、CA パケットが付属する仮想サブネット ID と共に PA パケットにカプセル化されます。そのため、ネットワーク ハードウェアではテナントごとにトラフィック ポリシーを適用できます。ホスト上の各 VM では同一の PA を共有することもできるので、追跡するアドレスが減少します。

トレードオフは、NIC ハードウェアのオフロードでは適切な IP ヘッダーが使用されるため、オフロードが機能しないことです。将来的なソリューションは、Network Virtualization using Generic Routing Encapsulation (NVGRE) と呼ばれる新しい標準です。これは、GRE のメリットと IP 書き換えのメリットを組み合わせて、NIC オフロードが期待どおりに機能するようにしたものです。

VMM とネットワーク仮想化

VMM 2012 SP1 では、NV の構成に論理スイッチと VM ネットワークという 2 つのオブジェクトが追加されています。後者は、ルーティング ドメインで、仮想サブネットが通信できる限り、複数の仮想サブネットを配置できます。各 VM ネットワークは 4 種類の分離 (分離なし、VLAN、NV、または外部) のいずれかに設定できます。

1 つ目は、すべてのネットワークに到達できる必要がある管理ネットワークに適しています。VLAN は、機能している既存の分離モデルがある場合に適しています。VLAN では、スイッチ (物理と仮想の両方) が適切に構成されている必要があります。各 VM ネットワークは、単一の VLAN に対応しています。

NV では、Windows Server 2012 の NV を使用します。CA と PA のマッピングを追跡するマッピング テーブルは、VMM で管理されます。各ホストでは、ネットワーク トラフィックを送受信するときに、マッピング テーブルを動的に構築します。ホストが、未知のホストと通信する必要がある場合は、VMM からデータを取得してマッピングを更新します。この機能により、大規模なネットワークでは、テーブル サイズを縮小することができます。

VMM に導入されたもう 1 つのオブジェクトは、待望の論理スイッチです。論理スイッチを使用すると、vSwitch の設定を一元的に定義して、自動的にすべてのホストにレプリケートできます。また、仮想スイッチ拡張機能マネージャー (VSEM) が用意されており、仮想スイッチの拡張機能を一元的に制御できます。

VM をホスト間で移動するときには、拡張機能とそのデータは VM に保持されます。また、VM の帯域幅ポリシーを一元的に定義して適用することもできます。仮想ネットワークは、VM のプロビジョニング処理に統合されており、真の自動化されたソリューションが提供されます。

データセンターにおける Hyper-V

この記事で紹介した Windows Server 2012 の Hyper-V の新しいネットワーク設計機能とオプションを考えると、計画段階に戻る必要性があることは明白です。Hyper-V 固有ではない、他のネットワークの機能強化もいくつかありますが、それでも設計に影響を与える可能性があります。

大規模な環境については、Windows Server 2012 でデータ センター伝送制御プロトコル (DCTCP) がサポートされるようになり、スループットが強化され、スイッチで使用されるバッファー領域が減少しました (ただし、明示的輻輳通知 RFC 3168 [ECN] がサポートされている場合に限ります)。Excel ブックで IP アドレスを追跡している場合、Windows Server 2012 の IP アドレス管理 (IPAM) を調べることをお勧めします。この機能では、Active Directory、DHCP、および DNS サーバーと通信して IPv4 と IPv6 の両方を管理できます。VMM 2012 SP1 には、VMM から IPAM に割り当てられた IP アドレスをエクスポートするスクリプト (Ipamintegration.ps1) が用意されています。このスクリプトは定期的に実行できます。

来月は、Hyper-V のストレージの強化 (ファイル共有から VM を実行できることなど)、VM マイグレーション、およびスケーラビリティの機能強化について説明します。

Paul Schnackenburg

Paul Schnackenburg は、286 コンピューターの時代から IT 業界で働いています。オーストラリアのサンシャイン コーストで自分の会社である Expert IT Solutions を経営しながら、パートタイムで IT 関連の講師を務めています。MCSE、MCT、MCTS、および MCITP という認定資格を持ち、Windows Server、Hyper-V、および Exchange のビジネス向けソリューションを専門としています。連絡先は paul@expertitsolutions.com.au (英語のみ) です。彼のブログは TellITasITis.com.au (英語) でご覧になれます。

関連コンテンツ