가끔은 게스트 가상 머신(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이 실행 중인 주요 가상 디스크는 첫 번째 체크포인트의 부모 역할을 하며, 이 체크포인트는 두 번째 체크포인트의 부모 역할을 하고, 두 번째 체크포인트는 세 번째 체크포인트의 부모 역할을 합니다.
체크포인트 구조를 설정하려면 다음 단계를 수행하십시오:
- Hyper-V 관리자를 엽니다.
- 중앙 패널에서 스냅숏을 병합하려는 VM을 선택합니다.
- 우측의 동작 섹션에서 디스크 검사를 클릭합니다.
- .avhd(x) 파일을 선택하고 확인을 클릭합니다.
- 다음으로, 선택한 .avhd(x) 파일의 이름, 위치 및 부모의 이름을 포함한 가상 하드 디스크 속성의 일반적인 개요를 확인할 수 있습니다. 선택한 .avhd(x) 파일의 부모를 결정합니다.
- 병합 순서를 식별하기 위해 각 .avhd(x) 파일에 대해 단계 3-5를 반복합니다.
그 후에 Hyper-V 스냅숏 병합 프로세스를 시작할 수 있습니다. 병합 작업 중 문제가 발생하지 않도록 가상 머신을 꺼야 합니다.
Hyper-V 스냅숏을 병합하려면 다음을 수행하십시오:
- Hyper-V 관리자를 엽니다.
- 필요한 가상 머신을 선택합니다.
- 디스크 편집을 클릭합니다. 디스크 가상 하드 디스크 편집 마법사가 열립니다.다음을 클릭합니다.
- 찾아보기를 클릭하여 최신 .avhdx 파일을 선택합니다. 다음을 클릭합니다.
- 변경 내용을 부모 또는 다른 디스크로 병합하려면 병합을 선택합니다. 다음을 클릭합니다.
- 부모 가상 하드 디스크로를 선택하고 완료를 클릭합니다.
- Hyper-V 스냅숏 병합 프로세스를 완전히 완료하려면 모든 .avhd(x) 파일에 대해 단계 1에서 5까지를 반복하여 변경 사항을 원래 부모 디스크에 병합합니다.
- 마지막 단계는 구현된 변경 사항을 적용하기 위해 가상 머신을 재부팅하는 것입니다.
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/