1. はじめに
VMware by Broadcomによるライセンス価格変更により、vSphere以外のハイパーバイザー環境の検討をしている人もいるかもしれない。IBM Cloud上では、物理サーバー+Windows Server Datacenter Edition(Hyper-V)も利用できるので、本稿で試してみた。
今回は仮想スイッチを作成するところまでを実施。
2. サーバーのプロビジョニング
-
Bare Metal Server for Classicにて、Windows Server 2022 Data Center Editionを選択。
-
物理サーバーで、10 GbpsのPort Speedで
User Managed
タイプのポート冗長性を選択。- IBM Cloudでは、物理NICの冗長化方式としてAutomatic(LACP)と、User Managed(利用者が自身で冗長化を行う方法)があるが、VMware環境と同様に、User Managedを利用する。
- 物理サーバー注文時
- プロビジョニング後の確認(Public側のインターフェースはセキュリティー対策上の理由で、この画面内では無効にしています)
- 参考: https://cloud.ibm.com/docs/bare-metal?topic=bare-metal-about-bm#bm-network-redundancy
- もし間違ってAutomatic redundancy(LACP)で購入してしまった場合は、以下のModifyから、User Managedへ変更する。
3. 事前構成確認
PS C:\Users\Administrator> systeminfo
Host Name: BMSBLK01
OS Name: Microsoft Windows Server 2022 Datacenter
OS Version: 10.0.20348 N/A Build 20348
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Server
OS Build Type: Multiprocessor Free
Registered Owner: NetworkLayer
Registered Organization: NetworkLayer
Product ID: 00454-60000-00001-AA268
Original Install Date: 4/17/2024, 11:27:08 PM
System Boot Time: 4/17/2024, 9:07:13 AM
System Manufacturer: Supermicro
System Model: SYS-6029U-E1CR4T
System Type: x64-based PC
Processor(s): 2 Processor(s) Installed.
[01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2100 Mhz
[02]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2100 Mhz
BIOS Version: American Megatrends Inc. 4.0, 8/11/2023
Windows Directory: C:\windows
System Directory: C:\windows\system32
Boot Device: \Device\HarddiskVolume1
System Locale: en-us;English (United States)
Input Locale: en-us;English (United States)
Time Zone: (UTC+09:00) Osaka, Sapporo, Tokyo
Total Physical Memory: 65,187 MB
Available Physical Memory: 61,056 MB
Virtual Memory: Max Size: 74,915 MB
Virtual Memory: Available: 71,234 MB
Virtual Memory: In Use: 3,681 MB
Page File Location(s): C:\pagefile.sys
Domain: WORKGROUP
Logon Server: \\BMSBLK01
Hotfix(s): 3 Hotfix(s) Installed.
[01]: KB5036613
[02]: KB5036909
[03]: KB5037023
Network Card(s): 4 NIC(s) Installed.
[01]: Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T
Connection Name: PrivateNetwork-A
DHCP Enabled: No
IP address(es)
[01]: 10.192.27.6
[02]: fe80::efe6:de67:c6e:ef6c
[02]: Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T
Connection Name: PublicNetwork-A
Status: Media disconnected
[03]: Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T
Connection Name: PublicNetwork-B
Status: Media disconnected
[04]: Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T
Connection Name: PrivateNetwork-B
DHCP Enabled: Yes
DHCP Server: 255.255.255.255
IP address(es)
[01]: 169.254.247.205
[02]: fe80::9f50:e0cc:32f5:1dae
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
4. Hyper-Vの有効化
Server ManagerのRoles and Features設定にて、Hyper-Vを追加する。
FeaturesにHyper-V管理ツールが追加されていることを確認。
あとはNextを押していくのみ。
なお、仮想スイッチは後から作成できるし、チーミングが必要なので、ここでは何も選択しない。
Restart the destination server automatically if required
にチェックを入れる。
Installの開始。
以後、再起動が発生。
- 再起動後の導入画面
- インストールが完了すると、Hyper-Vというセクションが新たに作成されている。
Services
セクションにおいて、Hyper-V Virtual Machine Managementがrunning状態になっていることを確認。
5. 仮想スイッチの作成
Windows 2022 Data Center Editionであっても、仮想スイッチで複数の物理NICを選択して冗長化構成をUIから実施はできない(UIから構成できるのは、物理NICを選択しないPrivate型/Internal型仮想スイッチや、物理NICを1つだけ選択するExternal型仮想スイッチのみのようです)。
同一ホスト上に存在している仮想マシン間の接続 | 仮想マシンとホスト間の接続 | 仮想マシンと外部サーバーとの間の接続 | |
---|---|---|---|
Private | 可能 | 不可 | 不可 |
Internal | 可能 | 可能 | 不可 |
External | 可能 | 可能 | 可能 |
よって、CLIを利用して仮想スイッチを作成する。
参考ドキュメント
- https://learn.microsoft.com/ja-jp/powershell/module/hyper-v/new-vmswitch?view=windowsserver2022-ps
- https://learn.microsoft.com/ja-jp/powershell/module/hyper-v/set-vmswitchteam?view=windowsserver2022-ps
PS C:\Users\Administrator> Get-NetLbfoTeam
(NBFOチーミングが存在してないので何も返さない)
PS C:\Users\Administrator> Get-VMSwitch
(仮想スイッチが存在しないので何も返さない)
PS C:\Users\Administrator> Get-VMSwitchTeam
(仮想スイッチが存在しないので何も返さない)
PS C:\Users\Administrator> Get-Netadapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
PublicNetwork-A Intel(R) Ethernet Controller X710/...#2 9 Disconnected 3C-EC-EF-1C-4B-4F 10 Gbps
PrivateNetwork-A Intel(R) Ethernet Controller X710/X5... 7 Up 3C-EC-EF-1C-4B-4E 10 Gbps
PrivateNetwork-B Intel(R) Ethernet Controller X710/...#4 6 Up 3C-EC-EF-1C-4B-50 10 Gbps
PublicNetwork-B Intel(R) Ethernet Controller X710/...#3 4 Disconnected 3C-EC-EF-1C-4B-51 10 Gbps
PS C:\Users\Administrator> Get-Netadapter privateNetwork-A | fl
Name : PrivateNetwork-A
InterfaceDescription : Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T
InterfaceIndex : 7
MacAddress : 3C-EC-EF-1C-4B-4E
MediaType : 802.3
PhysicalMediaType : 802.3
InterfaceOperationalStatus : Up
AdminStatus : Up
LinkSpeed(Gbps) : 10
MediaConnectionState : Connected
ConnectorPresent : True
VlanID : 0
DriverInformation : Driver Date 2020-06-26 Version 1.12.177.0 NDIS 6.84
PS C:\Users\Administrator> Get-Netadapter privateNetwork-B | fl
Name : PrivateNetwork-B
InterfaceDescription : Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #4
InterfaceIndex : 6
MacAddress : 3C-EC-EF-1C-4B-50
MediaType : 802.3
PhysicalMediaType : 802.3
InterfaceOperationalStatus : Up
AdminStatus : Up
LinkSpeed(Gbps) : 10
MediaConnectionState : Connected
ConnectorPresent : True
VlanID : 0
DriverInformation : Driver Date 2020-06-26 Version 1.12.177.0 NDIS 6.84
PS C:\Users\Administrator> New-VMSwitch -Name "PrivateExternal01" -NetAdapterName "PrivateNetwork-A","PrivateNetwork-B" -EnableEmbeddedTeaming $true
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
PrivateExternal01 External Teamed-Interface
PS C:\Users\Administrator> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
PrivateExternal01 External Teamed-Interface
PS C:\Users\Administrator> Get-VMSwitch | fl
Name : PrivateExternal01
Id : 109d6771-affd-40e4-896f-d2f5784c3803
Notes :
Extensions : {Microsoft Windows Filtering Platform, Microsoft NDIS Capture}
BandwidthReservationMode : Absolute
PacketDirectEnabled : False
EmbeddedTeamingEnabled : True
AllowNetLbfoTeams : False
IovEnabled : False
SwitchType : External
AllowManagementOS : True
NetAdapterInterfaceDescription : Teamed-Interface
NetAdapterInterfaceDescriptions : {Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T, Intel(R) Ethernet
Controller X710/X557-AT 10GBASE-T #4}
NetAdapterInterfaceGuid : {63562bd2-a073-4d9a-b284-d37d35a00261,
55dc5afd-d3ab-4500-aaf3-c63f45e00cc6}
IovSupport : True
IovSupportReasons :
AvailableIPSecSA : 0
NumberIPSecSAAllocated : 0
AvailableVMQueues : 516096
NumberVmqAllocated : 0
IovQueuePairCount : 766
IovQueuePairsInUse : 16
IovVirtualFunctionCount : 0
IovVirtualFunctionsInUse : 0
PacketDirectInUse : False
DefaultQueueVrssEnabledRequested : True
DefaultQueueVrssEnabled : True
DefaultQueueVmmqEnabledRequested : True
DefaultQueueVmmqEnabled : True
DefaultQueueVrssMaxQueuePairsRequested : 16
DefaultQueueVrssMaxQueuePairs : 8
DefaultQueueVrssMinQueuePairsRequested : 1
DefaultQueueVrssMinQueuePairs : 1
DefaultQueueVrssQueueSchedulingModeRequested : StaticVrss
DefaultQueueVrssQueueSchedulingMode : StaticVrss
DefaultQueueVrssExcludePrimaryProcessorRequested : False
DefaultQueueVrssExcludePrimaryProcessor : False
SoftwareRscEnabled : True
RscOffloadEnabled : False
BandwidthPercentage : 10
DefaultFlowMinimumBandwidthAbsolute : 1000000000
DefaultFlowMinimumBandwidthWeight : 0
CimSession : CimSession: .
ComputerName : BMSBLK01
IsDeleted : False
DefaultQueueVmmqQueuePairs : 8
DefaultQueueVmmqQueuePairsRequested : 16
PS C:\Users\Administrator> Get-VMSwitchTeam
Name NetAdapterInterfaceDescription
---- ------------------------------
PrivateExternal01 {Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T, Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T...
PS C:\Users\Administrator> Get-VMSwitchTeam | fl
Name : PrivateExternal01
Id : 109d6771-affd-40e4-896f-d2f5784c3803
NetAdapterInterfaceDescription : {Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T, Intel(R) Ethernet Controller
X710/X557-AT 10GBASE-T #4}
NetAdapterInterfaceGuid : {63562bd2-a073-4d9a-b284-d37d35a00261, 55dc5afd-d3ab-4500-aaf3-c63f45e00cc6}
TeamingMode : SwitchIndependent
LoadBalancingAlgorithm : HyperVPort
また、これによりvEthernet (PrivateExternal01)
というHyper-V用のネットワークアダプターが作成されており、元々PrivateNetwork-A
に付与されていたIPアドレスは、この新しいネットワークアダプターに移行している。
PS C:\Users\Administrator> Get-Netadapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
PublicNetwork-A Intel(R) Ethernet Controller X710/...#2 9 Disconnected 3C-EC-EF-1C-4B-4F 10 Gbps
PrivateNetwork-A Intel(R) Ethernet Controller X710/X5... 7 Up 3C-EC-EF-1C-4B-4E 10 Gbps
PrivateNetwork-B Intel(R) Ethernet Controller X710/...#4 6 Up 3C-EC-EF-1C-4B-50 10 Gbps
vEthernet (PrivateExte... Hyper-V Virtual Ethernet Adapter 14 Up 3C-EC-EF-1C-4B-4E 10 Gbps
PublicNetwork-B Intel(R) Ethernet Controller X710/...#3 4 Disconnected 3C-EC-EF-1C-4B-51 10 Gbps
PS C:\Users\Administrator> Get-NetIPConfiguration
InterfaceAlias : vEthernet (PrivateExternal01)
InterfaceIndex : 14
InterfaceDescription : Hyper-V Virtual Ethernet Adapter
NetProfile.Name : Unidentified network
IPv4Address : 10.192.27.6
IPv6DefaultGateway :
IPv4DefaultGateway :
DNSServer : 10.0.80.11
10.0.80.12
InterfaceAlias : PublicNetwork-B
InterfaceIndex : 4
InterfaceDescription : Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #3
NetAdapter.Status : Disconnected
InterfaceAlias : PublicNetwork-A
InterfaceIndex : 9
InterfaceDescription : Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #2
NetAdapter.Status : Disconnected
UI上でも確認可能だが、詳細は確認できない。
- Tools -> Hyper-V Manager
- 一番左のペインから対象サーバーを選択し、一番右のアクションからVirtual Switch Managerを選択。
- 詳細構成を確認しても、グレーアウトされていて確認できない。
Public側も同様に仮想スイッチを作成する(NW的にdisconnected状態でも設定自体は可能)。
PS C:\Users\Administrator> New-VMSwitch -Name "PublicExternal01" -NetAdapterName "PublicNetwork-A","PublicNetwork-B" -EnableEmbeddedTeaming $true
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
PublicExternal01 External Teamed-Interface
PS C:\Users\Administrator> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
PrivateExternal01 External Teamed-Interface
PublicExternal01 External Teamed-Interface
PS C:\Users\Administrator> Get-VMSwitchTeam
Name NetAdapterInterfaceDescription TeamingMode LoadB
alanc
ingAl
gorit
hm
---- ------------------------------ ----------- -----
PrivateExternal01 {Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T, Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #4} SwitchIndependent Hy...
PublicExternal01 {Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #2, Intel(R) Ethernet Controller X710/X557-AT 10GBASE-T #3} SwitchIndependent Hy...
PS C:\Users\Administrator> Get-Netadapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
PublicNetwork-A Intel(R) Ethernet Controller X710/...#2 9 Disconnected 3C-EC-EF-1C-4B-4F 10 Gbps
PrivateNetwork-A Intel(R) Ethernet Controller X710/X5... 7 Up 3C-EC-EF-1C-4B-4E 10 Gbps
PrivateNetwork-B Intel(R) Ethernet Controller X710/...#4 6 Up 3C-EC-EF-1C-4B-50 10 Gbps
vEthernet (PrivateExte... Hyper-V Virtual Ethernet Adapter 14 Up 3C-EC-EF-1C-4B-4E 10 Gbps
PublicNetwork-B Intel(R) Ethernet Controller X710/...#3 4 Disconnected 3C-EC-EF-1C-4B-51 10 Gbps
vEthernet (PublicExter... Hyper-V Virtual Ethernet Adapter #2 11 Up 3C-EC-EF-1C-4B-4F 10 Gbps
PS C:\Users\Administrator> Get-NetIPConfiguration
InterfaceAlias : vEthernet (PublicExternal01)
InterfaceIndex : 11
InterfaceDescription : Hyper-V Virtual Ethernet Adapter #2
NetProfile.Name : Unidentified network
IPv4Address : 169.254.184.26
IPv6DefaultGateway :
IPv4DefaultGateway :
DNSServer : fec0:0:0:ffff::1
fec0:0:0:ffff::2
fec0:0:0:ffff::3
InterfaceAlias : vEthernet (PrivateExternal01)
InterfaceIndex : 14
InterfaceDescription : Hyper-V Virtual Ethernet Adapter
NetProfile.Name : Unidentified network
IPv4Address : 10.192.27.6
IPv6DefaultGateway :
IPv4DefaultGateway :
DNSServer : 10.0.80.11
10.0.80.12