仮想 Azure Stack HCI バージョン 23H2 システムをデプロイする
適用対象: Azure Stack HCI バージョン 23H2
この記事では、仮想化された単一サーバーまたはマルチノードの Azure Stack HCI バージョン 23H2 を、Windows Server 2022、Windows 11、またはそれ以降のオペレーティング システム (OS) で Hyper-V を実行しているホスト システムにデプロイする方法について説明します。
Azure Stack HCI 仮想デプロイには管理者特権が必要であり、既存の Azure Stack HCI ソリューションをよく理解している必要があります。 デプロイが完了するまでに約 2.5 時間かかる場合があります。
重要
Azure Stack HCI バージョン 23H2 の仮想デプロイは、教育およびデモンストレーションのみを目的としています。 Microsoft サポートでは、仮想デプロイはサポートされていません。
前提条件
仮想デプロイのハードウェア、ネットワーク、およびその他の前提条件を次に示します。
物理ホストの要件
Azure Stack HCI バージョン 23H2 を正常にデプロイするための最小要件を次に示します。
開始する前に次の点を確認します。
Windows Server 2022、Windows 11 以降で Hyper-V を実行している物理ホスト システムにアクセスできます。 このホストは、仮想 Azure Stack HCI デプロイをプロビジョニングするために使用されます。
十分な容量があります。 仮想マシンやコンテナーなどの実際のワークロードを実行するには、より多くの容量が必要です。
仮想デプロイに使用される物理ハードウェアは、次の要件を満たしています。
コンポーネント 最小値 プロセッサ 入れ子になった仮想化をサポートする Intel VT-x または AMD-V。 詳細については、「 プロセッサは Intel® 仮想化テクノロジをサポートしていますか?」を参照してください。 メモリ 物理ホストは、1 つの仮想ノードデプロイに対して少なくとも 32 GB の RAM を持っている必要があります。 仮想ホスト VM には、少なくとも 24 GB の RAM が必要です。
物理ホストには、2 つの仮想ノードデプロイに対して 64 GB 以上の RAM が必要です。 各仮想ホスト VM には、少なくとも 24 GB の RAM が必要です。ホスト ネットワーク アダプター 1 つのネットワーク アダプター。 ストレージ 1 TB ソリッド ステート ドライブ (SSD)。
仮想ホストの要件
開始する前に、各仮想ホスト システムが、仮想化された Azure Stack HCI システムをプロビジョニングするために次のリソースを専用にできることを確認します。
コンポーネント | 要件 |
---|---|
仮想マシン (VM) の種類 | セキュア ブートとトラステッド プラットフォーム モジュール (TPM) が有効になっています。 |
vCPU 数 | 4 つのコア。 |
メモリ | 24 GB 以上。 |
ネットワーク | 内部ネットワークに接続されている少なくとも 2 つのネットワーク アダプター。 MAC スプーフィングを有効にする必要があります。 |
ブート ディスク | ISO から Azure Stack HCI オペレーティング システムをインストールするための 1 つのディスク。 |
記憶域スペース ダイレクト用のハード ディスク | 6 つの動的拡張ディスク。 最大ディスク サイズは 1024 GB です。 |
データ ディスク | 少なくとも 127 GB。 |
統合での時刻同期 | 無効。 |
注意
これらは、Azure Stack HCI バージョン 23H2 を正常にデプロイするための最小要件です。 仮想マシンやコンテナーなどの実際のワークロードを実行するときに、仮想コアやメモリなどの容量を増やします。
仮想スイッチを設定する
仮想環境に Azure Stack HCI をデプロイする場合は、既存のネットワークを使用し、使用可能な場合はそのネットワークの IP アドレスを使用できます。 このような場合は、外部スイッチを作成し、すべての仮想ネットワーク アダプターをその仮想スイッチに接続するだけで済みます。 仮想ホストは、追加の構成なしで物理ネットワークに接続できます。
ただし、Azure Stack HCI 仮想環境をデプロイする予定の物理ネットワークが IP に不足している場合は、NAT を有効にした内部仮想スイッチを作成して、インターネットへの送信接続を維持しながら、仮想ホストを物理ネットワークから分離できます。
次に、2 つのオプションの手順を示します。
外部仮想スイッチを使用してデプロイする
物理ホスト コンピューターで、次の PowerShell コマンドを実行して、外部仮想スイッチを作成します。
New-VMSwitch -Name "external_switch_name" -SwitchType External -NetAdapterName "network_adapter_name" -AllowManagementOS $true
内部仮想スイッチと NAT を有効にしてデプロイする
物理ホスト コンピューターで、次の PowerShell コマンドを実行して、内部仮想スイッチを作成します。 このスイッチを使用すると、Azure Stack HCI デプロイが確実に分離されます。
New-VMSwitch -Name "internal_switch_name" -SwitchType Internal -NetAdapterName "network_adapter_name"
内部仮想スイッチが作成されると、ホストに新しいネットワーク アダプターが作成されます。 この内部スイッチ ネットワークに接続した後、仮想ホストの既定のゲートウェイになるように、このネットワーク アダプターに IP アドレスを割り当てる必要があります。 また、仮想ホストが接続されている NAT ネットワーク サブネットを定義する必要もあります。
次のスクリプト例では、プレフィックス192.168.44.0/24
を持つ NAT ネットワークHCINAT
を作成し、ホスト上の インターフェイスを使用してネットワークの既定のゲートウェイとして IP を定義192.168.44.1
します。
#Check interface index of the new network adapter on the host connected to InternalSwitch:
Get-NetAdapter -Name "vEthernet (InternalSwitch)"
#Create the NAT default gateway IP on top of the InternalSwitch network adapter:
New-NetIPAddress -IPAddress 192.168.44.1 -PrefixLength 24 -InterfaceAlias "vEthernet (InternalSwitch)"
#Create the NAT network:
New-NetNat -Name "HCINAT"-InternalIPInterfaceAddressPrefix 192.168.44.0/24
仮想ホストをCreateする
次の構成で仮想ホストとして機能する VM をCreateします。 この VM は、Hyper-V マネージャーまたは PowerShell を使用して作成できます。
Hyper-V マネージャー。 詳細については、「Hyper-V マネージャーを使用して仮想マシンをCreateして物理管理ネットワークをミラーする」を参照してください。
PowerShell コマンドレット。 PowerShell コマンドレットを実行する前に、 仮想ホストの要件 で参照されている VM 構成パラメーターを調整してください。
PowerShell コマンドレットを使用して という名前 Node1
の VM の例を作成するには、次の手順に従います。
VM を作成します。
New-VHD -Path "your_VHDX_path" -SizeBytes 127GB New-VM -Name Node1 -MemoryStartupBytes 20GB -VHDPath "your_VHDX_path" -Generation 2 -Path "VM_config_files_path"
動的メモリを無効にする:
Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false
VM チェックポイントを無効にする:
Set-VM -VMName "Node1" -CheckpointType Disabled
前の手順で VM の作成時に作成された既定のネットワーク アダプターを削除します。
Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter
カスタム名を使用して VM に新しいネットワーク アダプターを追加します。 この例では 4 つの NIC を追加しますが、必要に応じて 2 つだけを追加できます。 4 つの NIC を使用すると、それぞれ 2 つの NIC を使用して、2 つのネットワーク インテント (
Mgmt_Compute
たとえばStorage
) をテストできます。Add-VmNetworkAdapter -VmName "Node1" -Name "NIC1" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC2" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC3" Add-VmNetworkAdapter -VmName "Node1" -Name "NIC4"
すべてのネットワーク アダプターを仮想スイッチに接続します。 作成した仮想スイッチの名前を指定します。NAT なしで外部であったか、NAT を使用して内部であったかを指定します。
Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
VM
Node1
上のすべてのネットワーク アダプターで MAC スプーフィングを有効にします。 MAC アドレス スプーフィングは、ネットワーク アダプターがメディア Access Control (MAC) アドレスを変更することで、別のアドレスとして偽装できるようにする手法です。 これは、入れ子になった仮想化を使用する予定のシナリオで必要です。Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
VM
Node1
上のすべてのネットワーク アダプターに対してトランク ポートを有効にする (マルチノードデプロイの場合のみ)。 このスクリプトでは、トランク モードで動作するように特定の VM のネットワーク アダプターを構成します。 これは通常、複数の仮想ローカル エリア ネットワーク (VLAN) が 1 つのネットワーク アダプターを介して通信できるようにするマルチノード 展開で使用されます。Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
新しいキー保護機能をCreateし、 に
Node1
割り当てます。 これは通常、未承認のアクセスや改ざんから VM を保護するセキュリティ機能である Hyper-V で保護されたファブリックを設定するコンテキストで行われます。次のスクリプトが実行されると、
Node1
新しいキー保護機能が割り当てられます。 このキー保護機能は、VM のキーを保護し、未承認のアクセスや改ざんから VM を保護するのに役立ちます。$owner = Get-HgsGuardian UntrustedGuardian $kp = New-HgsKeyProtector -Owner $owner -AllowUntrustedRoot Set-VMKeyProtector -VMName "Node1" -KeyProtector $kp.RawData
の vTPM を
Node1
有効にします。 VM で vTPM を有効にすると、BitLocker や VM 上の TPM を必要とするその他の機能を使用できます。 このコマンドを実行すると、Node1
ホスト マシンのハードウェアと VM の構成がこの機能をサポートしていると仮定して、vTPM が有効になります。Enable-VmTpm -VMName "Node1"
仮想プロセッサを に
8
変更します。Set-VmProcessor -VMName "Node1" -Count 8
記憶域スペース ダイレクトのブート ディスクとハード ディスクとして使用する追加のドライブをCreateします。 これらのコマンドを実行すると、次の例に示すように、ディレクトリに
C:\vms\Node1
6 つの新しい VHDX が作成されます。new-VHD -Path "C:\vms\Node1\s2d1.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d2.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d3.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d4.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d5.vhdx" -SizeBytes 1024GB new-VHD -Path "C:\vms\Node1\s2d6.vhdx" -SizeBytes 1024GB
VM の新しく作成された VHDX にドライブをアタッチします。 これらのコマンドでは、 ディレクトリに
C:\vms\Node1
配置され、 によって名前が付けられたs2d1.vhdx
s2d6.vhdx
6 つの VHD が にNode1
追加されます。 各Add-VMHardDiskDrive
コマンドは 1 つの VHD を VM に追加するため、コマンドは異なる-Path
パラメーター値で 6 回繰り返されます。その後、
Node1
VM には 6 つの VHD がアタッチされます。 これらの VHDX は、AZURE Stack HCI デプロイに必要な VM で記憶域スペース ダイレクトを有効にするために使用されます。Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d1.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d2.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d3.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d4.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d5.vhdx" Add-VMHardDiskDrive -VMName "Node1" -Path "C:\vms\Node1\s2d6.vhdx"
時刻同期を無効にする:
Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService
入れ子になった仮想化を有効にする:
Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true
VM を起動します。
Start-VM "Node1"
仮想ホスト VM に OS をインストールする
仮想ホスト VM に Azure Stack HCI OS をインストールして構成するには、次の手順を実行します。
Azure Stack HCI 23H2 ISO をダウンロード し、 Azure Stack HCI オペレーティング システムをインストールします。
これは最初の VM の起動であるため、パスワードを更新します。 パスワードが Azure の複雑さの要件を満たしていることを確認します。 パスワードは 12 文字以上で、大文字 1 文字、小文字 1 文字、数字 1 文字、特殊文字 1 文字が含まれます。
パスワードが変更されると、サーバー構成ツール (SConfig) が自動的に読み込まれます。 オプション
15
を選択してコマンド ラインに終了し、そこから次の手順を実行します。次のコマンドを実行して SConfig を起動します。
SConfig
SConfig の使用方法については、「 サーバー構成ツールを使用した構成 (SConfig)」を参照してください。
ホスト名を に
Node1
変更します。 これを行うには、Computer name
SConfig で の オプション2
を使用します。ホスト名の変更により、再起動が行われます。 再起動を求められたら、「」と入力
Yes
し、再起動が完了するまで待ちます。 SConfig が自動的に再び起動されます。物理ホストから と コマンドレットを
Get-VMNetworkAdapter
実行しForEach-Object
、割り当てられた MAC アドレスをゲスト OS 上の対応するネットワーク アダプターにマッピングすることによって、VMNode1
の 4 つのネットワーク アダプター名を構成します。- コマンドレットは
Get-VMNetworkAdapter
、VM 上の各 NIC のネットワーク アダプター オブジェクトを取得するために使用されます。ここで-VMName
、 パラメーターは VM の名前を指定し-Name
、 パラメーターはネットワーク アダプターの名前を指定します。MacAddress
その後、ネットワーク アダプター オブジェクトの プロパティにアクセスして、MAC アドレスを取得します。
Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
MAC アドレスは、16 進数の文字列です。 コマンドレットは
ForEach-Object
、特定の間隔でハイフンを挿入して、この文字列の書式を設定するために使用されます。 具体的には、Insert
文字列オブジェクトの メソッドを使用して、文字列内の 2 番目、5 番目、8 番目、11 番目、および 14 番目の位置にハイフンを挿入します。join
次に、 演算子を使用して、結果の文字列の配列を、各要素間にスペースを含む単一の文字列に連結します。VM 上の 4 つの NIC ごとにコマンドが繰り返され、NIC ごとに最終的に書式設定された MAC アドレスが個別の変数に格納されます。
($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).
- 次のスクリプトは、各 NIC の最終的な書式設定された MAC アドレスを出力します。
$Node1macNIC1 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1" $Node1macNIC1.MacAddress $Node1finalmacNIC1=$Node1macNIC1.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC1 $Node1macNIC2 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC2" $Node1macNIC2.MacAddress $Node1finalmacNIC2=$Node1macNIC2.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC2 $Node1macNIC3 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC3" $Node1macNIC3.MacAddress $Node1finalmacNIC3=$Node1macNIC3.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC3 $Node1macNIC4 = Get-VMNetworkAdapter -VMName "Node1" -Name "NIC4" $Node1macNIC4.MacAddress $Node1finalmacNIC4=$Node1macNIC4.MacAddress|ForEach-Object{($_.Insert(2,"-").Insert(5,"-").Insert(8,"-").Insert(11,"-").Insert(14,"-"))-join " "} $Node1finalmacNIC4
- コマンドレットは
VM ローカル管理者の資格情報を
Node1
取得し、 の名前を変更Node1
します。$cred = get-credential
の NIC の名前を変更してマップします
Node1
。 名前の変更は、VM が初めて起動されたときに Hyper-V によって割り当てられた NIC の MAC アドレスに基づいています。 これらのコマンドは、ホストから直接実行する必要があります。コマンドを
Get-NetAdapter
使用して、VM 上の物理ネットワーク アダプターを取得し、MAC アドレスに基づいてフィルター処理した後、 コマンドレットを使用して一致するアダプターに名前をRename-NetAdapter
変更します。これは、VM 上の 4 つの NIC ごとに繰り返され、各 NIC の MAC アドレスと新しい名前が個別に指定されます。 これにより、Hyper-V マネージャーの NIC の名前と VM OS 内の NIC の名前の間にマッピングが確立されます。
Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC1) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC1} | Rename-NetAdapter -NewName "NIC1"} -ArgumentList $Node1finalmacNIC1 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC2) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC2} | Rename-NetAdapter -NewName "NIC2"} -ArgumentList $Node1finalmacNIC2 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC3) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC3} | Rename-NetAdapter -NewName "NIC3"} -ArgumentList $Node1finalmacNIC3 Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {param($Node1finalmacNIC4) Get-NetAdapter -Physical | Where-Object {$_.MacAddress -eq $Node1finalmacNIC4} | Rename-NetAdapter -NewName "NIC4"} -ArgumentList $Node1finalmacNIC4
次のコマンドを実行して、VM
Node1
用の 4 つの NIC で動的ホスト構成プロトコル (DHCP) を無効にします。注意
インターフェイスは DHCP サーバーから IP アドレスを自動的に取得せず、代わりに IP アドレスを手動で割り当てる必要があります。
Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC1" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC2" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC3" -Dhcp Disabled} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-NetIPInterface -InterfaceAlias "NIC4" -Dhcp Disabled}
管理 IP、ゲートウェイ、DNS を設定します。 次のコマンドを実行すると、指定した IP アドレス、
Node1
NIC1
サブネット マスク、既定のゲートウェイ、DNS サーバー アドレスでネットワーク インターフェイスが構成されます。 管理 IP アドレスが Active Directory を解決でき、インターネットへの送信接続があることを確認します。Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {New-NetIPAddress -InterfaceAlias "NIC1" -IPAddress "192.168.44.201" -PrefixLength 24 -AddressFamily IPv4 -DefaultGateway "192.168.44.1"} Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Set-DnsClientServerAddress -InterfaceAlias "NIC1" -ServerAddresses "192.168.1.254"}
Hyper-V ロールを有効にします。 このコマンドは、VM
Node1
を再起動します。Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }
再起動し、Hyper-V の役割がインストールされたら
Node1
、Hyper-V 管理ツールをインストールします。Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}
仮想ホスト サーバーの準備ができたら、それを登録し、Azure で Arc リソースとして アクセス許可を割り当てる 必要があります。
サーバーが Arc リソースとして Azure に登録され、すべての必須拡張機能がインストールされたら、次のいずれかの方法を選択して Azure から Azure Stack HCI をデプロイします。
マルチノードデプロイをテストする予定の場合は、追加のノードに対して上記のプロセスを繰り返します。 仮想ホスト名と管理 IP が一意であり、同じサブネット上にあることを確認します。