자습서: Azure Stack HCI에 대한 VM 기반 랩 만들기

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

이 자습서에서는 MSLab PowerShell 스크립트를 사용하여 중 첩된 가상화를 사용하여 VM(가상 머신)에서 Azure Stack HCI를 실행하는 프라이빗 포리스트를 만드는 프로세스를 자동화합니다.

중요

Azure Stack HCI는 VM에서 모든 워크로드를 실행하는 가상화 호스트로 사용되므로 중첩된 가상화는 프로덕션 환경에서 지원되지 않습니다. 테스트 및 평가 목적으로만 중첩된 가상화를 사용합니다.

이 문서에서 배울 내용은 다음과 같습니다.

  • 도메인 컨트롤러 및 Windows Admin Center 서버를 사용하여 프라이빗 포리스트 만들기
  • 클러스터링 Azure Stack HCI를 실행하는 여러 VM 배포

완료되면 배포한 VM을 사용하여 Azure Stack HCI 클러스터를 만들고 프로토타입 작성, 테스트, 문제 해결 또는 평가를 위해 프라이빗 랩을 사용할 수 있습니다.

사전 요구 사항

이 자습서를 완료하려면 다음이 필요합니다.

  • Windows Server 2022, Windows Server 2019 또는 Windows Server 2016 실행하는 Hyper-V 호스트 서버에서 관리 권한
  • 최소 8GB RAM
  • 중첩된 가상화를 지원하는 CPU
  • SSD(반도체 드라이브)
  • Hyper-V 호스트 서버의 40GB 사용 가능한 공간
  • Windows Admin Center 및 클러스터를 등록할 Azure 계정

랩 준비

이러한 지침에 따라 랩 환경을 신중하게 준비합니다.

가상화 호스트에 연결

VM 기반 랩을 만들 실제 서버에 연결합니다. 원격 서버를 사용하는 경우 원격 데스크톱을 통해 연결합니다.

Azure Stack HCI 다운로드

Azure Portal Azure Stack HCI OS를 다운로드할 수 있습니다. 다운로드 지침은 Azure Stack HCI 운영 체제 다운로드를 참조하세요.

Windows Server 다운로드

또한 도메인 컨트롤러 및 Windows Admin Center VM에 대한 Windows Server 2022, Windows Server 2019 또는 Windows Server 2016 복사본이 필요합니다. 평가 미디어를 사용하거나 VL 또는 Visual Studio 구독에 액세스할 수 있는 경우 이를 사용할 수 있습니다. 이 자습서에서는 평가 복사본을 다운로드합니다.

랩 파일에 대한 폴더 만들기

C 드라이브의 루트(또는 원하는 곳)에 Lab 폴더를 만들고 파일 탐색기 사용하여 다운로드한 OS 파일을 C:\Lab\Isos 폴더에 복사합니다.

MSLab 스크립트 다운로드

서버에서 웹 브라우저를 사용하여 MSLab 스크립트를 다운로드합니다. zip 파일 wslab_vxx.xx.x.zip 하드 드라이브에 자동으로 다운로드되어야 합니다. zip 파일을 하드 드라이브 위치(C:\Lab)에 복사하고 스크립트를 추출합니다.

LabConfig 스크립트 편집

MSLab VM은 LabConfig.ps1 PowerShell 스크립트에서 간단한 해시 테이블로 정의됩니다. Azure Stack HCI VM을 사용하여 프라이빗 포리스트를 만들려면 스크립트를 사용자 지정해야 합니다.

스크립트를 편집하려면 파일 탐색기 사용하여 C:\Lab\wslab_xxx\로 이동한 다음 LabConfig.ps1마우스 오른쪽 단추로 클릭합니다. 편집을 선택하면 Windows PowerShell ISE를 사용하여 파일이 열립니다.

원래 버전의 LabConfig.ps1 를Original_LabConfig.ps1로 저장하므로 필요한 경우 쉽게 다시 시작할 수 있습니다.

대부분의 스크립트는 주석 처리됩니다. 몇 줄만 실행하면 됩니다. 원하는 출력을 생성하도록 스크립트를 사용자 지정하려면 다음 단계를 수행합니다. 또는 이 섹션의 끝에 있는 코드 블록을 복사하고 LabConfig에서 적절한 줄을 바꿀 수 있습니다.

스크립트를 사용자 지정하려면 다음을 수행합니다.

  1. 주석 처리되지 않은 첫 번째 LabConfig.ps1 줄에 다음을 추가하여 스크립트에 ISO를 찾고, 게스트 서비스 인터페이스를 사용하도록 설정하고, 호스트에서 DNS 전달을 사용하도록 설정합니다. ServerISOFolder="C:\lab\isos" ; EnableGuestServiceInterface=$true ; UseHostDnsAsForwarder=$true

  2. 원하는 경우 관리자 이름 및 암호를 변경합니다.

  3. 동일한 서버에 여러 랩을 만들려는 경우 랩1과 같은 새 접두사 이름을 사용하도록 접두사 = 'MSLab-'을 변경합니다. 이 자습서의 기본 MSLab- 접두사를 계속 사용합니다.

  4. 스크립트가 클러스터 노드에 대한 Windows Server VM 대신 Azure Stack HCI VM을 만들도록 Windows Server의 기본 ForEach-Object 줄을 주석으로 처리하고 Azure Stack HCI용 ForEach-Object 줄 앞에 해시태그를 제거합니다.

  5. 기본적으로 스크립트는 4노드 클러스터를 만듭니다. 클러스터의 VM 수를 변경하려면 1..4를 1..2 또는 1..8로 바꿉니다. 클러스터에 VM이 많을수록 호스트 서버의 메모리 요구 사항이 커지게 됩니다.

  6. NestedVirt=$true 추가합니다. AdditionalNetworks=$TrueForEach-Object 명령으로 이동하고 MemoryStartupBytes4GB로 설정합니다.

  7. AdditionalNetworksConfig 줄 추가: $LabConfig.AdditionalNetworksConfig += @{ NetName = 'Converged'; NetAddress='10.0.1.'; NetVLAN='0'; Subnet='255.255.255.0'}

  8. Windows Server Core 운영 체제를 실행하는 Windows Admin Center 관리 서버를 구성하여 개인 네트워크 외부에서 Windows Admin Center 연결할 수 있도록 두 번째 NIC를 추가합니다. $LabConfig.VMs += @{ VMName = 'AdminCenter' ; ParentVHD = 'Win2019Core_G2.vhdx'; MGMTNICs=2}

  9. 변경 내용을 LabConfig.ps1저장해야 합니다.

위의 단계에서 수행된LabConfig.ps1 변경 내용은 다음 코드 블록에 반영됩니다.

$LabConfig=@{ DomainAdminName='LabAdmin'; AdminPassword='LS1setup!'; Prefix = 'MSLab-' ; DCEdition='4'; Internet=$true ; AdditionalNetworksConfig=@(); VMs=@() ; ServerISOFolder="C:\lab\isos" ; EnableGuestServiceInterface=$true ; UseHostDnsAsForwarder=$true }
# Windows Server 2019
#1..4 | ForEach-Object {$VMNames="S2D"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'Win2019Core_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 512MB }}
# Or Azure Stack HCI 
1..4 | ForEach-Object {$VMNames="AzSHCI"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI21H2_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 4GB ; NestedVirt=$true ; AdditionalNetworks=$true }}
# Or Windows Server 2022
#1..4 | ForEach-Object {$VMNames="S2D"; $LABConfig.VMs += @{ VMName = "$VMNames$_" ; Configuration = 'S2D' ; ParentVHD = 'Win2022Core_G2.vhdx'; SSDNumber = 0; SSDSize=800GB ; HDDNumber = 12; HDDSize= 4TB ; MemoryStartupBytes= 512MB }}

$LabConfig.AdditionalNetworksConfig += @{ NetName = 'Converged'; NetAddress='10.0.1.'; NetVLAN='0'; Subnet='255.255.255.0'}

$LabConfig.VMs += @{ VMName = 'AdminCenter' ; ParentVHD = 'Win2019Core_G2.vhdx'; MGMTNICs=2}

MSLab 스크립트 실행 및 부모 디스크 만들기

MSLab 스크립트는 대부분의 랩 설치 프로세스를 자동화하고 운영 체제의 ISO 이미지를 VHD 파일로 변환합니다.

Prereq 스크립트 실행

C:\Lab\wslab_xxx\으로 이동하고 파일을 마우스 오른쪽 단추로 클릭하고 PowerShell로 실행을 선택하여 1_Prereq.ps1 스크립트를 실행합니다. 스크립트는 필요한 파일을 다운로드합니다. 일부 예제 파일은 ToolsDisk 폴더에 배치되고 일부 스크립트는 ParentDisks 폴더에 추가됩니다. 스크립트가 완료되면 Enter 키를 눌러 계속하라는 메시지가 표시됩니다.

참고

관리자 권한으로 이 PowerShell cmdlet을 실행하여 서명되지 않은 스크립트를 허용하도록 시스템에서 스크립트 실행 정책을 변경해야 할 수 있습니다. Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Windows Server 부모 디스크 만들기

2_CreateParentDisks.ps1 스크립트는 운영 체제 ISO 파일에서 Windows Server 및 Server Core용 VHD(가상 하드 디스크)를 준비하고 필요한 모든 역할이 구성된 배포를 위해 도메인 컨트롤러를 준비합니다. 파일을 마우스 오른쪽 단추로 클릭하고 PowerShell로 실행을 선택하여 2_CreateParentDisks.ps1 실행합니다.

원격 분석 수준을 선택하라는 메시지가 표시됩니다. 기본의 경우 B를 선택하고 전체의 경우 F를 선택합니다. 스크립트는 Windows Server 2019에 대한 ISO 파일도 요청합니다. 파일을 복사한 위치(C:\Labs\Isos)를 가리킵니다. 폴더에 여러 ISO 파일이 있는 경우 사용할 ISO를 선택하라는 메시지가 표시됩니다. Windows Server ISO를 선택합니다. 드라이브의 서식을 지정하라는 메시지가 표시되면 N을 선택합니다.

경고

Azure Stack HCI ISO를 선택하지 마세요 . 다음 섹션에서 Azure Stack HCI VHD(부모 디스크)를 만듭니다.

부모 디스크를 만드는 데는 시간이 훨씬 적게 걸릴 수 있지만 1~2시간이 걸릴 수 있습니다. 완료되면 스크립트는 불필요한 파일을 제거해야 하는지 묻습니다. Y를 선택하면 더 이상 필요하지 않으므로 처음 두 스크립트가 제거됩니다. Enter 키를 눌러 계속 진행합니다.

Azure Stack HCI 부모 디스크 만들기

Convert-WindowsImage.ps1 함수를 C:\Lab\wslab_xxx\ParentDisks 폴더에 Convert-WindowsImage.ps1다운로드합니다. 그런 다음 관리자 권한으로CreateParentDisk.ps1실행합니다. C:\Labs\Isos에서 Azure Stack HCI ISO를 선택하고 기본 이름 및 크기를 적용합니다.

부모 디스크를 만드는 데는 다소 시간이 소요됩니다. 작업이 완료되면 VM을 시작하라는 메시지가 표시됩니다. 아직 시작하지 마세요. N을 입력합니다.

VM 배포

PowerShell에서 실행을 마우스 오른쪽 단추로 클릭하고 선택하여 Deploy.ps1 실행합니다. 스크립트를 완료하는 데 10~15분이 걸립니다.

운영 체제 업데이트 및 소프트웨어 설치

이제 VM이 배포되었으므로 랩을 관리하는 데 필요한 보안 업데이트 및 소프트웨어를 설치해야 합니다.

도메인 컨트롤러 및 Windows Admin Center VM 업데이트

가상화 호스트에 로그온하고 Hyper-V 관리자를 시작합니다. 프라이빗 포리스트의 도메인 컨트롤러가 이미 실행 중이어야 합니다(MSLab-DC). Virtual Machines 이동하여 도메인 컨트롤러를 선택하고 연결합니다. 지정한 사용자 이름 및 암호를 사용하여 로그인하거나 변경하지 않은 경우 기본값인 LabAdmin/LS1setup!을 사용합니다.

필요한 보안 업데이트를 설치하고 필요한 경우 도메인 컨트롤러 VM을 다시 시작합니다. 시간이 오래 걸릴 수 있으며 VM을 여러 번 다시 시작해야 할 수 있습니다.

Hyper-V 관리자에서 Server Core를 실행하는 Windows Admin Center VM(MSLab-AdminCenter)을 시작합니다. 연결하고, 로그인하고, sconfig를 입력합니다. 보안 업데이트 다운로드 및 설치를 선택하고 필요한 경우 다시 부팅합니다. 시간이 오래 걸릴 수 있으며 VM을 다시 시작하고 sconfig 를 여러 번 입력해야 할 수 있습니다.

도메인 컨트롤러에 Microsoft Edge 설치

프라이빗 포리스트에서 Windows Admin Center 사용하려면 도메인 컨트롤러 VM에 웹 브라우저가 필요합니다. 보안상의 이유로 인터넷 Explorer 차단될 가능성이 높으므로 대신 Microsoft Edge를 사용합니다. Edge가 도메인 컨트롤러 VM에 아직 설치되어 있지 않은 경우 설치해야 합니다.

Microsoft Edge를 설치하려면 Hyper-V 관리자에서 도메인 컨트롤러 VM에 연결하고 관리자 권한으로 PowerShell 세션을 시작합니다. 그런 다음, 다음 코드를 실행하여 Microsoft Edge를 설치하고 시작합니다.

#Install Edge
Start-BitsTransfer -Source "https://aka.ms/edge-msi" -Destination "$env:USERPROFILE\Downloads\MicrosoftEdgeEnterpriseX64.msi"
#Start install
Start-Process -Wait -Filepath msiexec.exe -Argumentlist "/i $env:UserProfile\Downloads\MicrosoftEdgeEnterpriseX64.msi /q"
#Start Edge
start microsoft-edge:

게이트웨이 모드에서 Windows Admin Center 설치

도메인 컨트롤러 VM에서 Microsoft Edge를 사용하여 이 스크립트 를 도메인 컨트롤러 VM에 다운로드하고 .ps1 파일 확장명으로 저장합니다.

파일을 마우스 오른쪽 단추 로 클릭하고 PowerShell로 편집을 선택하고 첫 줄의 $GatewayServerName 값을 접두사 없이 AdminCenter VM의 이름과 일치하도록 변경합니다(예: AdminCenter). 스크립트를 저장하고 파일을 마우스 오른쪽 단추로 클릭하고 PowerShell로 실행을 선택하여 실행합니다.

로그온하여 Windows Admin Center

이제 DC의 Edge에서 Windows Admin Center 액세스할 수 있습니다.http://admincenter

브라우저에서 안전하지 않거나 안전하지 않은 연결임을 경고할 수 있지만 계속 진행해도 괜찮습니다.

외부에서 액세스할 수 있는 네트워크 어댑터 추가(선택 사항)

랩이 프라이빗 네트워크에 있는 경우 프라이빗 포리스트 외부에서 연결하고 랩을 관리할 수 있도록 AdminCenter VM에 외부에서 액세스할 수 있는 NIC를 추가할 수 있습니다. 이렇게 하려면 Windows Admin Center 사용하여 도메인 컨트롤러가 아닌 가상화 호스트에 연결하고 설정 네트워크 MSLab-AdminCenter >> 가상 머신>으로 이동합니다. 가상 스위치가 적절한 네트워크에 연결되어 있는지 확인합니다. 스위치 유형 = 외부(예: MSLab-LabSwitch-External)를 찾습니다. 그런 다음, 이 외부 가상 스위치에 VM NIC를 추가/바인딩합니다. "관리 OS에서 이러한 네트워크 어댑터를 공유하도록 허용" 확인란을 선택해야 합니다.

AdminCenter VM에서 네트워크 어댑터의 IP 주소를 기록해 둡니다. :443을 외부에서 액세스할 수 있는 NIC의 IP 주소에 추가하면 다음과 같은 외부 웹 브라우저에서 Windows Admin Center 및 클러스터를 만들고 관리할 수 있습니다.https://10.217.XX.XXX:443

Azure Stack HCI VM에 운영 체제 업데이트 설치

가상화 호스트에서 Hyper-V 관리자를 사용하여 Azure Stack HCI VM을 시작합니다. 각 VM에 연결하고 각 VM에 Sconfig를 사용하여 보안 업데이트를 다운로드하고 설치합니다. VM을 여러 번 다시 시작해야 할 수 있습니다. 나중에 클러스터 만들기 마법사의 일부로 OS 업데이트를 설치하려는 경우 이 단계를 건너뛸 수 있습니다.

Azure Stack HCI VM에서 Hyper-V 역할 사용

클러스터 VM이 Azure Stack HCI 20H2를 실행하는 경우 VM에서 Hyper-V 역할을 사용하도록 설정하는 스크립트를 실행해야 합니다. 가상화 호스트의 C:\Lab이 스크립트를 PreviewWorkaround.ps1 저장합니다.

PreviewWorkaround.ps1 파일을 마우스 오른쪽 단추 로 클릭하고 PowerShell을 사용하여 편집을 선택합니다. $domainName, $domainAdmin$nodeName 변수가 일치하지 않으면 다음과 같이 변경합니다.

$domainName = "corp.contoso.com"
$domainAdmin = "$domainName\labadmin"
$nodeName = "MSLab-AzSHCI1","MSLab-AzSHCI2","MSLab-AzSHCI3","MSLab-AzSHCI4"

변경 내용을 저장한 다음 PowerShell 세션을 관리자 권한으로 열고 스크립트를 실행합니다.

PS C:\Lab> ./PreviewWorkaround.ps1

특히 VM을 많이 만든 경우 스크립트를 실행하는 데 시간이 걸립니다. "MSLab-AzSHCI1 MSLab-AzSHCI2 이제 온라인 상태임" 메시지가 표시됩니다. 계속 진행하여 Hyper-V PowerShell을 설치합니다." 메시지를 표시한 후 스크립트가 중지된 것처럼 보이면 Enter 키를 눌러 절전 모드를 해제합니다. 완료되면 다음이 표시됩니다. "MSLab-AzSHCI1 MSLab-AzSHCI2 이제 온라인 상태가 되었습니다. 다음 단계로 진행 ..."

네트워크 어댑터 추가(선택 사항)

클러스터를 사용하는 방법에 따라 보다 다양한 테스트를 위해 각 Azure Stack HCI VM에 네트워크 어댑터를 몇 개 더 추가할 수 있습니다. 이렇게 하려면 Windows Admin Center 사용하여 호스트 서버에 연결하고 가상 머신 > MSLab-(노드) > 설정 > 네트워크로 이동합니다. 고급 > MAC 주소 스푸핑 사용을 선택해야 합니다. 이 설정을 사용하도록 설정하지 않으면 클러스터를 만들려고 할 때 연결 테스트가 실패할 수 있습니다.

Azure에 Windows Admin Center 등록

외부 URL을 사용하거나 도메인 컨트롤러에서 Edge를 사용하여 프라이빗 포리스트의 Windows Admin Center 연결하고 Azure에 Windows Admin Center 등록합니다.

리소스 정리

불필요한 파일 및 폴더를 정리하기 위해 Y 를 선택한 경우 정리가 이미 완료되었습니다. 수동으로 수행하려면 C:\Labs로 이동하여 불필요한 파일을 삭제합니다.

다음 단계

이제 클러스터 만들기 마법사로 진행할 준비가 되었습니다.