本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-VMSwitchTeam」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、コンピュータ上で動作するHyper-Vの「スイッチ埋め込みチーミング」(Switch Embedded Teaming:SET)が有効化された仮想スイッチのSET関連情報を取得する「Get-VMSwitchTeam」コマンドレットです。
Hyper-Vの仮想マシンに対するネットワーク接続は、Hyper-Vの仮想スイッチを通じて提供されます。
これは本連載第124回の「Get-VMSwitch」コマンドレットをはじめとする仮想スイッチ関連のコマンドレット紹介の際に繰り返し述べてきたことですが、仮想スイッチと物理ネットワークアダプターが1対1の組み合わせである場合、物理ネットワークアダプターそのものや、接続されている物理スイッチ、または物理ネットワークアダプターと物理スイッチをつなぐ物理イーサネットケーブルに障害が発生すると、その物理ネットワークアダプターに接続されている仮想スイッチは物理ネットワークへの到達性を失います。
そうなると、その仮想スイッチに接続されている仮想マシンのネットワーク接続も失われ、仮想マシンのネットワーク断という形でシステムに影響を及ぼすことになります。
こうした単一点の障害による影響を回避するためには、ネットワーク接続を冗長化する必要があるのはいうまでもありません。
Hyper-Vでは、仮想スイッチの物理ネットワーク接続の冗長化手法として、スイッチ埋め込みチーミング(SET)が使用可能です。
【注】これまで、Hyper-Vにおける仮想スイッチのネットワークアダプター冗長化手法としては、「LBFO(Load Balancing and Failover)によるNICチーミング」も利用可能でした。しかし、「Windows Server 2022」でLBFOによるNICチーミングを仮想スイッチにアタッチすることは非推奨となり、推奨されるチーミング方式はSETのみとなりました。
Get-VMSwitchTeamは、Hyper-V上のSETが有効化された仮想スイッチの各種情報を取得するコマンドレットあり、Hyper-Vによる仮想化基盤を管理する場合には押さえておきたいコマンドレットになります。
【注】Get-VMSwitchTeamは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットとなります。GUIの「Windowsの機能の有効化」や「役割と機能の追加」からHyper-Vを有効化するか、PowerShellから「Enable-WindowsOptionalFeature」コマンドレットを使用して有効化します。
Get-VMSwitchTeam [オプション]
オプション | 意味 |
---|---|
-Name | 情報を取得するSETが有効化された仮想スイッチの名前を指定する。省略可能 |
-ComputerName | リモートのHyper-VホストのSETが有効化された仮想スイッチ情報を取得する場合にコンピュータ名を指定する。省略可能 |
オプションを指定せずにGet-VMSwitchTeamコマンドレットを実行すると、ローカルのHyper-Vホスト上にある全てのSETが有効化された仮想スイッチの基本的なSET関連情報を取得します(画面1)。なお、Get-VMSwitchTeamコマンドレットは管理者権限での実行が必要となります。
- Get-VMSwitchTeam
取得できるSET関連の基本情報は、SETを構成する物理ネットワークアダプターのデバイス名やチーミングモード、負荷分散アルゴリズムとなっており、仮想スイッチが複数存在する場合は、それぞれの仮想スイッチのSETに関する情報を表示します。
SETが有効化されていない仮想スイッチが存在した場合には、画面2のようにエラーが返され、情報を取得できません。
このような場合は、「-Name」オプションで明示的に仮想スイッチ名を指定することで、SETが有効化されていない仮想スイッチから返されるエラーを回避できます(画面3)。
- Get-VMSwitchTeam -Name "External TeamSwitch"
リモートのHyper-VホストにあるSETが有効化された仮想スイッチの情報を取得する場合は、「-ComputerName」オプションで情報取得したいHyper-Vホストのコンピュータ名を指定します(画面4)。
- Get-VMSwitchTeam -ComputerName host39
なお、本コマンドレットはあくまでも「SETに関連する情報」の取得であり、SETに関連しない仮想スイッチの情報は本連載第124回で紹介したGet-VMSwitchコマンドレットを使用します。
単純なコマンドレットの実行では、ネットワークアダプター名とネットワークアダプターのデバイス名、チーミングモード、負荷分散アルゴリズムが取得できます。それ以外の仮想スイッチのIDやGUID(グローバル一意識別子)などの情報を取得したい場合には、「Format-List」(FLと省略可能)を併用することで取得できます(画面5)。
- Get-VMSwitchTeam -Name "External TeamSwitch" | fl
Get-VMSwitchTeamコマンドレットを実行する際の注意点としては、既定の表示項目に「物理ネットワークアダプターのデバイス名」(NetAdapterInterfaceDescription)が含まれているため、複数のネットワークアダプターで構成されたSET有効化済みの仮想スイッチを表示すると、出力が非常に見づらくなります。
画面1~5までのコマンドレット実行画面は視認性を最優先し、あえて単体のネットワークアダプターで構成された仮想スイッチを使用しました。
SETの本来の目的である「冗長性」を確保する複数のネットワークアダプターで構成された、SETが有効化された仮想スイッチを参照してみます(画面6)。
画面6のように、物理ネットワークアダプターのデバイス名が複数表示されることによる表示文字数増で、既定のテーブル形式では表示が崩れてしまいます。また、別のパターンでは画面7のように、一見正常表示のようにも見えますが、表示されるべき情報が表示されないという状況が発生してしまいます。
このような表示では必要な情報が参照できないので、リスト形式(Format-List)を指定することをお勧めします(画面8)。
Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
Server & Storage 鬯ッ�ッ�ス�ョ�ス�ス�ス�ォ�ス�ス�ス�ス�ス�ス�ス�ェ鬯ョ�ッ陋ケ�コ�ス�サ郢ァ謇假スス�ス�ス�ソ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�コ鬯ョ�」陋ケ�ス�ス�ス�ス�オ鬮ォ�エ遶擾スオ�ス�コ�ス�キ�ス�ス�ス�ク�ス�ス�ス�キ�ス�ス�ス�ス�ス�ス�ス�ケ鬮ォ�エ髮懶ス」�ス�ス�ス�「�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ウ鬯ッ�ゥ陝キ�「�ス�ス�ス�「�ス�ス�ス�ス�ス�ス�ス�ァ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ュ鬯ッ�ゥ陝キ�「�ス�ス�ス�「鬮ォ�エ髮懶ス」�ス�ス�ス�「�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ウ鬯ッ�ゥ陝キ�「�ス�ス�ス�「�ス�ス�ス�ス�ス�ス�ス�ァ�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ス�ー