本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-VMSwitch」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作するHyper-Vの仮想スイッチを新規作成する「New-VMSwitch」コマンドレットです。
Hyper-Vをはじめとするハードウェア仮想化技術では、CPUやメモリといったコンピュータの構成要素を仮想化して仮想マシンに提供します。ネットワークも例外ではなく、仮想マシンが接続する「ネットワークスイッチ」を用意することで、仮想マシンに対して物理ネットワークとの接続サービスを提供しています。
「New-VMSwitch」は仮想マシンに提供するネットワークスイッチ、すなわち仮想スイッチをHyper-V上で新規作成するコマンドレットです。
当然のことながら、仮想スイッチはGUI(グラフィカルユーザーインタフェース)の管理ツールである「Hyper-Vマネージャー」でも作成可能です。しかし、複数台のHyper-Vホストや、複数台からなるHyper-Vクラスタ内で統一した構成の仮想スイッチを作成するのであれば、PowerShellコマンドレットで自動化した方が問題が発生するリスクは抑えられるでしょう。そういった意味でも、Hyper-Vによる仮想化基盤を管理する場合には押さえておきたいコマンドレットです。
【注】New-VMSwitchは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットです。GUIツールの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、Windows PowerShellで「Enable-WindowsOptionalFeature」コマンドレットを実行して有効化します。
New-VMSwitch [オプション]
オプション | 意味 |
---|---|
-ComputerName | リモートHyper-Vホストに仮想スイッチを新規作成する場合にコンピュータ名を指定する。省略可能 |
-Name | 新規作成する仮想スイッチの名前を指定する |
-SwitchType | 外部ネットワーク接続以外の仮想スイッチを作成する際にタイプ(Internal〈内部〉/Private〈プライベート〉)を指定する。省略可能 |
-AllowManagementOS | 管理パーティションとネットワークアダプターを共有するかどうかを指定する。省略可能 |
-NetAdapterName | 外部ネットワーク接続用の物理ネットワークアダプター名を指定する。「-NetAdapterInterfaceDescription」オプションまたは「-SwitchType」オプション使用時には省略可能 |
-NetAdapterInterfaceDescription | 外部ネットワーク接続用の物理ネットワークアダプターのデバイス名を指定する。「-NetAdapterName」オプションまたは「-SwitchType」オプション使用時には省略可能 |
-MinimumBandwidthMode | 仮想スイッチの最小帯域幅の指定方式(Absolute/Default/None/Weight)を指定する。省略可能 |
-EnableIov | 仮想スイッチでシングルルートI/O仮想化(SR-IOV)を有効にするかどうかを指定する。省略可能 |
-EnableEmbeddedTeaming | スイッチ埋め込みチーミング(Switch Embedded Teaming〈SET〉)を使用するかどうかを指定する。省略可能 |
New-VMSwitchコマンドレットを必須オプションである「-Name」オプションと「-NetAdapterName」オプションだけを指定して実行すると、ローカルのHyper-V上に外部ネットワーク接続用の仮想スイッチを作成します(画面1)。なお、New-VMSwitchコマンドレットは管理者権限での実行が必要となります。
- New-VMSwitch -Name "External vSwitch" -NetAdapterName "イーサネット 2"
-NetAdapterNameオプションで指定するネットワークアダプター名は、画面1の通り、本連載第33回で紹介した「Get-NetAdapter」コマンドレットで確認できます。
新規作成した仮想スイッチは「Hyper-Vマネージャー」からはもちろん、本連載第124回で紹介した「Get-VMSwitch」コマンドレットでも確認できます。今回はHyper-Vマネージャーから確認しますが、以下の画面2のような仮想スイッチが作成されます。
管理パーティションとネットワークアダプターを共有したくない場合は、「-AllowManagementOS」オプションを追加して「$false」を指定することで、ネットワークアダプターを共有しない仮想スイッチを作成できます(画面3)。
「-NetAdapterInterfaceDescription」オプションを使用することで「Intel(R) PRO/1000 PT Dual Port Server Adapter」といったネットワークアダプターのデバイス名を指定して仮想スイッチを作成できますが(画面4)、コマンドレットが長くなる傾向があるので、-NetAdapterNameオプションの使用をお勧めします。
- New-VMSwitch -Name "External vSwitch" -NetAdapterInterfaceDescription "Intel(R) PRO/1000 PT Dual Port Server Adapter" -AllowManagementOS $false
New-VMSwitchコマンドレットは、既定では外部ネットワーク接続用仮想スイッチを作成しますが、「-SwitchType」オプションを併用して明示的に指定することで、内部ネットワーク接続仮想スイッチ、プライベートネットワーク接続仮想スイッチを作成できます(画面5)。内部ネットワーク接続仮想スイッチ、プライベートネットワーク接続仮想スイッチでは物理ネットワークアダプターを必要としないので-NetAdapterNameオプションや-NetAdapterInterfaceDescriptionオプションは不要となります。
- New-VMSwitch -Name "Internal vSwitch" -SwitchType Internal
-SwitchTypeオプションで「Private」を指定すれば、プライベートネットワーク接続仮想スイッチを作成できます。
Hyper-V環境において、物理ネットワーク接続を冗長化する場合は、「スイッチ埋め込みチーミング」(Switch Embedded Teaming〈SET〉)を使用します。SETが有効化された仮想スイッチを作成する場合は、「-EnableEmbeddedTeaming」オプションを併用します(画面6)。
- New-VMSwitch -Name "SET vSwitch" -NetAdapterName "イーサネット 2","イーサネット 3" -EnableEmbeddedTeaming $true -AllowManagementOS $false
複数のネットワークアダプターを使用してSETを作成する場合は、-NetAdapterNameオプションでSETを構成する全てのネットワークアダプターを指定します。
SETを有効化した仮想スイッチをHyper-Vマネージャーで確認すると、ネットワークアダプターを指定する箇所がグレーアウトされて設定変更不可となっています。このため、設定変更には別のコマンドレットを使用する必要があるので注意してください。
仮想マシンに接続した仮想ネットワークアダプターと仮想スイッチを組み合わせることで、ネットワークトラフィックのQoS(Quality of Service:サービスの品質)設定が可能です。前述の通り、仮想ネットワークアダプターとの組み合わせで実現するため、仮想スイッチ側でQoSを有効化する必要があります。
仮想スイッチ側の設定は、「-MinimumBandwidthMode」オプションを使用して最小帯域幅の指定方式を指定します。
オプション | 意味 |
---|---|
Absolute | 最小帯域幅を絶対値で指定可能にする。単位はbps |
None | 最小帯域幅制御を無効化する |
Weight | 帯域を割り当てる際の重み付けで指定可能とする。範囲は1~100 |
実際の値は仮想マシンの仮想ネットワークアダプター側で設定しますが、仮想ネットワークアダプターでの指定は仮想スイッチで指定した方式にのっとって実施する必要があります(画面7)。
- New-VMSwitch -Name "External vSwitch" -NetAdapterName "イーサネット 2" -MinimumBandwidthMode Weight -AllowManagementOS $false
「None」を指定した場合は、その仮想スイッチに接続した仮想ネットワークアダプターでQoS設定を実施しても、エラーが発生して設定できないので注意が必要です。なお、-MinimumBandwidthModeオプションを使用しなかった場合は、既定値である「Absolute」が設定されます。
「-EnableIov」は、仮想スイッチで「シングルルートI/O仮想化」(SR-IOV)を有効化し、仮想マシンのネットワークパフォーマンスを向上させるオプションです。
-EnableIovオプションは仮想スイッチ新規作成時にのみ有効化することが可能で、仮想スイッチ作成後はGUIの設定画面からもグレーアウトして有効化できません。したがって、既存の仮想スイッチでSR-IOVを有効化したい場合は、既存の仮想スイッチをいったん削除した上で、同名の仮想スイッチを新規作成する必要があります。SR-IOVの詳細は、以下の公式ドキュメントを参照してください。
Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
Server & Storage 險倅コ九Λ繝ウ繧ュ繝ウ繧ー