Azure Stack HCI (Hyper-Vクラスター)におけるVMの名称変更

# 概要
Azure Stack HCI上に構築するVMの名称はホスト名とは独立した名称として各所で設定されます。
例として、Hyper-VにおけるVMの名称、クラスターリソースとしての名称等で設定されます（以下、総称してリソース名と呼称）。
このリソース名を後から変更する場合の対応について、リソース名が使用される箇所と変更方法について確認していきます。
ツールとしては以下を確認・使用していきます。
- Windows Admin Center (WAC)
- Failover Cluster Manager (FCM)
- Hyper-V Manager
- Azure Stack HCIホストでのPowerShellコマンド

# 結論
1. Azure Stack HCI上に構築したVMの名称は以下で使用される
    - Hyper-V VMとしての名称
    - ClusterGroup名
        -  Cluster Resource (Virtual Machine)名
        -  Cluster Resource (Virtual Machine Configuration)名
    -  Cluster Shared Volume内のVMフォルダ名
    -  Cluster Shared Volume内のVMのvhd(x)ファイル名
1. 「Cluster Shared Volume内のVMのvhd(x)ファイル名」はVMの停止（再作成）無しには変更できない

# リソース名の使用箇所
まずは名称の使用されている箇所を確認します。
なお、画面キャプチャのクラスタ名は黒、VM名（リソース名）は赤でマスキングしています。
## Hyper-V VMとしての名称
- WACにおけるVM名
![wac_vm_name_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/d756d2f7-a087-7764-5263-c6f843ee1329.png)

- Hyper-V ManagerにおけるVM名
![hvm_vm_name_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/350a866e-0288-7f14-c3c6-219577f83e53.png)

- Get-VMコマンドの結果
![get-vm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/ca248f5c-00c5-3ff1-66b7-17b2a4d718a0.png)

## ClusterGroup名
- FCMにおける[Roles]名
![fcm_vm_name_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/717f3375-7908-0519-910c-0ff2c8c7d31f.png)

- Get-ClusterGroupコマンドの結果
![get-clustergroup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/462b9f09-c454-0bd4-26a2-a5f2647b4f89.png)

## Cluster Resource (Virtual Machine)名
- FCMの[Roles] -> [Virtual Machine]
![fcm_vm_name_3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/e5bec125-d9ac-54e9-baf8-fa0e5304c429.png)

- Get-ClusterResourceコマンドの結果 (Virtual Machineリソース)
![get-clusterresource_vm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/9a5dc0f4-5fb3-9656-622b-1a86d5c47ba9.png)

## Cluster Resource (Virtual Machine Configuration)名
- FCMの[Roles] -> [Virtual Machine Configuration]
![fcm_vm_name_3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/1f7635c7-5f90-d691-a5b4-109045b2e035.png)

- Get-ClusterResourceコマンドの結果 (Virtual Machine Configurationリソース)
![get-clusterresource_vmc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/dc2c92dd-921b-8a93-9981-284edebbe1ed.png)

## Cluster Shared Volume内のVMフォルダ名
![explorer_folder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/3f2fac1b-1b65-49c5-94f9-80bac51c4df4.png)

## Cluster Shared Volume内のVMのvhd(x)ファイル名
![explorer_vhd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/86e3cb47-c61d-023e-f4da-ff0ea2bc2e80.png)

# リソース名変更
それぞれの名称について変更していきます。
基本的にはAzure Stack HCIのメインの管理ツールであるWACを利用しますが、WACで非対応の操作は他のツールを利用します。
1. 【Hyper-V VMとしての名称】変更 from WAC
VM一覧のRenameからも変更が可能です。
    - 変更箇所：[Settings] -> [General] -> [Name]
    - VM状態：オンライン
    - 反映箇所：WAC、Hyper-V Manager、Get-VMコマンド
    ![wac_vm_name_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/95116958-9117-1144-c2ab-e2bd5b6c8593.png)

2. 【ClusterGroup名】変更 from FCM
    - 変更箇所：[Roles] -> [Properies] -> [General] -> [Name]
    - VM状態：オンライン
    - 反映箇所：Failover Cluster Manager (Roles)、Get-ClusterGroupコマンド
    ![fcm_vm_name_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/50cd4904-fb6a-1edb-289f-bac47745b41d.png)

3. 【Cluster Resource (Virtual Machine)名】変更 from FCM
当該Rolesを選択してFCM下部のResourcesタブからVirtual MachineリソースのPropertiesを開きます。
    - 変更箇所：[Roles] -> [Virtual Machine] -> [Properties] -> [General] -> [Name]
    - VM状態：オンライン
    - 反映箇所：Failover Cluster Manager (Virtual Machine)、Get-ClusterResourceコマンド (Virtual Machineリソース)
    ![fcm_vm_name_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/91571b76-a497-0834-7edd-b4738ad30c6d.png)

4. 【Cluster Resource (Virtual Machine Configuration)名】変更 from FCM
当該Rolesを選択してFCM下部のResourcesタブからVirtual Machine ConfigurationリソースのPropertiesを開きます。
    - 変更箇所：[Roles] -> [Virtual Machine Configration] -> [Properties] -> [General] -> [Name]
    - VM状態：オンライン
    - 反映箇所：Failover Cluster Manager (Virtual Machine Configuration)、Get-ClusterResourceコマンド (Virtual Machine Configurationリソース)
    ![fcm_vm_name_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/481267/ff577732-7f60-0186-89a1-78da8ea959df.png)

5. 【Cluster Shared Volume内のVMフォルダ名】変更 from WAC
フォルダ名の変更は設定値の変更操作ではおこなえないため、当該VMのファイルを別フォルダに移行することで変更します。
そのため、ストレージマイグレーション機能を利用します。
    - 変更内容：ストレージマイグレーションにおける移動先のボリューム内に変更後の名称のフォルダを作成しておき、ストレージマイグレーションを実行します。
    - VM状態：オンライン
    - 反映箇所：Cluster Shared Volume内のVMフォルダ名

6. 【Cluster Shared Volume内のVMのvhd(x)ファイル名】変更 from WAC, FCM, PowerShell
こちらも設定値の変更で対応できません。
VMの再作成（エクスポート⇒インポート）をおこなうことで強制的に変更します。
    - 変更内容：VMを停止し一度エクスポートします。その後エクスポートしたVMを削除し、エクスポートデータを元にVMをインポートして、クラスターに登録します。
    注意点として、VMインポート時にエラーが発生した場合はCompare-VMコマンドでインポート情報の修正が必要になります。私の環境ではvhdファイルのパス指定がエクスポート前のVMの情報になっていたため修正が必要でした。
    また、修正やインポート後のクラスター登録はWACでは現状対応していないようで、PowerShellやFCMでの操作が必要です。
    インポート時のエラー対応は以下のブログが参考になます。
    [Microsoft Japan Windows Technology Support Blog (Windows Server バックアップにて Hyper-V クラスターの仮想マシンのバックアップを取得する際の注意事項)](https://jpwinsup.github.io/blog/2021/05/21/FailoverClustering/ConfigurationAndManagement/vm-backup-restore/)
    - VM状態：**オフライン**
    - 反映箇所：Cluster Shared Volume内のVMのvhd(x)ファイル名

# まとめ
- 一度設定したリソース名を完全に変更するにはVMの再作成（停止）が発生するため、基本的には変更することの無いように決めて設定しましょう。
- 万が一変更が必要になった場合にはVMの停止可否等を踏まえて、vhdファイルやVMのフォルダ名を含めて変更するかどうかを判断することになるかと思います。