다음을 통해 공유


Windows PowerShell을 사용하여 Azure Stack HCI에서 VM 관리

적용 대상: Azure Stack HCI, 버전 23H2 및 22H2; Windows Server 2022, Windows Server 2019

이 문서에서는 Windows PowerShell을 사용하여 Azure Stack HCI에서 VM(가상 머신)을 만들고 관리하는 방법을 설명합니다.

참고 항목

Azure Stack HCI 버전 23H2에서 VM을 만들고 관리하는 권장 방법은 Azure Arc 컨트롤 플레인을 사용하는 것입니다. 그러나 이 문서에 설명된 기능은 Azure Arc에서 아직 제공되지 않으므로 아래 설명된 대로 Windows Admin Center 또는 PowerShell을 사용할 수 있습니다. 이러한 방식으로 만든 VM은 Arc 지원 VM이 아닙니다. Azure Arc 컨트롤 플레인의 관리 효율성이 제한되고 Azure Update Manager를 무료로 사용하지 않는 등의 Azure 하이브리드 혜택 줄어듭니다.

PowerShell을 사용하여 VM 관리 정보

일반적으로 클러스터의 호스트 서버가 아닌 원격 컴퓨터에서 VM을 관리합니다. 이 원격 컴퓨터를 관리 컴퓨터라고 합니다.

관리 컴퓨터에서 PowerShell 명령을 실행할 때 관리 중인 호스트 서버의 이름으로 매개 변수를 포함합니다 -ComputerName . NetBIOS 이름, IP 주소 및 정규화된 도메인 이름은 허용됩니다.

PowerShell을 사용하여 VM을 관리하는 방법에 대한 전체 참조 설명서는 Hyper-V 참조를 참조하세요.

VM 만들기

cmdlet New-VM 은 새 VM을 만드는 데 사용됩니다. 자세한 사용법은 New-VM 참조 설명서를 참조하세요.

기존 가상 하드 디스크를 사용하여 새 VM을 만들 때 지정할 수 있는 설정은 다음과 같습니다.

  • -이름 사용자가 만드는 가상 머신에 대해 제공하는 이름입니다.

  • -MemoryStartupBytes 는 시작 시 가상 머신에서 사용할 수 있는 메모리 양입니다.

  • -BootDevice 는 가상 머신이 시작될 때 부팅하는 디바이스입니다. 일반적으로 VHD(가상 하드 디스크), DVD 기반 부팅을 위한 .iso 파일 또는 네트워크 부팅용 네트워크 어댑터(NetworkAdapter)입니다.

  • -VHDPath의 경로 사용하려는 가상 머신 디스크입니다.

  • 경로 가상 머신 구성 파일을 보관할 경로입니다.

  • 세대 가상 머신 생성됩니다. VHD 및 VHDX에 대 한 2 세대에 1 세대를 사용 합니다.

  • -SwitchName 은 가상 머신이 다른 가상 머신 또는 네트워크에 연결하는 데 사용할 가상 스위치의 이름입니다. Get-VMSwitch를 사용하여 가상 스위치의 이름을 가져옵니다. 예시:

VM1이라는 VM을 만들기 위한 전체 명령은 다음과 같습니다.

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -SwitchName <Switch name>

다음 예제에서는 메모리가 4GB인 2세대 가상 머신을 만듭니다. 현재 디렉터리에 VMs\Win10.vhdx 폴더에서 부팅 하 고 ExternalSwitch 라는 가상 스위치를 사용 합니다. 가상 머신 구성 파일은 VMData 폴더에 저장됩니다.

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -VHDPath .\VMs\Win10.vhdx -Path .\VMData -Generation 2 -SwitchName ExternalSwitch

다음 매개 변수는 가상 하드 디스크를 지정하는 데 사용됩니다.

새 가상 하드 디스크를 사용하여 가상 머신을 만들려면 위의 예제에서 -VHDPath 매개 변수를 -NewVHDPath바꾸고 다음과 같이 -NewVHDSizeBytes 매개 변수를 추가합니다.

New-VM -ComputerName Server1 -Name VM1 -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win10.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -SwitchName ExternalSwitch

운영 체제 이미지로 부팅되는 새 가상 디스크를 사용하여 가상 머신을 만들려면 Windows 10에서 Hyper-V용 가상 머신 만들기 연습의 PowerShell 예제를 참조하세요.

VM 목록 가져오기

다음 예제에서는 Server1의 모든 VM 목록을 반환합니다.

Get-VM -ComputerName Server1

다음 예제에서는 명령을 사용하여 Where-Object 필터를 추가하여 서버에서 실행 중인 모든 VM 목록을 반환합니다. 자세한 내용은 Where-Object 설명서 사용을 참조하세요.

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Running"

다음 예제에서는 서버의 모든 종료 VM 목록을 반환합니다.

Get-VM -ComputerName Server1 | Where-Object -Property State -eq "Off"

VM 시작 및 중지

Start-VMStop-VM 명령을 사용하여 VM을 시작하거나 중지합니다. 자세한 내용은 Start-VMStop-VM 참조 설명서를 참조하세요.

다음 예제에서는 VM1이라는 VM을 시작하는 방법을 보여줍니다.

Start-VM -Name VM1 -ComputerName Server1

다음 예제에서는 TestVM이라는 VM을 종료하는 방법을 보여줍니다.

Stop-VM -Name VM1 -ComputerName Server1

VM 이동

cmdlet은 Move-VM VM을 다른 서버로 이동합니다. 자세한 내용은 Move-VM 참조 설명서를 참조하세요.

다음 예제에서는 VM이 Server1의 SMB 공유에 저장될 때 VM을 Server2로 이동하는 방법을 보여줍니다.

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2

다음 예제에서는 Server1에서 Server2로 VM을 이동하고 원격 컴퓨터에서 VM과 연결된 모든 파일을 D:\VM_name 이동하는 방법을 보여줍니다.

Move-VM -ComputerName Server1 -Name VM1 -DestinationHost Server2 -IncludeStorage -DestinationStoragePath D:\VM_name

VM 가져오기 또는 내보내기

Export-VM cmdlet은 Import-VM VM을 가져오고 내보냅니다. 다음은 몇 가지 예제를 보여 줍니다. 자세한 내용은 Import-VMExport-VM 참조 설명서를 참조하세요.

다음 예제에서는 구성 파일에서 VM을 가져오는 방법을 보여줍니다. VM은 현재 위치에 등록되므로 해당 파일이 복사되지 않습니다.

Import-VM -ComputerName Server1 -Name VM1 -Path 'C:\<vm export path>\2B91FEB3-F1E0-4FFF-B8BE-29CED892A95A.vmcx'

다음 예제에서는 VM을 D 드라이브의 루트로 내보냅니다.

Export-VM -ComputerName Server1 -Name VM1 -Path D:\

VM 이름 바꾸기

cmdlet Rename-VM 은 VM의 이름을 바꾸는 데 사용됩니다. 자세한 내용은 Rename-VM 참조 설명서를 참조하세요.

다음 예제에서는 VM1의 이름을 VM2로 바꾸고 이름이 바뀐 가상 머신을 표시합니다.

Rename-VM -ComputerName Server1 -Name VM1 -NewName VM2

VM 검사점 만들기

cmdlet Checkpoint-VM 은 VM에 대한 검사점을 만드는 데 사용됩니다. 자세한 내용은 Checkpoint-VM 참조 설명서를 참조하세요.

다음 예제에서는 Test라는 VM에 대해 BeforeInstallingUpdates라는 검사점을 만듭니다.

Checkpoint-VM -ComputerName Server1 -Name VM1 -SnapshotName BeforeInstallingUpdates

VM에 대한 VHD 만들기

cmdlet New-VHD 은 VM에 대한 새 VHD를 만드는 데 사용됩니다. 사용하는 방법에 대한 자세한 내용은 New-VHD 참조 설명서를 참조하세요.

VM에 네트워크 어댑터 추가

cmdlet Add-VMNetworkAdapter 은 VM에 가상 네트워크 어댑터를 추가하는 데 사용됩니다. 다음은 몇 가지 예제를 보여 줍니다. 사용 방법에 대한 자세한 내용은 Add-VMNetworkAdapter 참조 설명서를 참조하세요.

다음 예제에서는 VM1이라는 가상 머신에 Redmond NIC1이라는 가상 네트워크 어댑터를 추가합니다.

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -Name "Redmond NIC1"

다음은 가상 네트워크 어댑터를 VM1이라는 가상 머신에 추가하고 네트워크라는 가상 스위치에 연결하는 예제입니다.

Add-VMNetworkAdapter -ComputerName Server1 -VMName VM1 -SwitchName Network

VM에 대한 가상 스위치 만들기

cmdlet New-VMSwitch 은 VM 호스트의 새 가상 스위치에 사용됩니다. 사용하는 방법에 대한 자세한 내용은 New-VMSwitch 참조 설명서를 참조하세요.

다음 예제에서는 유선 이더넷 연결 3이라는 네트워크 어댑터에 바인딩하고 가중치 기반 최소 대역폭을 지원하는 "QoS 스위치"라는 새 스위치를 만듭니다.

New-VMSwitch "QoS Switch" -NetAdapterName "Wired Ethernet Connection 3" -MinimumBandwidthMode Weight

VM에 대한 메모리 설정

cmdlet Set-VMMemory 은 메모리를 VM으로 구성하는 데 사용됩니다. 사용하는 방법에 대한 자세한 내용은 Set-VMMemory 참조 설명서를 참조하세요.

다음 예제에서는 VM1이라는 VM에서 동적 메모리를 사용하도록 설정하고 최소, 시작 및 최대 메모리, 메모리 우선 순위 및 버퍼를 설정합니다.

Set-VMMemory -ComputerName Server1 -Name VM1 -DynamicMemoryEnabled $true -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

VM에 대한 가상 프로세서 설정

cmdlet Set-VMProcessor 은 VM에 대한 가상 프로세서를 구성하는 데 사용됩니다. 사용하는 방법에 대한 자세한 내용은 Set-VMProcessor 참조 설명서를 참조하세요.

다음 예제에서는 두 개의 가상 프로세서, 10%의 예약, 75%의 제한 및 200의 상대적 가중치로 VM1이라는 VM을 구성합니다.

Set-VMProcessor -ComputerName Server1 -Name VM1 -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

VM 제거

PowerShell을 통해 VM을 제거하거나 삭제하면 VM의 구성 파일이 삭제되지만 연결된 가상 하드 드라이브는 삭제되지 않습니다. 가상 하드 드라이브를 비롯한 모든 파일이 있는 VM을 삭제하려면 Windows Admin Center를 사용하는 것이 좋습니다.

VM을 삭제하기 전에 VM이 OFF인지 확인합니다. VM을 삭제하면 구성 파일이 돌이킬 수 없게 삭제됩니다.

서버에서 VM 제거

서버에서 VM 및 해당 리소스를 제거하거나 삭제하려면 먼저 다음 cmdlet을 사용하여 서버의 모든 VM을 찾습니다.

Get-VM -Name VM1

그런 다음 서버에서 제거하려는 각 VM에 대해 다음 cmdlet을 실행합니다.

Remove-VM -Name VM1

클러스터에서 VM 제거

클러스터에서 VM 및 해당 리소스를 제거하거나 삭제하려면 먼저 다음 cmdlet을 사용하여 해당 리소스를 찾습니다.

Get-ClusterGroup

그런 다음 클러스터에서 제거하려는 각 VM에 대해 다음 cmdlet을 실행합니다.

Remove-ClusterGroup -RemoveResources -Name VM1

다음 단계

Windows Admin Center를 사용하여 VM을 만들고 관리할 수도 있습니다. 자세한 내용은 Windows Admin Center를 참조하세요.