다음을 통해 공유


가상 Azure Stack HCI 버전 23H2 시스템 배포

적용 대상: Azure Stack HCI, 버전 23H2

이 문서에서는 Windows Server 2022, Windows 11 이상 OS(운영 체제)에서 Hyper-V를 실행하는 호스트 시스템에 가상화된 단일 서버 또는 다중 노드 Azure Stack HCI 버전 23H2를 배포하는 방법을 설명합니다.

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® 가상화 기술을 지원하나요?를 참조하세요.
    메모리 물리적 호스트에는 단일 가상 노드 배포를 위한 최소 32GB RAM이 있어야 합니다. 가상 호스트 VM에는 24GB 이상의 RAM이 있어야 합니다.

    실제 호스트에는 두 개의 가상 노드 배포에 대해 최소 64GB RAM이 있어야 합니다. 각 가상 호스트 VM에는 24GB 이상의 RAM이 있어야 합니다.
    호스트 네트워크 어댑터 단일 네트워크 어댑터.
    스토리지 1TB SSD(반도체 드라이브).

가상 호스트 요구 사항

시작하기 전에 각 가상 호스트 시스템이 가상화된 Azure Stack HCI 시스템을 프로비전하기 위해 다음 리소스를 사용할 수 있는지 확인합니다.

구성 요소 요구 사항
VM(가상 머신) 유형 보안 부팅 및 TPM(신뢰할 수 있는 플랫폼 모듈)이 사용하도록 설정되었습니다.
vCPU 4코어.
메모리 최소 24GB.
네트워킹 내부 네트워크에 연결된 네트워크 어댑터가 두 개 이상 있습니다. MAC 스푸핑을 사용하도록 설정해야 합니다.
부팅 디스크 ISO에서 Azure Stack HCI 운영 체제를 설치하는 디스크 1개.
저장소 공간 다이렉트 하드 디스크 6개의 동적 확장 디스크. 최대 디스크 크기는 1024GB입니다.
데이터 디스크 최소 127GB.
통합의 시간 동기화 사용 안 함.

참고

Azure Stack HCI 버전 23H2를 성공적으로 배포하기 위한 최소 요구 사항입니다. 가상 머신 또는 컨테이너와 같은 실제 워크로드를 실행할 때 가상 코어 및 메모리와 같은 용량을 늘입니다.

가상 스위치 설정

가상 환경에서 Azure Stack HCI를 배포할 때 기존 네트워크를 사용하고 사용 가능한 경우 해당 네트워크의 IP 주소를 사용할 수 있습니다. 이러한 경우 외부 스위치를 만들고 모든 가상 네트워크 어댑터를 해당 가상 스위치에 연결하기만 하면 됩니다. 가상 호스트는 추가 구성 없이 실제 네트워크에 연결됩니다.

그러나 IP에서 Azure Stack HCI 가상 환경을 배포하려는 실제 네트워크가 부족한 경우 NAT를 사용하도록 설정된 내부 가상 스위치를 만들어 인터넷에 대한 아웃바운드 연결을 유지하면서 실제 네트워크에서 가상 호스트를 격리할 수 있습니다.

다음은 두 옵션에 대한 단계를 나열합니다.

외부 가상 스위치를 사용하여 배포

물리적 호스트 컴퓨터에서 다음 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 만들고 호스트의 192.168.44.1 인터페이스를 사용하여 IP를 네트워크의 기본 게이트웨이로 정의합니다.

#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. Hyper-V 관리자 또는 PowerShell을 사용하여 이 VM을 만들 수 있습니다.

다음 단계에 따라 PowerShell cmdlet을 사용하여 이라는 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개만 추가할 수 있습니다. NIC가 4개 있으면 각각 2개의 NIC를 사용하여 두 개의 네트워크 의도(Mgmt_ComputeStorage 예: )를 테스트할 수 있습니다.

    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 주소 스푸핑은 네트워크 어댑터가 MAC(Media Access Control) 주소를 변경하여 다른 어댑터로 가장할 수 있는 기술입니다. 이는 중첩된 가상화를 사용하려는 시나리오에서 필요합니다.

    Get-VmNetworkAdapter -VmName "Node1" |Set-VmNetworkAdapter -MacAddressSpoofing On
    
  8. VM Node1의 모든 네트워크 어댑터에 대해 트렁크 포트(다중 노드 배포에만 해당)를 사용하도록 설정합니다. 이 스크립트는 트렁크 모드에서 작동하도록 특정 VM의 네트워크 어댑터를 구성합니다. 이는 일반적으로 여러 VLAN(가상 로컬 영역 네트워크)이 단일 네트워크 어댑터를 통해 통신하도록 허용하려는 다중 노드 배포에서 사용됩니다.

    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을 사용하도록 설정하면 VM에서 TPM이 필요한 BitLocker 및 기타 기능을 사용할 수 있습니다. 이 명령을 실행한 Node1 후 호스트 컴퓨터의 하드웨어와 VM의 구성이 이 기능을 지원합니다.

    Enable-VmTpm -VMName "Node1"
    
  11. 가상 프로세서를 로 8변경합니다.

     Set-VmProcessor -VMName "Node1" -Count 8
    
  12. 저장소 공간 다이렉트 부팅 디스크 및 하드 디스크로 사용할 추가 드라이브를 Create. 이러한 명령이 실행되면 다음 예제와 같이 디렉터리에 6개의 새 VHDX가 만들어집니다 C:\vms\Node1 .

     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에 드라이브를 연결합니다. 이러한 명령에서 디렉터리에 있고 를 통해 s2d6.vhdx 명명 s2d1.vhdxC:\vms\Node1 6개의 VHD가 에 Node1추가됩니다. 각 Add-VMHardDiskDrive 명령은 VM에 하나의 VHD를 추가하므로 명령은 서로 다른 -Path 매개 변수 값으로 6번 반복됩니다.

    그 후 VM에 Node1 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. 이 작업을 수행하려면 SConfig에서 의 옵션을 2Computer name 사용합니다.

    호스트 이름이 변경되어 다시 시작됩니다. 다시 시작하라는 메시지가 표시되면 를 입력 Yes 하고 다시 시작이 완료될 때까지 기다립니다. SConfig가 자동으로 다시 시작됩니다.

  6. 물리적 호스트에서 및 ForEach-Object cmdlet을 실행 Get-VMNetworkAdapter 하여 할당된 MAC 주소를 게스트 OS의 해당 네트워크 어댑터에 매핑하여 VM Node1 에 대한 네 개의 네트워크 어댑터 이름을 구성합니다.

    1. cmdlet은 Get-VMNetworkAdapter VM의 각 NIC에 대한 네트워크 어댑터 개체를 검색하는 데 사용됩니다. 여기서 -VMName 매개 변수는 VM의 이름을 지정하고 -Name 매개 변수는 네트워크 어댑터의 이름을 지정합니다. MacAddress 그런 다음 네트워크 어댑터 개체의 속성에 액세스하여 MAC 주소를 가져옵니다.
    Get-VMNetworkAdapter -VMName "Node1" -Name "NIC1"
    
    1. MAC 주소는 16진수의 문자열입니다. ForEach-Object cmdlet은 특정 간격으로 하이픈을 삽입하여 이 문자열의 서식을 지정하는 데 사용됩니다. 특히 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 주소에 따라 필터링한 다음 cmdlet을 사용하여 Rename-NetAdapter 일치하는 어댑터로 이름을 바꿉니다.

    이는 MAC 주소와 각 NIC의 새 이름이 별도로 지정된 VM의 4개의 NIC 각각에 대해 반복됩니다. 그러면 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를 설정합니다. 다음 명령을 실행한 Node1 후에는 네트워크 인터페이스가 NIC1 지정된 IP 주소, 서브넷 마스크, 기본 게이트웨이 및 DNS 서버 주소로 구성됩니다. 관리 IP 주소가 Active Directory를 resolve 인터넷에 아웃바운드 연결이 있는지 확인합니다.

    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. 다시 Node1 시작되고 Hyper-V 역할이 설치되면 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가 고유하고 동일한 서브넷에 있는지 확인합니다.

다음 단계