Windows Server 2025 / 가상 머신의 CPU·메모리·VHDX 저장소를 관리하는 방법
Hyper-V VM의 CPU·메모리·VHDX는 호스트의 실제 자원과 게스트의 작업량을 함께 보고 조정합니다. 값을 크게 설정하는 것만으로 성능이 좋아지는 것은 아니며, 변경 전 설정을 기록하고 한 항목씩 바꿔 비교해야 합니다.
호스트·VM·게스트에서 보는 자원이 다릅니다
vCPU는 VM에 노출하는 가상 프로세서이며 물리 코어를 항상 전용으로 예약한다는 뜻은 아닙니다. 메모리는 고정 또는 동적으로 배정할 수 있고, VHDX는 게스트가 디스크로 사용하는 파일입니다. 호스트의 메모리 부족과 저장소 지연은 여러 VM에 동시에 영향을 줍니다.
| 관리 대상 | 호스트에서 확인 | 게스트에서 확인 |
|---|---|---|
| CPU | 동시에 실행 중인 VM·프로세서 설정·부하 | 작업별 CPU 사용·응답 시간 |
| 메모리 | 가용 메모리·VM 배정량 | 사용량·페이징·응용 프로그램 요구 |
| 저장소 | VHDX 파일 크기·볼륨 여유·지연 | 파티션 용량·파일시스템·여유 공간 |
실습 대상은 업무 데이터가 없는 HVTEST01입니다. 먼저 게스트에서 정상 종료하고 Hyper-V에서 Off 상태인지 확인합니다. 이 글은 실행 중 변경 가능 여부에 기대지 않고 꺼진 상태에서 설정을 비교합니다. 이전 값을 기록하면 CPU·메모리 설정은 되돌릴 수 있지만 데이터 디스크 축소는 같은 방식으로 단순 복구할 수 없습니다.
CPU 수는 작업과 함께 비교합니다
Get-VM -Name 'HVTEST01' | Select-Object Name,State,ProcessorCount
Get-VMProcessor -VMName 'HVTEST01' | Select-Object Count,Reserve,Maximum,RelativeWeight
- VM 설정 → 프로세서에서 기존 수를 기록합니다.
- 꺼진 HVTEST01의 프로세서 수만 2개에서 1개로 바꿉니다.
- 게스트를 시작하고 같은 파일 복사나 같은 관리 작업을 같은 조건에서 관찰합니다.
- 게스트 CPU 사용과 작업 시간, 호스트의 다른 부하를 함께 기록합니다.
- 게스트를 종료한 뒤 원래 2개로 돌립니다.
가벼운 관리 화면에서는 차이가 거의 없을 수 있습니다. 이는 실패가 아니라 해당 작업이 CPU 수 차이를 드러내지 않은 결과일 수 있습니다. 한 번의 관찰을 일반적인 성능 순위로 확대하지 마세요. 다수 VM에 vCPU를 과하게 배정하면 호스트 경합이 커질 수 있습니다.
고정 메모리와 동적 메모리를 선택합니다
고정 메모리는 시작 메모리 값을 기준으로 배정합니다. 동적 메모리는 최소·시작·최대 범위 안에서 게스트의 요구와 호스트 상황에 따라 배정량을 조정합니다. 최대값은 항상 확보되는 예약량이 아니며, 최소값은 게스트와 업무가 실제로 동작할 수 있는 범위여야 합니다.
HVTEST01이 꺼져 있고 호스트 여유가 충분할 때 아래 예시를 비교할 수 있습니다. 2·4·6GB는 실습용 범위이며 모든 서버에 적용할 권장값이 아닙니다. 앱이 동적 메모리를 지원하는지도 확인합니다. Set-VMMemory 매개변수에 각 값의 의미가 설명되어 있습니다.
Get-VMMemory -VMName 'HVTEST01' | Select-Object DynamicMemoryEnabled,Minimum,Startup,Maximum
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 6GB
시작 후 작업 관리자 수치만 보지 말고 Hyper-V의 배정 메모리·요구량과 호스트 가용 메모리를 비교합니다. 호스트에 시작 메모리조차 부족하면 VM이 시작되지 않을 수 있습니다. 관찰 후 정상 종료하고 원래 고정 4GB였다면 아래처럼 되돌립니다.
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $false -StartupBytes 4GB
VHDX 형식과 증가량을 구분합니다
고정 크기는 생성할 때 설정한 크기의 저장 공간을 미리 확보하고, 동적 확장은 데이터 기록에 따라 호스트 파일이 커집니다. 차등 디스크는 부모 디스크에 의존하므로 체인의 일부만 복사하거나 부모를 바꾸면 안 됩니다. 동적 확장도 최대 용량까지 커질 수 있어 호스트 여유 공간 알림이 필요합니다.
Get-VMHardDiskDrive -VMName 'HVTEST01' | Select-Object ControllerType,ControllerNumber,ControllerLocation,Path
Get-VMHardDiskDrive -VMName 'HVTEST01' | ForEach-Object { Get-VHD -Path $_.Path } | Select-Object Path,VhdType,FileSize,Size,ParentPath
Size는 게스트에 제공하는 가상 용량, FileSize는 호스트 파일 크기입니다. 게스트 파일 삭제가 호스트 VHDX 파일을 즉시 같은 양만큼 줄인다는 뜻은 아닙니다. 체크포인트의 AVHDX와 연결된 부모도 함께 관리해야 합니다.
새 데이터 디스크 추가와 용량 확장을 구분합니다
- HVTEST01을 정상 종료하고 OS용 VHDX 경로를 기록합니다.
- 설정 → SCSI 컨트롤러 → 하드 드라이브 추가에서 새 VHDX 마법사를 실행합니다.
- 새 이름 HVTEST01-Data.vhdx와 동적 확장 20GB를 선택합니다. 기존 OS 디스크 파일을 선택하지 않습니다.
- 게스트를 시작하고 디스크 관리에서 새 디스크의 크기와 상태를 확인합니다.
- 새 데이터 디스크임을 확인한 뒤 GPT 초기화와 새 볼륨을 구성합니다. D:가 사용 중이면 다른 빈 문자를 고릅니다.
VHDX를 생성하는 옵션은 New-VHD 참조에서도 확인할 수 있습니다. 기존 디스크의 용량을 늘리는 경우에는 백업·체크포인트 상태·컨트롤러 조건을 확인하고 VHDX 확장 후 게스트 파티션도 확장해야 합니다. 파티션 뒤에 연속된 미할당 공간이 없으면 단순 확장이 되지 않을 수 있습니다.
이 실습에서는 축소·변환·강제 연결 해제를 동시에 하지 않습니다. 새 데이터 디스크를 정리하려면 게스트 데이터를 먼저 보존하고 종료 후 해당 데이터 디스크 연결만 해제합니다. VM에서 분리했다고 실제 VHDX 파일이 삭제되지는 않으며, 파일을 지우기 전 다른 VM·차등 디스크의 의존성을 확인하세요.




