Windows Server 2025でHyper-V仮想スイッチの割り当てポートをTeamingさせる方法

Windows Server 2025でHyper-V仮想スイッチの割り当てポートをTeamingさせる方法

スポンサーリンク

久し振りにHyper-Vの検証環境を構築してみたのですが、仮想スイッチにTeamingアダプタを設定しようとしたところ、エラーが発生したので対処について備忘録として残そうと思います。

Windows Server 2025でHyper-V仮想スイッチの割り当てポートをTeamingさせる方法

仮想スイッチマネージャーから、サーバーマネージャーで作成したTeamingアダプタを指定したところ、「LBFOチームがHyper-V仮想スイッチにあたっちされていない可能性があります。」とエラーが発生し、仮想スイッチの作成に失敗します。

Learn about the features and functionalities removed or no longer developed in W…
learn.microsoft.com

どうもWindows Server 2022から、Hyper-V仮想スイッチにLBFOチームをバインドできなくなったようで、代わりにSwitch Embedded Teaming(SET)を介してバインドする必要があるようです。

Switch Embedded Teaming(SET)の作成

SETの作成はPowerShellからのみのサポートとのことなので、PowerShellでSETを作成する方法を下記に紹介します。

事前準備

#Teamingメンバーを確認する
PS C:\Users\Administrator> Get-NetAdapter
Name                      InterfaceDescription                    ifIndex Status       MacAddress          LinkSpeed
----                      --------------------                    ------- ------       ----------          ---------
イーサネット 3            HP NC550SFP Dual Port 10GbE Server A...      29 Disconnected XX-XX-XX-XX-XX-XX       0 bps
イーサネット 4            HP NC550SFP Dual Port 10GbE Server...#2      33 Disconnected XX-XX-XX-XX-XX-XX       0 bps
イーサネット 2            Marvell AQtion 10Gbit Network Adap...#2      14 Up           XX-XX-XX-XX-XX-XX     10 Gbps
イーサネット              Marvell AQtion 10Gbit Network Adapter        12 Up           XX-XX-XX-XX-XX-XX     10 Gbps
Team0                     Microsoft Network Adapter Multiplexo...       7 Up           XX-XX-XX-XX-XX-XX     20 Gbps

まずはSETのメンバNICを特定するために、Get-NetAdapterでサーバに接続されているNICの一覧を表示します。

今回はHP NC550 SFP Duak Port 10GbE Server Adapterを利用するので、「イーサネット 3」と「イーサネット 4」が対象となるので、このNICの名前(name)をメモしておきます。

SETの作成

続いて「イーサネット 3」と「イーサネット 4」がメンバのSETスイッチ「SETswitch」を作成するため、下記コマンドレットを実行します。

PS C:\Users\Administrator> New-VMSwitch -Name SETswitch -NetAdapterName "イーサネット 3","イーサネット 4" -EnableEmbeddedTeaming $true

Name      SwitchType NetAdapterInterfaceDescription
----      ---------- ------------------------------
SETswitch External   チーミングされたインターフェイス

成功すればスイッチ種別(SwitchType)が外部(External)の「SETswitch」が作成されます。

GUIからの設定変更は不可

Windows Server 2025でHyper-V仮想スイッチの割り当てポートをTeamingさせる方法

仮想スイッチマネージャーを確認すると、先ほど作成した「SETswitch」が表示されていることが確認できます。

ただし、仮想スイッチマネージャーから設定変更ができないため、もし設定変更する場合はPowerShellコマンドレットで設定する必要があります。

例)SETの設定パラメータ表示

まずはSETのパラメータを下記コマンドレットで表示します。

PS C:\Users\Administrator> Get-VMSwitchTeam -Name SETswitch|fl


Name                           : SETswitch
Id                             : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
NetAdapterInterfaceDescription : {HP NC550SFP Dual Port 10GbE Server Adapter, HP NC550SFP Dual Port 10GbE Server Adapter #2}
NetAdapterInterfaceGuid        : {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
TeamingMode                    : SwitchIndependent
LoadBalancingAlgorithm         : HyperVPort

例)ロードバランシングアルゴリズムの変更

PS C:\Users\Administrator> Set-VMSwitchTeam -Name SETswitch -LoadBalancingAlgorithm Direct

PS C:\Users\Administrator> Set-VMSwitchTeam -Name SETswitch -LoadBalancingAlgorithm HyperVPort

Teamingメンバの追加/削除

Teamingメンバを追加する場合は、下記コマンドレットを実行します。

#イーサネット 5とイーサネット 6をメンバに追加
PS C:\Users\Administrator> Add-VMSwitchTeamMember -VMSwitch SETswitch -NetAdapterName "イーサネット 5","イーサネット 6"

TeamingメンバからNICを削除する場合は、下記コマンドレットを実行します。

#イーサネット 5とイーサネット 6をメンバから削除
PS C:\Users\Administrator> Remove-VMSwitchTeamMember -VMSwitch SETswitch -NetAdapterName "イーサネット 5","イーサネット 6"

Teamingモードは今のところ「スイッチに依存しない」のみをサポート

SETを作成すると、デフォルトのTeamingモードが「スイッチに依存しない(TeamingMode:SwitchIndependent)」となっていたので、LACPに変更するため下記コマンドレットを実行しました。

PS C:\Users\Administrator> Set-VMSwitchTeam SETswitch -TeamingMode LACP
Set-VMSwitchTeam : パラメーター 'TeamingMode' をバインドできません。値 "LACP" を型 "Microsoft.HyperV.PowerShell.VMSwitchTeamingMode" に変換できません。エラー
: "識別子名 LACP は有効な列挙子名に一致しません。次のいずれかの列挙子名を指定して再試行してください:
SwitchIndependent"
発生場所 行:1 文字:41
+ Set-VMSwitchTeam SETswitch -TeamingMode LACP
+                                         ~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-VMSwitchTeam]、ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.HyperV.PowerShell.Commands.SetVMSwitchTeam

ところがTeamingModeの識別子にLACPは存在せず、SwitchIndependentしかないようです。

Use this topic to help manage Windows and Windows Server technologies with Windo…
learn.microsoft.com

Microsoft Learnを確認すると、現時点では「スイッチに依存しない(SwitchIndependent)」しかサポートしていないようです。

ちょい面倒くさいけど、引き続きHyper-VでもTeamingアダプタは利用可能

LBFOチームをHyper-V仮想スイッチにバインドできなくなり、代わりにSETの作成が必要になりました。

SETは現状GUIでは作成できないため、以前の手順とは少し変わってしまい面倒ではありますが、Hyper-Vを実運用で回す場合、可能な限りNICの冗長化は担保しておきたいところ。

少し面倒ではありますが、Windows Server 2022以降でHyper-V環境を構築する場合は、ぜひ本記事を参考にしてみてください。