Hyper-V에서 VM 성능을 향상시키는 방법 상위 20가지 팁

하이퍼-V의 작동 방식

Microsoft에서 개발한 하이퍼-V는 가상화 소프트웨어입니다. 하이퍼-V를 사용하면 가상화된 버전의 컴퓨터, 가상 머신(VM)이라고 하는 것을 생성하고 실행할 수 있습니다. 동일한 호스트 서버의 하드웨어 리소스를 공유하면서 동시에 여러 개의 VM을 실행할 수 있습니다. 또한 모든 VM은 하나의 호스트 서버의 하드웨어 리소스를 공유하므로, 메모리, 프로세서, 스토리지 및 네트워킹 장치를 포함하여 효율적으로 사용하고 필요에 따라 VM에 쉽게 할당할 수 있습니다.

하이퍼-V는 Windows Server 및 Windows(2008 이상)에서 서버 역할로 사용 가능하며, 제한된 기능과 명령줄 인터페이스만 제공하는 무료 독립 제품(Hyper-V Server)으로도 사용할 수 있습니다.

자세히 알아보려면 컴퓨터에 Hyper-V Server를 설치하는 방법에 대한 블로그 게시물을 읽어 보세요.

일반적인 Hyper-V 문제

Hyper-V는 매우 고급 서버 가상화 플랫폼이지만 여전히 일부 성능 문제가 발생할 수 있습니다. 다음 시스템 구성 요소들이 실패하고 VM 성능 문제를 야기하는 가능성이 가장 높습니다:

  • 프로세서 (예: 논리적 또는 가상 프로세서 과부하, CPU 지연)
  • 메모리 (예: 메모리 과다 약속, RAM 부족, VM 시작 실패)
  • 네트워크 (예: 네트워크 바운드 호스트 및 VM, 네트워크 리소스의 불균형)
  • 저장소 (예: 디스크 지연, 물리적 저장 공간 낭비, I/O 처리량 저하)

이러한 하드웨어 구성 요소들은 이상한 활동이 감지된 경우 주의 깊게 모니터링되고 관리되어야 합니다.

문제의 대부분은 사용 가능한 리소스의 부적절한 사용으로 발생합니다. Hyper-V 호스트에는 사용 가능한 하드웨어 및 소프트웨어 리소스가 제한되어 있으며 그 위에 실행되는 VM들 사이에서 공유될 수 있습니다. 따라서, Hyper-V 호스트에서 동시에 실행 중인 VM의 수, 사용 가능한 리소스 소비 방식 및 과부하 또는 과소 공급 여부에 주의를 기울이는 것이 중요합니다. 이러한 모든 요소가 결합되면 VM 성능의 효율성과 신뢰성에 영향을 줄 수 있습니다.

A key aspect of optimizing and monitoring performance is to understand the actual amount of workload in your virtual infrastructure and how many resources would be required to provision such a workload. This way, you can identify potential risks and bottlenecks which might negatively affect your VM performance. The basic advice on improving Hyper-V performance is to avoid creating and running too many VMs on a single host, and to minimize unnecessary resource consumption within your virtual environment.

Hyper-V 환경에서 VM 성능을 향상시키는 20 가지 방법

다음 섹션에서는 간단한 구성 몇 가지를 사용하여 Hyper-V 환경에서 VM 성능을 향상시킬 수 있는 방법에 대해 설명하겠습니다.

따라서, VM 성능을 향상시키려면 다음을 수행할 수 있습니다:

1. Hyper-V 통합 서비스 활성화

Hyper-V 통합 서비스는 Hyper-V VM 내에서 실행되는 게스트 운영 체제(OS)의 성능을 향상시키기 위해 설계된 특별한 드라이버와 유틸리티 모음을 나타냅니다. 최적의 결과를 얻으려면 Hyper-V 호스트와 모든 게스트 OS에 Hyper-V 통합 서비스를 활성화하는 것이 좋습니다. 최신 Windows OS의 경우 모든 Hyper-V 통합 서비스(게스트 서비스 제외)가 기본적으로 제공됩니다. 그러나 VM이 Linux나 이전 버전의 Windows OS를 실행 중인 경우 해당 게스트 OS에서 통합 서비스가 자동으로 활성화되었는지 확인하는 것이 좋습니다. 그렇지 않은 경우 수동으로 설치해야 합니다.

2. 고정 VHD 파일 사용

고정 크기 디스크와 동적 확장 디스크는 특정 목적을 위해 설계되었습니다. 새 가상 하드 디스크를 만들 때 원하는 가상 하드 디스크 유형을 선택하라는 메시지가 표시됩니다. 올바른 선택을 하려면 먼저 가상 환경에서 어떻게 사용될지 고려해야 합니다. 고정 크기 디스크는 더 나은 성능을 제공하며 디스크 활동이 많은 애플리케이션을 실행하는 서버에 권장됩니다. 동적 확장 디스크는 물리적 저장 공간을 더 잘 활용하며 리소스가 많이 필요하지 않은 애플리케이션을 실행하는 서버에 권장됩니다.

고정 크기 디스크 공간은 가상 하드 디스크 파일이 생성될 때 할당되며 데이터가 추가되거나 제거되어도 변경되지 않습니다. 동적으로 확장되는 디스크 공간은 필요에 따라 할당되며 데이터가 추가되거나 제거되면 크기가 변경됩니다.

따라서 동적으로 확장되는 디스크는 테스트 및 배포 환경에서 사용되어야 하며, 고정 크기 디스크는 프로덕션 환경에서 더 잘 작동합니다.

3. 백업 대체로 하이퍼-V 스냅샷 사용하지 않기

하이퍼-V 스냅샷(또는 하이퍼-V 체크포인트로도 알려짐)은 백업으로 사용해서는 안 되며, 이들은 테스트 및 개발 환경에서 가장 효과적임이 입증되었습니다. 예를 들어 시스템에 패치와 업데이트를 설치하고 싶지만 가상 인프라에 어떤 영향을 미칠지 확실하지 않을 때가 있습니다. 이 경우 하이퍼-V 스냅샷을 찍는 것으로 실험해보고 실패할 경우 롤백할 수 있습니다.

백업과 달리 하이퍼-V 스냅샷은 VM 하드 디스크와 함께 프로덕션 데이터 저장소에 저장되어 VM에 종속됩니다. VM이 손상되거나 삭제된 경우 하이퍼-V 스냅샷도 손실됩니다. 백업은 일관된 및 독립적인 VM 복사본으로 작동하여 원격 위치에 쉽게 이동하고 저장할 수 있기 때문에 더 신뢰할 수 있는 데이터 보호 옵션입니다.

4. 페이지 파일 크기 구성하기

Pagefile.sys은 가상 메모리를 관리하고 메모리 부족 상황을 처리하기 위해 사용되는 Windows 페이지 파일입니다. 시스템이 물리적 메모리를 점점 부족하게 되면 페이지 파일을 통해 추가적인 RAM에 접근할 수 있습니다. 하지만 페이지 파일을 사용하는 것은 가끔 가상 머신 성능에 영향을 줄 수 있습니다. 그러므로 Windows 페이지 파일의 크기를 늘리고 최소값과 최대값을 RAM 용량의 3배로 설정하는 것이 권장됩니다.

5. 너무 많은 가상 네트워크 스위치를 생성하지 않습니다

여러 목적으로 사용될 다중 가상 네트워크 스위치를 생성하고 싶을 수 있습니다. 하지만 실제로는 단일 네트워크에서 너무 많은 가상 스위치를 사용하면 처리 과부하를 초래할 수 있습니다. VM 성능을 향상시키기 위해 하나의 가상 네트워크 스위치만 생성하고 다양한 경우에 사용하는 것이 권장됩니다. 효과적인 가상 네트워크 인프라에 포함되어야 하는 구성 요소와 Hyper-V 네트워크 가상화 작동 방식에 대해 알아보려면 블로그 포스트를 읽어보세요.

6. 관리 OS 과부하를 피합니다

A management OS is meant for running VMs, backup software, and anti-malware. That’s it! Anything that doesn’t match these criteria should be running on your VMs. Also, avoid creating too many VMs on the same Hyper-V host if you are not planning to use all of them. If you find that some of your VMs are no longer used and have no practical function in your virtual environment, it is better to delete them so that they are no longer consuming available hardware resources and overloading your Hyper-V host.

7. 불필요한 애플리케이션을 종료합니다

가상 머신을 동시에 여러 대 사용할 때는 매번 열어 놓은 모든 응용 프로그램을 모니터링하는 것이 어려울 수 있습니다. 그러나 그들을 너무 오랫동안 실행해 놓으면 사용 가능한 시스템 리소스를 소비하기 시작하여 결국 전반적인 가상 머신 성능에 영향을 미칩니다. 작업을 완료했고 더 이상 필요하지 않은 경우 가상 머신 연결 창, Hyper-V 관리자 및 기타 모든 응용 프로그램 창을 닫을 준비를 하십시오. 이는 가상 머신 성능을 향상시키는 간단하지만 효과적인 방법입니다.

8. Windows Server Core에 Hyper-V 설치

이 목록에서 가장 일반적으로 수용되는 조언 중 하나는 Windows Server Core에 Hyper-V를 설치하는 것입니다. GUI 경험이 있는 Windows Server와 비교할 때, Windows Server Core가 더 작은 풋프린트와 공격 표면을 가지고 있다는 것이 명백해집니다. 결과적으로 더 적은 하드웨어 리소스가 소비되며 전체 시스템에 취약점이 더 적습니다. 이러한 저장된 리소스는 이제 시스템에서 실행되는 VM 프로비저닝에 사용될 수 있으며, 이는 Hyper-V 환경에서 VM 성능을 크게 향상시킬 수 있습니다.

9. 성능 기준 설정

A performance baseline is the level of performance that your system displays in standard conditions. It is recommended that you set a performance baseline beforehand. This way, you can identify whether anything has changed in resource consumption, monitor the overall VM performance, and promptly respond to any system errors and failures that might have been detected.

10. 리소스 효율적으로 할당

11. Multipath I/O 활성화

Multipath I/O(MPIO)는 저장 장치와 서버 사이에 여러 가지 중복 데이터 경로를 제공하여 부하 분산을 개선하고 Hyper-V 환경의 고 가용성을 보장할 수 있습니다. 특히 대량의 데이터를 처리하는 경우, 이러한 기능을 프로덕션 환경에서 활성화하는 것이 좋습니다. 연결 실패가 발생한 경우, MPIO는 대체 경로를 사용하여 데이터 전송이 여전히 가능하도록 보장합니다.

12. 동적 메모리 사용

동적 메모리를 사용하면 게스트 OS가 활성 상태에서 더 많은 RAM이 필요할 때 VM에 추가 메모리 리소스를 추가할 수 있습니다. 반면에, 게스트 OS가 오프라인 상태이고 VM 성능을 지원하기 위해 많은 리소스가 필요하지 않은 경우, Hyper-V는 사용되지 않은 리소스를 회수하고 다른 실행 중인 VM에 할당할 수 있습니다. 또한, 동적 메모리를 구성하여 이 특정 VM에 사용 가능한 최대 및 최소 RAM 양을 지정할 수 있습니다.

다음과 같이 하이퍼-V 동적 메모리를 활성화 한 후에는 기본 메모리 설정을 변경하고 각 VM에 대한 동적 메모리 값을 현재 워크로드에 기반하여 구성하는 것이 좋습니다. 자세한 정보 및 권장 사항은 하이퍼-V 동적 메모리 최상의 실행 방법 블로그 게시물에서 확인하십시오.

13. VLAN 태깅 활성화

VLAN은 사용 가능한 네트워크 어댑터를 통한 네트워크 통신을 활성화하는 데 사용될 수 있습니다. 특별한 VLAN 태그를 추가하여 어떤 패킷이 어떤 가상 LAN에 속하는지 식별하고 시스템 내에서 네트워크 관리를 용이하게 할 수 있습니다.

VLAN 태깅은 여러 사용자를 동일한 VLAN에 그룹화하고 그들의 성능을 주의 깊게 모니터링할 수 있기 때문에 유용한 기능입니다. 게다가, VLAN 태깅은 특정 네트워크에 액세스하는 데 허용되는 사용자를 지정할 수 있으므로 가상 환경의 보안을 향상시킬 수 있습니다.

14. 가상 하드 디스크 조각 모음화

조각 모음화는 하나의 파일의 내용이 디스크의 다른 섹터에 저장될 때 발생합니다. 결과적으로, 저장 공간이 비효율적으로 사용되며 VM 성능이 영향을 받습니다. 이러한 문제가 발생하는 것을 방지하고 VM 성능을 향상시키기 위해 가상 하드 디스크를 조각 모음화하는 것이 권장됩니다. 이 작업은 사용 가능한 파일 및 응용 프로그램을 재조직하고 사용되지 않는 디스크 공간의 양을 식별하며 사용 가능한 리소스를 과소 소비로부터 보호하는 것을 허용합니다.

15. 하드웨어가 인증되었는지 확인하십시오

가상 인프라가 지연 및 중단 없이 작동할 수 있도록 보장하려면 Microsoft에서 인증한 하드웨어 및 소프트웨어 구성 요소를 사용해야 합니다. 이러한 구성 요소는 Hyper-V 환경에서 완벽하게 지원됩니다. 선택한 하드웨어 또는 소프트웨어 구성 요소가 실제로 인증되었는지 확인하고 환경에서 사용할 수 있는지 확인하려면 Microsoft Windows Server 카탈로그를 방문하고 필요한 정보를 찾으십시오.

16. RAID 10 볼륨 사용

RAID(중복 디스크 배열)는 여러 하드 디스크의 다른 영역에 데이터를 저장하는 방법으로, 저장 공간의 데이터 중복성과 오류 허용성을 향상시킬 수 있습니다. RAID 10은 RAID 1(디스크 미러링)과 RAID 0(디스크 스트리핑)을 결합한 것으로, 두 가지 배열 유형의 장점을 제공할 수 있습니다. RAID 10을 구축하려면 최소한 4개의 디스크가 필요하며, 결국 데이터를 안전하게 보호하고 드라이브 장애 시 데이터를 쉽게 검색할 수 있게 됩니다.

17. 64비트 게스트 OS 및 2세대 VM 배포

많은 경우 64비트 게스트 OS를 32비트 게스트 OS보다 선택하는 것이 권장됩니다. 이는 추가 메모리 공간을 제공할 수 있기 때문입니다. 따라서 전체 메모리 속도를 높이고 VM 성능을 향상시키려면 64비트 OS를 배포하는 것이 좋지만 필수는 아닙니다.

또한 하이퍼바이저 인식이 되도록 설계된 제2 세대 VM을 생성하는 것이 좋습니다. 이러한 VM은 에뮬레이트된 또는 합성 하드웨어에 의존하지 않으므로 제1 세대 VM과 달리 더 높은 수준의 보안을 보장할 수 있습니다. 제2 세대 VM은 안전 부팅 및 신뢰할 수 있는 플랫폼 모듈(TPM)을 사용하여 보안 수준을 높일 수 있으며 더 많은 부팅 옵션을 제공하여 VM 성능을 상당히 향상시킬 수 있습니다.

18. 안티바이러스를 올바르게 구성하세요

하이퍼-V 환경을 구축하기로 결정한 경우, 보안에 유의해야 합니다. 이를 위해 인프라 내에서 악성 활동을 탐지하고 차단하는 안티바이러스 또는 다른 안티맬웨어 소프트웨어를 설치할 수 있습니다.

그러나 올바르게 구성되지 않은 경우 안티바이러스는 시스템에서 실행 중인 중요한 프로세스와 작업에 방해가 될 수 있습니다. 따라서 안티바이러스의 기본 구성을 변경하고 특정 파일 및 애플리케이션을 정기적인 바이러스 스캔에서 제외해야 합니다.

정기적인 바이러스 스캔에 포함되지 말아야 할 파일 유형은 다음과 같습니다: .vhd, .vhdx, .avhd, .avhdx, .vsv, .iso, .rct, .vmcx, .vmrs. 그러나 특정 하이퍼-V VM의 안전을 보장하려면 선택한 VM에 안티바이러스를 설치하고 해당 VM 내에서 취약성 스캔을 실행하는 것이 좋습니다.

19. 바쁜 VM을 별도의 볼륨으로 구성하세요

VM을 여러 대 실행하여 대규모 워크로드를 처리하는 경우 동일한 저장 볼륨에 위치할 수 있습니다. 이는 현재 I/O 작업에 영향을 미칠 수 있으며 일반적으로 VM 성능을 저하시킬 수 있습니다. 이 문제를 피하기 위해 바쁜 VM을 별도의 볼륨에 유지하는 것이 좋습니다. 이렇게 하면 가상 하드 디스크 및 VM 구성 파일을 저장할 충분한 공간과 큰 워크로드를 실행할 충분한 하드웨어 리소스가 제공됩니다.

20. PowerShell cmdlet을 사용하여 작업 자동화

PowerShell cmdlet을 사용하는 주요 이점은 특정 작업을 자동화할 수 있도록 해준다는 것입니다. 따라서 Hyper-V 환경을 관리할 때 더 많은 유연성을 제공합니다. 일반적인 Hyper-V 관리 도구 (Hyper-V Manager 또는 SCVMM)에는 GUI가 포함되어 있지만 Hyper-V 호스트 및 VM을 관리하는 데 제한된 기능만 제공됩니다.일부 가상화 기능은 PowerShell을 사용하여만 활성화하고 구성할 수 있습니다. 따라서 PowerShell cmdlet의 힘을 과소평가해서는 안됩니다. 이 스크립트를 사용하는 방법을 이해하면 VM 성능을 새로운 수준으로 끌어 올리고 Hyper-V 환경을 관리하는 방식을 변화시킬 수 있습니다.

Source:
https://www.nakivo.com/blog/top-20-tips-improve-vm-performance-hyper-v/