📘

Azure Stack HCI を Hyper-V VM として構築する

2024/06/07に公開

TL;DR

  • Hyper-V VM で Azure Stack HCI を構築し隊
  • スクリーンショットいっぱいでわかりやすく
  • 注意点がいっぱいあるので注意

はじめに

VMware の Broadcom 買収に伴うもろもろにより、Azure Stack HCI の注目度が上がってきてるように思います。
ということで、Azure Stack HCI の検証環境を構築したいみなさまに向けて、Hyper-V VM での構築例をご紹介します!

デプロイの前提条件

Azure Stack HCI にはハードウェア、ネットワークなど Azure Stack HCI バージョン 23H2 をデプロイするための前提条件 があり、サポートを受けるためにはこれらを満たす必要があります。
ただ、今回は検証環境なので、そういうものは放っておいて、とりあえず Azure Stack HCI で VM が立てられればいいだろう、くらいの最小要件を目指していきます。

事前準備

Active Directory の準備

さすが Microsoft 製品だなと思わせますが、Azure Stack HCI は Active Directory が必要です。
内部的に Windows Server Failover Cluster (WSFC) が使われていることなどが理由かと考えています。
Azure Stack HCI バージョン 23H2 デプロイ用に Active Directory を準備する を参考に、専用の OU とユーザーを作成しておきます。

Azure Stack HCI の ISO ファイルのダウンロード

Azure Stack HCI の ISO ファイルが必要になるので、Azure Stack HCI バージョン 23H2 ソフトウェアをダウンロードする を参考にして、ダウンロードしておきます。

Hyper-V VM を立てる

ということで、Hyper-V VM を作成していきましょう。
Hyper-V Manager から設定可能なものがほとんどですが、一部は PowerShell での設定が必要です。

Hyper-V VM を立てる

まずは全体の外側というか、Hyper-V VM 自体を作ります。

  • Name

    適当にどうぞ。

  • Generation

    特にこだわりがなければ Generation 2 でよいです。

  • Memory

    システム要件としては 32GB です。Azure Stack HCI 上に VM を構築しなくてもよいのであれば 14GB くらいでも動いてる気がします。

  • Network

    後でインターネットに出れる必要があるので NAT とかなんでもいいんですけどつなげておきます。

  • Disk

    システム要件としては 200GB くらいだった気がするので、キリのよい 256GB にしておきます。

  • Installation Options

    別途ダウンロードしておいた Azure Stack HCI の iso を参照しておきます。

  • Summary

    もろもろ確認して作成しましょう。

Hyper-V VM のカスタマイズ - Hyper-V Manager

最初のウィザードでは設定できないものがいくつかあるので、作成後、初回起動前にカスタマイズします。
もろもろの内容をセットしたら、「Apply」を押して反映します。

  • Security

    なんとなく vTPM 有効化しておきます。

  • Processor

    初期状態では 1 vCPU になるかと思いますが、とても動くものではないので適当に増やしておきます。

  • SCSI Controller

    500GB 以上のディスクが 2 本必要になるので、キリのよい 512GB のディスクを 2 つ作成してくっつけておきます。
    まず、「Hard Drive」が選択されている状態で、右下の「Add」をクリックします。

ここでは「New」をクリックします。

ウィザードが開くので適当に進めます。





  • Network Adapter - Advanced Features

    「Enable MAC address spoofing」 と「Enable device naming」を有効化しておきます。


  • Integration Services

    Guest services を有効化しておきます。

  • Checkpoints

    好みの問題ですが、なんかあんまり好きではないので無効化しておきます。

Hyper-V VM のカスタマイズ - PowerShell

Nested Virtualization (入れ子になった仮想化) を有効化したいのですが、Hyper-V Manager からは設定できないので PowerShell で設定します。

Set-VMProcessor -VMName <VirtualMachine> -ExposeVirtualizationExtensions $true

Azure Stack HCI OS をインストールする

Azure Stack HCI バージョン 23H2 オペレーティング システムをインストールする を参考にいい感じにやっていきます。

最後に以下の PowerShell を実行する箇所があります。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

が、どうも足りないっぽいので以下の PowerShell も追加で実行しておきます。

Install-WindowsFeature -Name Failover-Clustering -IncludeAllSubFeature -IncludeManagementTools

Arc に登録する

サーバーを登録し、Azure Stack HCI バージョン 23H2 デプロイのアクセス許可を割り当てる を参考にいい感じに。

Azure Stack HCI をデプロイ

いい言い方が分からないですが、さっきまでの手順はハードウェアへの OS のインストール、Arc への登録、という感じで、ここで初めて Azure Stack HCI として使えるように Azure Resource Bridge (ARB) など含めて準備が整う感じです。
Azure portalを使用して Azure Stack HCI バージョン 23H2 システムをデプロイする の手順を踏めば大体大丈夫です。

進捗状況は Azure Stack HCI > Settings > Deployments から確認ができます。

トラブルシュートに役立つかも情報

  • Azure Stack HCI にリモートからアクセスする前の準備

    管理者として実行している PowerShell から実施します。なんかローカルで IP アドレスの許可リストを持っている感じっぽい。-Concatenate を入れないと元の内容と置き換わっちゃうので注意します。

Set-Item wsman:\localhost\Client\TrustedHosts 192.168.11.201 -Concatenate
  • Azure Stack HCI にリモートからアクセス
Enter-PSSession -ComputerName 192.168.11.201 -Credential administrator

Azure Stack HCI としてのデプロイが完了した後には、アカウント名が変わるので注意します。

Enter-PSSession -ComputerName 192.168.11.201 -Credential asbuiltinadmin
  • Arc としての接続確認

    Connected Machine agent に様子を伺います。

azcmagent show
  • 既定でのメモリの使いっぷり

    名前からして Azure Stack HCI の control plane 的な VM が動いており、8GB のメモリを割り当てられています。そのほかに Azure Stack HCI OS として利用している分を考えると、14GB くらいは必要そうです。実際、20GB を全体として割り当てて Azure Stack HCI を構成したのち、8GB のメモリを割り当てた Azure Stack HCI VM はメモリ不足で起動しませんでした。

> Get-VM

Name                                     State   CPUUsage(%) MemoryAssigned(M) Uptime           Status             Version
----                                     -----   ----------- ----------------- ------           ------             -------
xxxxxxxxxxxxxxx-control-plane-0-111ea396 Running 9           8192              21:53:11.1770000 Operating normally 11.2
  • Azure Stack HCI のデプロイにおいて「Create the cluster」で止まる

    以下の PowerShell コマンドの実行が足りていないかもしれません。docs には今のところ書いてないのですが、入れると動くのでとりあえずはい。

Install-WindowsFeature -Name Failover-Clustering -IncludeAllSubFeature -IncludeManagementTools
  • Azure Stack HCI のデプロイにおいて「Deploy Arc infrastructure components」で止まる

    たぶんここが一番の難所というか、純粋に時間がかかります。手元の結果を見ていると、1h ほどかかることもありそうです。じっくり待っていてください。

  • Azure Stack HCI のデプロイにおいて「~」で止まる

    「Install OS updates (10 分)」「Clean up post update (20分)」「Deploy Arc infrastructure components (1時間)」あたりが比較的長いステップな気がします。人生が一億年あると思って待ちましょう。

参考

  • Azure Stack HCI バージョン 23H2 デプロイの概要

https://learn.microsoft.com/azure-stack/hci/deploy/deployment-introduction?wt.mc_id=MVP_391314

  • メモ的な Zenn の scrap

https://zenn.dev/skmkzyk/scraps/f9b8a34f40460b

  • Azure Stack HCI バージョン 23H2 のセキュリティ機能

https://learn.microsoft.com/azure-stack/hci/concepts/security-features?wt.mc_id=MVP_391314

  • 入れ子になった仮想化による仮想マシンでの Hyper-V の実行

https://learn.microsoft.com/virtualization/hyper-v-on-windows/user-guide/enable-nested-virtualization?wt.mc_id=MVP_391314

  • How to add more than one machine to the trusted hosts list using winrm

https://stackoverflow.com/questions/21548566/how-to-add-more-than-one-machine-to-the-trusted-hosts-list-using-winrm

  • MS-01 はいいぞ!

https://zenn.dev/skmkzyk/articles/ms-01-must-buy

  • Jumpstart HCIBox を小さくしてみる

https://zenn.dev/skmkzyk/articles/smaller-jumpstart-hcibox

Discussion