IBM Cloud: Windows Server Datacenter Edition(Hyper-V)を試してみた(1)

# 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を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/84cdf170-b3f4-f5c5-b553-0603050382ac.png)

- 物理サーバーで、10 GbpsのPort Speedで`User Managed`タイプのポート冗長性を選択。
    - IBM Cloudでは、物理NICの冗長化方式としてAutomatic(LACP)と、User Managed(利用者が自身で冗長化を行う方法）があるが、VMware環境と同様に、User Managedを利用する。
    - 物理サーバー注文時![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/8972f8dc-490f-f2cd-d760-aa87dd52d6cd.png)
    - プロビジョニング後の確認（Public側のインターフェースはセキュリティー対策上の理由で、この画面内では無効にしています）![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/694b4487-3786-7624-4a5a-cc7f08679223.png)
    - 参考: https://cloud.ibm.com/docs/bare-metal?topic=bare-metal-about-bm#bm-network-redundancy
    - もし間違ってAutomatic redundancy(LACP)で購入してしまった場合は、以下のModifyから、User Managedへ変更する。
        - Automatic(LACP)が選択されてしまっているため、Modifyボタンを押下 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/c94eece8-430c-c2ed-e9b0-f2cfb146f85b.png)
        - `10 Gbps Redundant Public & Private Network Uplinks`から、`10 Gbps Dual Public & Private Network Uplinks(Unbonded)`に変更。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/277360e4-758a-7ac1-5d24-308fffe459c0.png)


:::note alert
Automatic redundancy(LACP)を選択してWindows Serverを注文すると、TeamingされたNetwork Interface(LBFO)が構成されます。このLBFOを仮想スイッチに接続することは非推奨であり、仮想スイッチ構成時に選択すると以下のようにエラーになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/8568fc49-ab42-4a73-9e30-291862bcb7dc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d5481a4b-babb-0209-5598-0ab3e6147a26.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/0e42562d-548d-07b3-71a0-da3244c83712.png)

また、Teaming構成(LBFO)が残っている状態で、PrivateNetwork-A/PrivateNetwork-Bのようなアダプターを指定することもできません（エラーが発生します）。
:::

# 3. 事前構成確認

```txt:Hyper-V RequirementsがYesになっていることやNICの状況を確認。
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を追加する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/61b71495-f31a-161e-7055-1c57fe264feb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2001da92-8775-16a5-7e95-56149d8f2583.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/46a25440-83c4-d5c0-6bd8-82ae21989782.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/159029e4-4993-5837-5497-308b01deca99.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/02137a2b-4789-470c-1bab-8691b2efd38e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/eb0e0355-3d20-76ac-fe65-fff18c5b149f.png)
FeaturesにHyper-V管理ツールが追加されていることを確認。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/9535bb2b-5401-be81-229a-a5f51c213f24.png)
あとはNextを押していくのみ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/b52be7b5-8fd7-288c-1861-3ceab6911f2d.png)

なお、仮想スイッチは後から作成できるし、チーミングが必要なので、ここでは何も選択しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2ff87269-9804-1e45-4173-4e1e2d1d14e3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/55448f62-f4fb-08c4-0873-a6ba7b38a920.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/5eecdbba-d197-dcb6-6302-4ab849de68fa.png)
`Restart the destination server automatically if required`にチェックを入れる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/63cc1788-5dc6-4d08-1e0d-0578d6274141.png)
Installの開始。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/334b8732-5a51-8d5c-aed9-5667836be6ab.png)

以後、再起動が発生。

- 再起動後の導入画面![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e825319e-9080-d073-c742-f802e6e55623.png)
- インストールが完了すると、Hyper-Vというセクションが新たに作成されている。`Services`セクションにおいて、Hyper-V Virtual Machine Managementがrunning状態になっていることを確認。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/4753ac9e-0dd3-ef46-413f-6bc5c0522cc8.png)



# 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



```txt:構成確認
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
```




```txt:仮想スイッチの作成。コマンド実行時に、一瞬NW断があり、リモートデスクトップが切れる（自動再接続する）ので注意。
PS C:\Users\Administrator> New-VMSwitch -Name "PrivateExternal01" -NetAdapterName "PrivateNetwork-A","PrivateNetwork-B" -EnableEmbeddedTeaming $true 

Name              SwitchType NetAdapterInterfaceDescription
----              ---------- ------------------------------
PrivateExternal01 External   Teamed-Interface
```
```txt:仮想スイッチの構成確認
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アドレスは、この新しいネットワークアダプターに移行している。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e07d2c3d-5956-bf53-28d3-ad872b95f08e.png)


```
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![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/ca007a5c-20da-69e3-274f-b2dc8c34f052.png)
- 一番左のペインから対象サーバーを選択し、一番右のアクションからVirtual Switch Managerを選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/4111f77f-0b3e-61ef-7987-df86517c76e3.png)
- 詳細構成を確認しても、グレーアウトされていて確認できない。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/e678c0a6-695d-ac22-3bc0-ea8a22bfa04b.png)


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
```