⫸VMware

가상 머신 스냅샷

OSMU-PIPELINE 2022. 10. 11. 11:13
반응형

스냅샷

 

스냅샷이란 운영 중인 가상 머신의 상태를 그대로 보전해 주어 언제든지 원할 때 이전 상태로 돌아가게끔 해주는 기능이다. 가상 머신이 모두 파일로 존재하기 때문에 가상 디스크 및 구성 파일들을 전부 순간 복사하는 것이라고 이해하면 좋다. 실제 물리적인 서버에 Windows 운영체제를 설치하여 사용 중인 환경에서 중요한 핫픽스 프로그램을 설치하기 전 혹시나 발생할 수 있는 문제를 미연에 방지하고자 하드웨어 어레이 컨트롤러에 의해 미러가(RAID 1)되어 있는 디스크 한 개를 온라인상에서 제거한 다음 핫픽스 패치를 적용하고, 시스템 재시작 후 다시 디스크를 리빌딩하는 식의 위험천만한 방법을 사용하고 있는 경우가 많다. 스냅샷은 바로 이러한 운영 상의 문제점을 해결할 수 있는 대안이다.

운영 중인 시스템에 새로운 핫픽스 프로그램을 설치하거나 신규 서비스나 애플리케이션 테스트를 해야 할 경우 또는 시스템 업그레이드나 패치 작업을 해야 할 경우 스냅샷을 이용하면 언제든지  그 이전의 상태로 되돌아갈 수 있다.

가상 머신에 대하여 스냅샷을 적용하는 순간 가상 머신을 구성하고 있는 모든 파일 및 데이터가 보존되는데, 스냅샷 적용 이전으로 언제든지 돌아가야 하기 때문에 가상 머신이 작동되는 순간의 모든 데이터와 메모리 값이 그대로 보존되어야 한다. 스냅샷을 적용할 경우 새로 생성되는 파일은 다음과 같다.

 

스냅샷 구조
<스냅샷>

 

• <가상 머신명>-delta.vmdk - 스냅샷을 생성하게 되면, 가상 머신의 VMDK 가상 디스크 파일은 읽기 전용(Read-only) 속성으로 바뀌게 되며, 이후 가상 머신에게 전달되는 모든 I/O는  delta.vmdk 파일, 즉 델타 디스크에 업데이트 된다. 델타 디스크 파일은 최초 16MB의 크기로 시작되며, 원본 가상 디스크의 블록에 변경이 가해질 경우 실제 업데이트는 델타 디스크 파일에 가해진다. 이때의 변경은 단순히 파일이 생성되는 것만이 아니며, 삭제와 이동과 같이 디스크의 블록 자체가 변경되는 모든 작업이 해당된다. VMFS의 특성상 파일 크기가 변경되면 메타데이터가 업데이트되어야 한다. 이때 과도한 SCSI reservation을 막기 위해 약 16MB 크기로 매번 증가한다. 그러나 델타 디스크가 계속 커져서 원본 가상 디스크보다 더 커지는 일은 발생할 수 없다. 왜냐하면 어디까지나 델타 디스크 파일은 원본 가상 디스크 파일에 변경된 블록 데이터 값을 가지고 있을 뿐이다. 원본 가상 디스크의 모든 데이터가 변경되거나 삭제되었다고 하더라도 이론상 그 크기가 같아질 수는 있겠지만 원본의 크기를 넘어설 수는 없다.

 

• <가상 머신명>.vmsd - 스냅샷에 대한 각종 메타데이터 정보를 담아두는 구성 파일이다. 최초 0바이트 크기로 시작되지만 스냅샷을 적용하게 되면 이후 스냡샷명, UID 값, 디스크 파일명 등의 정보를 텍스트 기반으로 업데이트 하게 된다. 일종의 스냅샷 히스토리 내역을 관리하는 파일이며, 스냅샷을 지우더라도 vmsd 파일은 남아 있게 된다.

 

• <가상 머신명>.vmsn - 스냅샷 작동 당시의 가상 머신 상태 정보 및 메모리 값을 담아두는 파일이다.

 

SQL이나 Exchange  서버 서비스와 같이 매우 빈번하게 데이터가 업데이트되는 경우, 델타 디스크 크기는 급격하게 증가될 것이지만, 웹 서버 서비스나 애플리케이션 서비스용 서버 같은 경우에는 그 증가율이 크지 않다. 그렇기 때문에 가상 머신이 어떤 서비스의 성격이냐에 따라 최초 VMFS 볼륨 크기를 적절하게 설정해야 한다. 보통 스냅샷을 위한 공간으로서 가상 디스크 크기 대비 평균 약 20% 이상의 여유 공간을 확보하는 편이다.

스냅샷 생성 시 두 가지 옵션을 발견할 수 있는데, 첫 번째는 Snapshot the virtual machine's memory이며, 두 번째는 Quiesce guest file system이다.

 

우선 두 번째 옵션을 먼저 설명하면, Quiesce guest file system의 경우 VMware Tools 설치 시에 포함된 SYNC 드라이버 또는 VSS 드라이버를 이용하는 방식이다. 먼저 SYNC 드라이버를 사용하게 되면, 스냅샷이 작동되는 순간 게스트 운영체제의 파일 시스템에 어떠한 데이터 업데이트도 되지 않도록 I/O를 막아주고, 캐시 등의 메모리에 잔존해 있는 데이터를 정상적으로 디스크에 업데이트 하게 된다. 이렇게 함으로써 스냅샷이 작동되어 완료되는 그 순간까지의 I/O 업데이트가 이루어지지 않기 때문에 그 이전과 이후의 상태가 서로 동일해지는 무결성 상태를 유지하게 된다.

그러나 이 옵션으로는 완벽하지가 않다.

 

첫 번째 옵션인 Snapshot the virtual machine's memory는 가장 정밀하고 깨끗하게 스냅샷을 생성하고자 할 경우 선택하는 옵션이다. 가상 머신의 메모리 내용을 보존하지 않은 채 스냅샷을 생성한 다음 다시 이전 상태로 되돌릴 경우, 게스트 운영체제는 마치 순간 하드웨어 장애가 발생한 다음 재시작된 것으로 착가하게 된다. 왜냐하면 아직 채 디스크에 업데이트하지 못하고 메모리에 잔류하고 있던 각종 데이터들이 생성된 스냅샷 이전으로 복구되면, 갑자기 필름이 끊긴 듯 머릿속이 텅 비어 버렸기 때문이다. 바로 이러한 경우를 대비하고자 Snapshot the virtual machine's memory 옵션이 존재한다. 이 옵션을 선택할 경우 스냅샷이  작동되는 그 시점에 가상 머신의 모든 메모리 값들마저 전부 보존된다. 이때 가상 머신에게 할당된 메모리 크기만큼 <가상 머신명>.vmsn 파일이 생성된다. 그렇기 때문에 이 옵션을 선택할 경우 그렇지 않았을 경우보다 스냅샷 파일 생성시간이 좀 더 소요된다.

반응형

'⫸VMware' 카테고리의 다른 글

Storage VMotion 작동 원리  (0) 2022.10.13
VMotion 작동 원리  (0) 2022.10.12
가상 머신의 구조  (0) 2022.10.10
vCenter 서버 구조  (0) 2022.10.09
VMware 스토리지 - 데이터스토어  (0) 2022.10.08