CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回はHyper-Vの環境を構築する上でとても重要なネットワークについてご説明します。
複数のサーバーをネットワークに接続する場合にスイッチを用意するのと同様、1台の物理サーバー上に複数の仮想サーバーが動くHyper-V環境では、仮想スイッチが作成できるようになっています。仮想マシンの仮想NICはすべて仮想スイッチに接続され、仮想マシンがインターネットに接続する場合も、仮想マシン同士が通信する場合も、そして管理用OSと仮想マシンの間で通信する場合もすべて仮想ネットワークスイッチを経由します。
仮想スイッチを作成するにはHyper-Vマネージャー から仮想スイッチマネージャー を起動します。左ペインには既に作成済みの仮想スイッチが表示されており、[新しい仮想ネットワーク スイッチ]を選択することで新たに仮想スイッチを作成することができます。仮想スイッチ は物理NICにバインドさせて外部と通信可能にした[外部]、管理用OSと仮想マシンの間や仮想マシン同士でのみ通信が可能な[内部]、仮想マシン同士だけが通信可能な[プライベート]の3種類あり、使い分けることができます。
さて、Hyper-Vには親パーティションという管理用のOSが存在しており、このOSもネットワークに接続させることになります。この場合、物理NICを管理OS専用として利用することもできますし、[外部]仮想スイッチの設定で[管理オペレーティング システムにこのネットワークアダプターの共有を許可する]というチェックボックスをオンにすることで、仮想マシン用の仮想スイッチを経由してインターネットなどに接続させることも可能です。
また、[外部]と[内部]については管理用OSが通信する際のVLAN IDを指定することができます。(仮想マシンのVLAN IDの指定はそれぞれの仮想NICの設定で行います)
一般的にデータセンターでサーバーをネットワークに接続する場合は複数の物理NICを束ねて可用性を高めます。これをNICチーミングと呼び、Windows Server 2008 R2まではNICのベンダーが提供するツールを利用していましたが、Windows Server 2012ではOSの標準機能としてNICチーミングの機能が提供され、サーバーの構築や運用が楽になりました。また、Hyper-Vの仮想スイッチはチーミング済みのNICにバインドすることで可用性を向上させることができます。
※Windows Server 2012のNICチーミング機能の詳細はこちら
Hyper-Vに限らず仮想化を利用したシステムを構築する場合、ネットワークのサイジングはとても重要です。同じ物理NICを通して複数の仮想マシンが外部と通信することになりますので、1つの仮想マシンが大量のデータ転送などを行うと他の仮想マシンの通信に影響が出る場合もありますし、管理用OSと共有している場合は仮想マシンの大量データ転送により、仮想環境の運用に影響が出る可能性もあります。そのため適切なサイジングを行って十分な帯域のネットワークを提供することが必要です。また、システムの安定性を優先する場合は管理用OSが外部と通信するための物理NICと仮想マシンが外部と通信するための物理NICは別々にすることをお勧めします。さらにHyper-Vのライブマイグレーションを利用する場合は瞬間的に大きなデータ転送が発生するので、ライブマイグレーション用の物理NICを用意する場合もあるようです。
これらのハードウェア設計については、各サーバーベンダーからHyper-V環境のための設計ガイドが提供されていますので参考にすることができます。
仮想スイッチが構築できたら、仮想マシンの仮想NICを仮想スイッチに接続させます。次回は、この仮想NICについて取り上げる予定です。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes