Hyper-V 스냅샷 병합하는 방법: 단계별 안내

가끔은 게스트 가상 머신(VM) 중 하나에 OS 업데이트 또는 보안 패치를 설치해야 할 때가 있습니다. 그러나 업데이트 프로세스는 때로는 잘못되어 시스템 장애, 구성 데이터 손실 또는 특정 프로그램의 제거로 이어질 수 있습니다. Microsoft Hyper-V는 특정 시점에서 VM 상태를 저장하고 시스템 오류가 발생할 경우 시스템을 이전 상태로 롤백할 수 있는 Hyper-V 스냅숏을 생성할 수 있는 기회를 제공했습니다.

이 블로그 글에서는 Hyper-V 관리자 또는 PowerShell을 사용하여 Hyper-V 스냅숏을 병합하는 방법과 사용 방법에 대해 설명하겠습니다. 그러나 Hyper-V 스냅숏을 관리하는 방법을 배우려면 먼저 그들 뒤에 있는 기술을 이해해야 합니다.

Hyper-V 스냅숏이란?

A Hyper-V snapshot is a point-in-time copy of a VM, which contains all the information required to restore your data. With the use of Hyper-V snapshots, you can revert the VM to a point when the VM state was captured and the snapshot was taken. Hyper-V snapshot technology is enabled by default when the Hyper-V role is installed on your computer and your first VM is created. Hyper-V snapshots of a selected VM can be taken in any state (Off, Running, Paused, and Saved) and the operation is typically complete in a few seconds.

Hyper-V 스냅숏은 현재 Hyper-V 체크포인트로 알려져 있지만, 이 두 용어는 모두 유효합니다.

Hyper-V 스냅숏의 유형

Microsoft Hyper-V는 두 가지 유형의 스냅숏을 제공합니다:

  • 프로덕션 스냅숏은 게스트 OS 내에서 백업 기술을 적용하여 VM의 데이터 일관성 있는 스냅숏을 생성합니다. 이를 위해 Windows Volume Shadow Copy Service (VSS) 또는 Linux File System Freeze가 사용됩니다. Hyper-V 프로덕션 스냅숏은 애플리케이션 및 게스트 OS의 데이터 일관성을 향상시키므로 제품 환경의 상태를 캡처하는 데 사용될 수 있습니다. Hyper-V 프로덕션 스냅숏은 VM 메모리 상태, CPU 활동 정보 또는 하드웨어 구성 정보를 캡처하지 않습니다.

새 OS 버전(Windows Server 2016 및 Windows 10)에서는 제품 생산 체크포인트가 체크포인트 유형의 기본 옵션입니다. 그러나 Hyper-V 관리자 또는 Windows PowerShell에서 변경할 수 있습니다.

  • 표준 스냅샷 은 VM 상태, CPU 활동 및 메모리, 특정 시점의 하드웨어 구성을 캡처합니다. 따라서 표준 Hyper-V 스냅샷을 사용하면 응용 프로그램의 현재 상태를 캡처하고 VM을 특정 시점 상태 또는 조건으로 롤백할 수 있습니다. 주로 개발 및 테스트 시나리오에서 사용됩니다. Hyper-V 표준 스냅샷을 만드는 것은 신뢰할 수 있는 백업 전략으로 간주할 수 없습니다. VSS를 인식하지 않는 응용 프로그램에서 데이터 일관성 문제를 일으킬 수 있습니다.

Hyper-V 스냅샷 작동 방식

Hyper-V VM은 .vhd(x) 파일 형식의 가상 디스크에 저장됩니다. 동시에 해당 Hyper-V VM에 생성된 스냅샷 파일은 .avhd(x) 파일 형식으로 저장되며 하드 디스크 이미지 파일과 동일한 폴더에 보관됩니다. Hyper-V 스냅샷은 기본적으로 차이 디스크이며 각각의 스냅샷은 해당 부모 가상 하드 디스크와 부모-자식 관계를 가집니다. 각 VM에 대해 최대 50개의 스냅샷을 만들 수 있습니다. 모든 Hyper-V 스냅샷은 계층적으로 구성되어 있으며 이로 인해 체크포인트 하위 트리를 형성합니다.

그러나 문제는 .avhd(x) 파일이 쌓이고 많은 디스크 공간을 차지하며 결과적으로 VM 성능에 영향을 미친다는 것입니다. 불필요한 .avhd(x) 파일을 제거하려면 Hyper-V 스냅숏을 삭제해야 합니다. 이 옵션은 실제로 스냅숏을 삭제한다는 것을 의미하지 않습니다. 대신, 단순히 Hyper-V 스냅숏과 그 안에 포함된 데이터를 부모 디스크 또는 다른 가상 디스크로 병합합니다. 컴퓨터에서 Hyper-V 스냅숏을 직접 삭제하는 것은 권장되지 않습니다. Hyper-V 스냅숏을 병합한 후에는 모든 .avhd(x) 파일이 디스크에서 삭제됩니다. 이렇게 하면 Hyper-V 호스트에서 추가적인 공간을 생성할 수 있습니다.

Hyper-V 스냅숏 병합하는 방법

이전 블로그 게시물 중 하나에서 우리는 Hyper-V 스냅숏을 관리하는 방법(생성, 적용, 이름 변경, 활성화/비활성화 등)을 다룬 적이 있습니다. 그러나 오늘의 블로그 포스트는 Hyper-V 스냅숏을 수동으로 병합하는 가이드 역할을 합니다.

Hyper-V 스냅숏을 병합하려면 Hyper-V 관리자 또는 PowerShell을 사용해야 합니다. 이 두 가지 접근 방법에 대해 아래에서 설명하겠습니다.

Hyper-V 관리자 사용

Hyper-V 스냅숏을 병합하는 방법을 설명하기 전에 병합할 스냅숏을 먼저 결정해야 합니다. Hyper-V 스냅숏은 특정 순서로 병합되어야 합니다: 자식에서 부모로. 따라서 생성 순서를 확인하여 체크포인트 트리의 구조를 설정하는 것이 중요합니다. 가장 최신 것부터 가장 오래된 것까지 생성 순서를 결정해야 합니다.

위에서 언급한 대로 각 스냅숏은 그보다 이전에 만들어진 다른 스냅숏과 부모-자식 관계를 갖습니다. 이 모든 것들은 하나의 체인 형태로 표현될 수 있습니다. 예를 들어, 1개의 가상 하드 디스크에 3개의 스냅숏이 생성되었습니다. VM이 실행 중인 주요 가상 디스크는 첫 번째 체크포인트의 부모 역할을 하며, 이 체크포인트는 두 번째 체크포인트의 부모 역할을 하고, 두 번째 체크포인트는 세 번째 체크포인트의 부모 역할을 합니다.

체크포인트 구조를 설정하려면 다음 단계를 수행하십시오:

  1. Hyper-V 관리자를 엽니다.
  2. 중앙 패널에서 스냅숏을 병합하려는 VM을 선택합니다.
  3. 우측의 동작 섹션에서 디스크 검사를 클릭합니다.
  4. .avhd(x) 파일을 선택하고 확인을 클릭합니다.
  5. 다음으로, 선택한 .avhd(x) 파일의 이름, 위치 및 부모의 이름을 포함한 가상 하드 디스크 속성의 일반적인 개요를 확인할 수 있습니다. 선택한 .avhd(x) 파일의 부모를 결정합니다.
  6. 병합 순서를 식별하기 위해 각 .avhd(x) 파일에 대해 단계 3-5를 반복합니다.

그 후에 Hyper-V 스냅숏 병합 프로세스를 시작할 수 있습니다. 병합 작업 중 문제가 발생하지 않도록 가상 머신을 꺼야 합니다.

Hyper-V 스냅숏을 병합하려면 다음을 수행하십시오:

  1. Hyper-V 관리자를 엽니다.
  2. 필요한 가상 머신을 선택합니다.
  3. 디스크 편집을 클릭합니다. 디스크 가상 하드 디스크 편집 마법사가 열립니다.다음을 클릭합니다.
  4. 찾아보기를 클릭하여 최신 .avhdx 파일을 선택합니다. 다음을 클릭합니다.
  5. 변경 내용을 부모 또는 다른 디스크로 병합하려면 병합을 선택합니다. 다음을 클릭합니다.
  6. 부모 가상 하드 디스크로를 선택하고 완료를 클릭합니다.
  7. Hyper-V 스냅숏 병합 프로세스를 완전히 완료하려면 모든 .avhd(x) 파일에 대해 단계 1에서 5까지를 반복하여 변경 사항을 원래 부모 디스크에 병합합니다.
  8. 마지막 단계는 구현된 변경 사항을 적용하기 위해 가상 머신을 재부팅하는 것입니다.

PowerShell 사용

하이퍼-V 스냅샷을 병합하기 전에 컴퓨터에서 Merge-VHD cmdlet이 활성화되어 있는지 확인하십시오. 그렇지 않으면 다음 오류가 화면에 표시됩니다:
'Merge-VHD'는 cmdlet, 함수, 스크립트 파일 또는 실행 가능한 프로그램의 이름으로 인식되지 않습니다.
이름의 철자가 올바른지 확인하거나 경로가 포함된 경우 해당 경로가 올바른지 확인한 후 다시 시도하십시오.

이 문제를 해결하려면 PowerShell을 관리자 권한으로 열고 다음 명령을 실행하십시오:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell

모든 것이 올바르면 다음이 표시됩니다:

이제 Merge-VHD cmdlet을 실행할 준비가 되었습니다. 이 작업은 오프라인으로 수행됩니다.

하이퍼-V 스냅샷을 병합하려면 다음 cmdlet을 실행하십시오:

Merge-VHD 경로 = '' 대상경로 = ''

이 경우, 새로운 것부터 시작하여 여러 자식 디스크의 데이터를 가장 오래된 부모 디스크로 병합할 수 있습니다. 화면에는 다음이 표시됩니다:

작업이 완료되면 게스트 VM을 종료하고 시스템을 다시 시작하십시오. Hyper-V Manager가 디스크 체인의 각 레이어를 별도로 병합하도록 요구하는 반면, PowerShell을 사용하면 단일 명령으로 이와 같이 복잡한 작업을 수행할 수 있습니다.

하이퍼-V 스냅샷을 사용해야 하는 이유

Hyper-V 스냅숏을 사용하면 구성 변경, 새 소프트웨어 설치, OS 업데이트 실행, 보안 패치 업그레이드 등을 적용하기 전에 VM의 상태를 저장할 수 있습니다. 가상 인프라를 변경할 수 있는 작업을 수행하거나 실패 가능성이 높은 작업을 수행하기 전에 VM의 Hyper-V 스냅숏을 만들어 두세요. 이전 상태로 시스템을 복원해야 하는 경우에 대비하여 안전망 역할을 합니다.

그러나 Hyper-V 스냅숏은 개발 및 테스트 환경에서 사용할 때 최상의 결과를 제공합니다. 이는 효과적이고 신뢰할 수 있는 백업 대안이 아니며 제품 환경에서 사용을 권장하지 않습니다. 대신 전체 기능을 갖춘 Hyper-V 백업 솔루션을 고려하십시오. 이 솔루션은 다양한 데이터 보호 옵션을 포함하고 있으며 전통적인 인프라 유지보수와 비교했을 때 상당한 시간, 비용 및 노력을 절약할 수 있습니다.

Source:
https://www.nakivo.com/blog/merge-hyper-v-snapshots-step-step-guide/