WorkGroup Clusterを試す②【Hyper-V+ONTAP環境を構築】

## はじめに
この記事では、2024年5月段階ではプレビュー版であるWindows Server 2025の機能を検証した内容を記載します。
特に、現行のWindwosServer 2016や2019ではサポートされていなかった、**WorkGroup Cluster構築で構築したHyper-V環境でのライブマイグレーションの実施**について確認します。


[前回の記事](https://qiita.com/s_yosh1d/private/ecf2cb7ec698c9066494)で機能と役割の追加した内容から**WorkGroup ClusterのHyper-V環境を構成し、ライブマイグレーションの実行を試みます。** なお、Hyper-Vのデータストア部分にはONTAPを使用します。


<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/5d722056-78db-8b40-8a5e-bae8831824f4.png>


## 何をしたい？できる？
- Windows Server 2025 Insider PreviewのInstallを実施する
- Workgroup Cluster環境を作成し、Hyper-V環境でライブマイグレーションを試す
- ONTAPをHyper-Vのデータストアとする為の設定を行う


## 記事における環境情報
本記事では、以下の環境で実施した内容となります。
- ONTAP: 9.8
- OS: Windows Server 2025 

<img width="500" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/80354c3f-7a87-4eee-a93d-221a56ec2f16.png>


## WorkGroup ClusterのHyper-V環境を設定

### 1. Storageアクセス用及びHyper-V用のNetwork設定
本記事の環境では、Hyper-V上の仮想マシンとONTAPへのiSCSI接続に使う10GBのNetworkを共有で利用する為、まずはHyper-Vの設定から実施します。

前提となる複数のタグVLANの疎通ができるような10G側の物理Network Switch設定については、[過去の記事](https://qiita.com/s_yosh1d/items/ccc7ef0db00f10cb585c)を参照頂ければと思います。

**設定内容の概要図としては以下のような形**です。
(実際にはクラスタ構成なので2台分に設定を実施します)
<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/e36802a6-c118-d46c-37c0-9eeb9083a8dc.png>


#### 1-1. 仮想スイッチマネージャー設定
Hyper-Vマネージャを起動し、ホスト名を右クリックか画面右側の[仮想スイッチマネージャ]を選択します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/4e63cde7-fc11-142f-4f0f-d52929c90018.png>

立ち上がった画面で、[外部]=>[仮想スイッチの作成]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/db80b572-4cfb-db40-4044-5fa50c7cbe41.png>

**以下の図の赤色部分の作成を実施**します。
<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/3fa96877-c8d2-b5b4-7df2-96f329966092.png>



表示された画面で、任意の仮想Switch名を入力し、接続の種類を以下のように指定します。
**仮想スイッチ名はクラスタを構成するサーバーで合わせておきます。**
- 接続の種類は外部ネットワークを指定 (外部の機器と疎通を行う為)
- 利用Portは10GBのものを指定
- 管理オペレーティングシステムにこのネットワークアダプターの共有を許可にチェック
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/03cc5110-b06a-3765-ad2e-25fdc71f36dd.png>


作成されるホストの仮想NICはVLAN22を使って通信を実施したいので、
管理オペレーティングシステムの仮想LAN IDを有効にするにチェックを入れ、VLAN IDの指定を行います。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/3e463e51-ce94-53a3-2d4b-81b1dbf5b53c.png>


次に、仮想マシンのみが外部通信できるような仮想Switchの作成を実施します。
<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/0713ab9f-5c23-228c-73d1-1556a363cedd.png>


[仮想スイッチマネージャ]を選択し、[外部]=>[仮想スイッチの作成]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/db80b572-4cfb-db40-4044-5fa50c7cbe41.png>


表示された画面で、任意の仮想Switch名を入力し、接続の種類を以下のように指定します。
- 接続の種類は外部ネットワークを指定 (外部の機器と疎通を行う為)
- 利用Portは10GBのものを指定(先程指定していないPort)
- **管理ネットワークとの共有はしない**
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/2813dee8-3614-980b-63b7-e28613cb3353.png>

#### 1-2. ホストOSへのIP設定(10G Network)
ONTAPとiSCSI通信する為に、10GのPortに対してIPアドレスを付与します。
Hyper-V用に物理の10G Portは利用されてしまっているので、仮想スイッチ作成時に**管理ネットワークとの共有を指定する際に作成される仮想NICに対してIPの付与を実施します。**

ネットワークアダプターからIPを設定する際にはvEthernetという仮想NICを指定して実施します
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/6960c1c3-c8bf-14df-a9e6-a6ce906f5050.png>




### 2. ONTAP側でiSCSI用SVMの作成とLUNの作成
ONTAP + Hyper-VのTRにあるようなNASを利用した接続ではActiveDirectory環境を前提とした内容になっている為、**[過去の記事にある手順](https://qiita.com/s_yosh1d/items/b2ca28c542dfa6df0629)のような形で、Windows環境で400GBのLUNをiSCSIを利用して接続**します。

:::note info
現状ではONTAPのSMB利用時の推奨であるcontinuously-available利用はWorkGroup環境ではNGです
:::

```bash:
> cifs share properties add -vserver ps_vm_hyperv2 -share-name hyperv_ds03 -share-properties continuously-available

Error: command failed: Failed to modify CIFS share "hyperv_ds03". Reason: Cannot make share continuously available:
       CIFS server is in workgroup mode.
```

#### 2-1. 構成情報の確認
本記事の構成情報としては以下のような形です。

<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/2be3db24-d1b3-6451-99c4-87119c464f3b.png>

CLIでStorageの設定内容を確認します。
```bash:
# iscsiの設定
> iscsi show -vserver ps_vm_hyperv2

                 Vserver: ps_vm_hyperv2
             Target Name: iqn.1992-08.com.netapp:sn.XXXXXXXXXXXXXXXXXXXX:vs.133
            Target Alias: ps_vm_hyperv2
   Administrative Status: up
   
# ONTAPに作成したLUNの構成
> lun show -vserver ps_vm_hyperv2
Vserver   Path                            State   Mapped   Type        Size
--------- ------------------------------- ------- -------- -------- --------
ps_vm_hyperv2
          /vol/datastore/ds.lun           online  mapped   windows_2008
                                                                       400GB
ps_vm_hyperv2
          /vol/qrum/qrum.lun              online  mapped   windows_2008  2GB

# SVMのNetwork構成
> net int show -vserver ps_vm_hyperv2 -service-policy default-data-blocks
  (network interface show)
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
ps_vm_hyperv2
            iscsi01      up/up    172.16.22.13/24    ps-8300-cl-01 a0a-22  true
            iscsi02      up/up    172.16.22.14/24    ps-8300-cl-02 a0a-22  true
2 entries were displayed.
```

#### 2-2. iSCSIの接続状態の確認
```bash:
> iscsi session  show -vserver ps_vm_hyperv2
          Tpgroup        Initiator                        Initiator
Vserver   Name    TSIH   Name                   ISID      Alias
--------- ------- ---- ------------------------ --------- ---------------------
ps_vm_hyperv2
          iscsi01    1 iqn.1991-05.com.microsoft:ps-dl360g10-11.ps-sc.local
                                                40:00:01:37:00:01
                                                          -
ps_vm_hyperv2
          iscsi01    7 iqn.1991-05.com.microsoft:ps-dl360g10-12.ps-sc.local
                                                40:00:01:37:00:01
                                                          -
ps_vm_hyperv2
          iscsi02    4 iqn.1991-05.com.microsoft:ps-dl360g10-11.ps-sc.local
                                                40:00:01:37:00:03
                                                          -
ps_vm_hyperv2
          iscsi02    5 iqn.1991-05.com.microsoft:ps-dl360g10-12.ps-sc.local
                                                40:00:01:37:00:03
                                                          -
4 entries were displayed.

> iscsi connection   show -vserver ps_vm_hyperv2
             Tpgroup             Conn  Local           Remote          TCP Recv
Vserver      Name          TSIH  ID    Address         Address         Size
------------ ------------- ----- ----- --------------- --------------- --------
ps_vm_hyperv2
             iscsi01           1     1 172.16.22.13    172.16.22.10     2097152
ps_vm_hyperv2
             iscsi01           7     1 172.16.22.13    172.16.22.11     2097152
ps_vm_hyperv2
             iscsi02           4     1 172.16.22.14    172.16.22.10     2097152
ps_vm_hyperv2
             iscsi02           5     1 172.16.22.14    172.16.22.11     2097152
4 entries were displayed.
```


### 3. フェイルオーバークラスターの設定
認識させたLUNをCluster共有Volume (CSV) として利用したいので、WorkGroup Clusterの構築を実施します。

#### 3-1. 構成の検証を実施
フェイルオーバークラスターマネージャーを立ち上げ、右クリックから[構成の検証]を選択します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/acb31d55-2601-6950-1db2-71f6a498d9ee.png>

立ち上がった別画面で、クラスタ対象とするサーバを追加します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/ae910dde-2b48-d93b-82da-c7e063d92e5d.png>

テストのオプションを選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/01c02d5e-0468-93d8-ad4c-d091e880531e.png>

[次へ]を選択してテストを実施します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/50848b94-3ad7-6091-dd08-708babdee65a.png>

内容を確認し、[完了]をクリックします。

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/714872db-f559-d19f-6a62-37720e0e8598.png>


:::note info
**Active Directory 構成の検証についての警告が出ますが、WokGroup Clusterを作成したいので無視します。**
:::



#### 3-2. クラスタの作成を実施
フェイルオーバークラスターマネージャーを立ち上げ、右クリックから[クラスターの作成]を選択します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/e0bc4c3f-9365-843f-cb7f-77aa182dc52b.png>

立ち上がった別画面で、クラスタ対象とするサーバを追加します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/dc4ee107-a807-3a4e-3573-50acb3dc0707.png>

クラスタ名とIPの設定を実施します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/e8884778-0bf2-de04-f603-288e191ae997.png>

内容を確認してクラスタの作成を実施します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/d44e2173-d06a-6a4a-400a-e0594d1d6330.png>

#### 3-3. LUNのクラスタ記憶域への追加とCSV化
ONTAP上に作成して接続したLUNをクラスタの記憶域へ追加します。
以下の2つ分を追加します
- クォーラム用の2GBのDisk 
- Cluster共有Volume (CSV)として利用するHyper-Vのデータストア用の400GBのDisk

<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/cfdc67a1-3312-b642-9818-b02ac9d01722.png>

表示された画面で対象のDiskを追加します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/260a19b1-3a9f-22af-e8a2-a1c4789620a0.png>

Hyper-Vのデータストア用のDiskを右クリックして、[クラスター共有ボリュームへの追加]を選択します。

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/cbfdf9b6-0a84-7da0-509e-64a789b3243a.png>

CSV化が完了すると、CドライブのClusterStorage以下に接続されます。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/acae31f0-80f2-a0b8-73fb-1fc26514747d.png>




#### 3-4. クォーラムの設定を実施

クラスタ名を右クリックし、[他のアクション]=>[クラスタークォーラム設定の構成]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/d192608e-d0b1-202e-1b48-8d84551ed99d.png>

表示された画面で[クォーラム監視を選択する]を指定します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/cc9bd858-5be9-9c35-d8dc-c35affd50a46.png>

[ディクス監視を構成する]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/78509954-5f48-3acb-7f67-2a754ea5520d.png>

クォーラムとして使うディスクを指定します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/910502b0-9339-d6f4-3540-034504e07c58.png>

作成を実施します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/3763e393-7e78-fd53-5974-0c56ac086a48.png>


### 4. Hyper-Vの設定と仮想マシンの作成

#### 4-1. Hyper-Vの設定
Hyper-Vマネージャを起動して、[操作]=>[Hyper-Vの設定]を指定します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/ca96c8fd-640a-580a-b251-63b9ed07e843.png>

立ち上がった画面で、以下の2つについてCSVの領域を指定します。
- 仮想ハードディスク
- 仮想マシン
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/d1209d5e-022f-31bf-7e71-4ebb406261e7.png>

仮想マシンへの接続をクラスタ対象の両サーバから実施できるようにする為に
WinRM の TrastedHosts にホストを追加を行います。

```powershell:
# PS-DL360G10-11側のPowerShellで実施
> Set-Item WSMan:\localhost\Client\TrustedHosts -Value PS-DL360G10-12.ps-sc.local

WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらのコンピューターに資格情報を送信する可
能性があります。この一覧を変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
```
Hyper-Vマネージャにサーバを追加する為に、[Hyper-Vマネージャ]を右クリックし[サーバーに接続]を選択します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/7031157f-84f4-aa17-9937-3d337c4af145.png>
立ち上がった画面で、追加するサーバを入力します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/92a1ec31-25dc-d9b9-ab58-37dc9333e44b.png>
追加されている事を確認します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/45a0e680-b873-2445-c7af-d919e10250c3.png>



#### 4-2. 仮想マシンの作成
ライブマイグレーションを試す為に、仮想マシンの作成を実施します。
作成後のイメージとしては以下のような形になります。

<img width="600" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/fd5498cd-2f95-9659-eb4e-3dd348cdb533.png>

本記事ではHyper-Vマネージャから仮想マシンの作成を実施し、後ほどクラスタへの登録を行います。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/82d8bd71-a78a-b550-bdec-cc002e25fb7b.png>

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/d3e8c608-e533-64f3-b0a1-b217bbee5f6a.png>

マイグレーション中に仮想マシン上でping疎通が切れない事を確認する為、本記事ではVLAN22の通信ができる形で作成します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/61b70f00-26d9-e958-e4d2-75d6602663ad.png>

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/8b4979d0-756e-ef4d-24ec-8f5df83f3211.png>

仮想マシンにOSのInstall+IPの設定を行うと以下のように疎通が確認できるようになります。

<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/4099eef5-06be-5e94-d956-66bbd347ed85.png>


### 5. 仮想マシンのクラスタへの登録とライブマイグレーション実施
#### 5-1. 仮想マシンの登録
フェイルオーバークラスターマネージャを起動し、[役割]を右クリックし[役割の構成]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/9b0eadf7-ef99-e7d4-b183-f2152961098f.png>

立ち上がった画面で、仮想マシンを選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/8457faf0-00c1-bd9f-1046-f4768d86a6aa.png>

クラスタ登録を行う仮想マシンを選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/cfc17285-756b-25c5-b52a-951f903f0f62.png>

正常に登録されたことを確認します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/e8399e79-a2c1-9c5f-e227-230a91c84a77.png>

#### 5-2. ライブマイグレーションの実施
フェイルオーバークラスターマネージャで役割をクリックし、仮想マシン一覧を表示させます。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/12ebfe01-17a4-b765-cb52-7927591089f6.png>

ライブマイグレーションの対象とする仮想マシンを右クリックし、[移動]=>[ライブマイグレーション]=>[ノードの選択]を選択します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/201e748d-cc46-3846-ade9-fdb253e73e3b.png>

仮想マシンの移動対象を選択します。
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/df500c60-63a4-312b-83c1-209cb40edc36.png>

移動が完了している事を確認します。
<img width="450" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/5439b3a3-0258-1862-15d7-2f32594e8e15.png>

また、ライブマイグレーション中に仮想マシンでpingを実行しても特に遅延は見られない事が確認できます。
(本記事の環境では20秒程度で移動完了)
<img width="400" alt="qiita-square" src=https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1268577/81d2965b-ed3c-22bf-3b32-cdcc28557754.png>



## 参考及びリンク
[【今から覚えるONTAPの操作】iSCSI用のSVMを作成する](https://qiita.com/s_yosh1d/items/b2ca28c542dfa6df0629)

[Microsoft Hyper-V over SMB 3.0 with ONTAP: Best Practice](https://www.netapp.com/media/16334-tr-4172.pdf)

[ワークグループ可用性グループを構成する](https://learn.microsoft.com/ja-jp/azure/azure-sql/virtual-machines/windows/availability-group-clusterless-workgroup-configure?view=azuresql)

[Workgroup and Multi-domain clusters in Windows Server 2016](https://techcommunity.microsoft.com/t5/failover-clustering/workgroup-and-multi-domain-clusters-in-windows-server-2016/ba-p/372059)

[WorkGroup Clusterを試す①【Windows Server 2025 Insider Preview Install】](https://qiita.com/s_yosh1d/private/ecf2cb7ec698c9066494)