仮想 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 を使用して作成できます。

PowerShell コマンドレットを使用して という名前 Node1 の VM の例を作成するには、次の手順に従います。

  1. 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"
    
  2. 動的メモリを無効にする:

    Set-VMMemory -VMName "Node1" -DynamicMemoryEnabled $false
    
  3. VM チェックポイントを無効にする:

    Set-VM -VMName "Node1" -CheckpointType Disabled
    
  4. 前の手順で VM の作成時に作成された既定のネットワーク アダプターを削除します。

    Get-VMNetworkAdapter -VMName "Node1" | Remove-VMNetworkAdapter
    
  5. カスタム名を使用して 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"
    
  6. すべてのネットワーク アダプターを仮想スイッチに接続します。 作成した仮想スイッチの名前を指定します。NAT なしで外部であったか、NAT を使用して内部であったかを指定します。

    Get-VmNetworkAdapter -VmName "Node1" |Connect-VmNetworkAdapter -SwitchName "virtual_switch_name"
    
  7. VM Node1上のすべてのネットワーク アダプターで MAC スプーフィングを有効にします。 MAC アドレス スプーフィングは、ネットワーク アダプターがメディア Access Control (MAC) アドレスを変更することで、別のアドレスとして偽装できるようにする手法です。 これは、入れ子になった仮想化を使用する予定のシナリオで必要です。

    Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
    
  8. VM Node1上のすべてのネットワーク アダプターに対してトランク ポートを有効にする (マルチノードデプロイの場合のみ)。 このスクリプトでは、トランク モードで動作するように特定の VM のネットワーク アダプターを構成します。 これは通常、複数の仮想ローカル エリア ネットワーク (VLAN) が 1 つのネットワーク アダプターを介して通信できるようにするマルチノード 展開で使用されます。

    Get-VmNetworkAdapter -VmName "Node1" |Set-VMNetworkAdapterVlan -Trunk -NativeVlanId 0 -AllowedVlanIdList 0-1000
    
  9. 新しいキー保護機能を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
    
  10. の vTPM を Node1有効にします。 VM で vTPM を有効にすると、BitLocker や VM 上の TPM を必要とするその他の機能を使用できます。 このコマンドを実行すると、 Node1 ホスト マシンのハードウェアと VM の構成がこの機能をサポートしていると仮定して、vTPM が有効になります。

    Enable-VmTpm -VMName "Node1"
    
  11. 仮想プロセッサを に 8変更します。

     Set-VmProcessor -VMName "Node1" -Count 8
    
  12. 記憶域スペース ダイレクトのブート ディスクとハード ディスクとして使用する追加のドライブを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
    
  13. VM の新しく作成された VHDX にドライブをアタッチします。 これらのコマンドでは、 ディレクトリに C:\vms\Node1 配置され、 によって名前が付けられた s2d1.vhdxs2d6.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"
    
  14. 時刻同期を無効にする:

    Get-VMIntegrationService -VMName "Node1" |Where-Object {$_.name -like "T*"}|Disable-VMIntegrationService
    
  15. 入れ子になった仮想化を有効にする:

    Set-VMProcessor -VMName "Node1" -ExposeVirtualizationExtensions $true
    
  16. VM を起動します。

    Start-VM "Node1"
    

仮想ホスト VM に OS をインストールする

仮想ホスト VM に Azure Stack HCI OS をインストールして構成するには、次の手順を実行します。

  1. Azure Stack HCI 23H2 ISO をダウンロード し、 Azure Stack HCI オペレーティング システムをインストールします

  2. これは最初の VM の起動であるため、パスワードを更新します。 パスワードが Azure の複雑さの要件を満たしていることを確認します。 パスワードは 12 文字以上で、大文字 1 文字、小文字 1 文字、数字 1 文字、特殊文字 1 文字が含まれます。

  3. パスワードが変更されると、サーバー構成ツール (SConfig) が自動的に読み込まれます。 オプション 15 を選択してコマンド ラインに終了し、そこから次の手順を実行します。

  4. 次のコマンドを実行して SConfig を起動します。

      SConfig
    

    SConfig の使用方法については、「 サーバー構成ツールを使用した構成 (SConfig)」を参照してください。

  5. ホスト名を に Node1変更します。 これを行うには、Computer nameSConfig で の オプション2を使用します。

    ホスト名の変更により、再起動が行われます。 再起動を求められたら、「」と入力 Yes し、再起動が完了するまで待ちます。 SConfig が自動的に再び起動されます。

  6. 物理ホストから と コマンドレットを Get-VMNetworkAdapter 実行し ForEach-Object 、割り当てられた MAC アドレスをゲスト OS 上の対応するネットワーク アダプターにマッピングすることによって、VM Node1 の 4 つのネットワーク アダプター名を構成します。

    1. コマンドレットは Get-VMNetworkAdapter 、VM 上の各 NIC のネットワーク アダプター オブジェクトを取得するために使用されます。ここで -VMName 、 パラメーターは VM の名前を指定し -Name 、 パラメーターはネットワーク アダプターの名前を指定します。 MacAddressその後、ネットワーク アダプター オブジェクトの プロパティにアクセスして、MAC アドレスを取得します。
    Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
    
    1. MAC アドレスは、16 進数の文字列です。 コマンドレットは ForEach-Object 、特定の間隔でハイフンを挿入して、この文字列の書式を設定するために使用されます。 具体的には、 Insert 文字列オブジェクトの メソッドを使用して、文字列内の 2 番目、5 番目、8 番目、11 番目、および 14 番目の位置にハイフンを挿入します。 join次に、 演算子を使用して、結果の文字列の配列を、各要素間にスペースを含む単一の文字列に連結します。

    2. VM 上の 4 つの NIC ごとにコマンドが繰り返され、NIC ごとに最終的に書式設定された MAC アドレスが個別の変数に格納されます。

    ($Node1finalmacNIC1, $Node1finalmacNIC2, $Node1finalmacNIC3, $Node1finalmacNIC4).
    
    1. 次のスクリプトは、各 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
    
    
  7. VM ローカル管理者の資格情報を Node1 取得し、 の名前を変更 Node1します。

    $cred = get-credential
    
  8. の 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
    
  9. 次のコマンドを実行して、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}
    
  10. 管理 IP、ゲートウェイ、DNS を設定します。 次のコマンドを実行すると、指定した IP アドレス、 Node1NIC1 サブネット マスク、既定のゲートウェイ、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"}
    
  11. Hyper-V ロールを有効にします。 このコマンドは、VM Node1を再起動します。

    Invoke-Command -VMName "Node1"
    -Credential $cred -ScriptBlock {Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All }
    
  12. 再起動し、Hyper-V の役割がインストールされたら Node1 、Hyper-V 管理ツールをインストールします。

    Invoke-Command -VMName "Node1" -Credential $cred -ScriptBlock {Install-WindowsFeature -Name Hyper-V -IncludeManagementTools}
    
  13. 仮想ホスト サーバーの準備ができたら、それを登録し、Azure で Arc リソースとして アクセス許可を割り当てる 必要があります。

  14. サーバーが Arc リソースとして Azure に登録され、すべての必須拡張機能がインストールされたら、次のいずれかの方法を選択して Azure から Azure Stack HCI をデプロイします。

マルチノードデプロイをテストする予定の場合は、追加のノードに対して上記のプロセスを繰り返します。 仮想ホスト名と管理 IP が一意であり、同じサブネット上にあることを確認します。

次の手順