가상 시스템 스냅샷은 VMware vSphere 환경에서 일반적으로 사용되는 기능입니다.
가장 일반적인 질문 중 하나는 “VM 스냅샷 생성/삭제가 VM 내부에서 실행되는 게스트 애플리케이션의 성능에 미치는 영향은 무엇입니까?”입니다.
이 블로그 항목에서는 다양한 워크로드가 있는 VMFS, vSAN 및 vVOL 환경에서 이러한 성능 측면을 살펴보고 권장 사항을 제공합니다.
스냅샷(snapshot)이란?
스냅샷은 특정 시점에 VM의 상태 및 데이터를 보존합니다.
- 상태에는 VM의 전원 상태(예: 전원 켜짐, 전원 꺼짐, 일시 중단됨)가 포함됩니다.
- 데이터에는 VM을 구성하는 모든 파일이 포함됩니다. 여기에는 디스크, 메모리 및 가상 네트워크 인터페이스 카드와 같은 기타 디바이스가 포함됩니다.
VM은 스냅샷 및 스냅샷 체인을 생성하고 관리하기 위한 몇 가지 작업을 제공합니다. 이러한 작업을 통해 스냅샷을 생성하고 체인의 모든 스냅샷으로 복구하며 스냅샷을 제거할 수 있습니다. 광범위한 스냅샷 트리를 생성할 수 있습니다.
vSphere 스냅샷에 대한 자세한 내용은 VMware 설명서 “Snapshot을 사용하여 가상 시스템 관리”를 참조하십시오.
스냅샷 형식
VM의 스냅샷을 생성하면 가상 디스크의 상태가 보존되고 게스트가 VM에 대한 쓰기를 중지하며 델타 또는 하위 디스크가 생성됩니다. 델타 디스크에 대해 선택한 스냅샷 형식은 기본 데이터스토어 및 VMDK 특성을 비롯한 여러 요인에 따라 달라지며 성능에 상당한 영향을 미칩니다.
SESparse
SEsparse는 VMFS6 데이터스토어에 있는 모든 델타 디스크의 기본 형식입니다. SEsparse는 VMFSsparse(Redo-log 형식이라고도 함)와 유사한 형식이며 몇 가지 기능이 향상되었습니다.
vSansparse
vSAN 6.0에 도입된 vSAN sparse는 메모리 내 메타데이터 캐시와 보다 효율적인 희소 파일 시스템 레이아웃을 사용하는 새로운 스냅샷 형식이며 VMFSsparse 또는 SEsparse에 비해 훨씬 더 가까운 기본 Disk 성능 수준에서 작동할 수 있습니다.
vVols/native 스냅샷
VMware vVols(가상 볼륨) 환경에서는 스냅샷 및 클론 작업과 같은 데이터 서비스가 스토리지 어레이로 오프로드됩니다. vVol을 사용하면 스토리지 벤더가 기본 스냅샷 기능을 사용하므로 vSphere 스냅샷은 거의 기본 Disk 성능 수준에서 작동할 수 있습니다.
이 기술 백서에서는 vSphere 환경에서 지원되는 여러 데이터스토어를 사용할 때의 VM 스냅샷 성능에 대해 설명합니다.
성능 테스트 워크플로우
고려했던 각 워크로드 시나리오에 대해 스냅샷이 없는 VM 성능을 기준으로 사용합니다. 새로운 VM 스냅샷을 추가할 때마다 벤치마크에서 새로운 성능 수치를 캡처했습니다. 워크플로는 다음과 같습니다.
- 스냅샷(기준선) 없이 테스트 VM 내에서 워크로드 실행
- 테스트 VM의 스냅샷 생성
- 테스트 VM 내에서 워크로드 실행
- 위의 2, 3단계를 반복하여 반복한다.
성능
우리의 첫 번째 실험은 랜덤 4KB I/O의 100%와 순차 4KB I/O의 100%를 갖는 두 세트의 FIO 테스트 시나리오를 포함했다. 세 번째 테스트 세트에서는 디스크 I/O 구성 요소가 없는 SPECjbb 2015 워크로드를 사용했습니다.
FIO workload parameters
-ioengine=libaio -iodepth=32 –rw=randrw –bs=4096 -direct=1 -numjobs=4 -group_reporting=1 -size=50G –time_based -runtime=300 -randrepeat=1
-ioengine=libaio -iodepth=32 –rw=readwrite –bs=4096 -direct=1 -numjobs=4 -group_reporting=1 -size=50G –time_based -runtime=300 -randrepeat=1
SPECjbb 2015 parameters
JAVA_OPTS : -Xms30g -Xmx30g -Xmn27g -XX:+UseLargePages -XX:LargePageSizeInBytes=2m -XX:-UseBiasedLocking -XX:+UseParallelOldGC specjbb.control (type/ir/duration): PRESET:10000:300000
스냅샷이 없는 기본 게스트 애플리케이션 성능은 세 데이터스토어 모두에서 다릅니다. 이는 기본 하드웨어와의 차이로 인해 발생합니다. 이 연구의 주요 초점은 스냅샷을 사용한 게스트 애플리케이션 성능에 미치는 영향을 이해하는 것입니다.
VMFS 데이터스토어를 사용할 때 VM 스냅샷이 있으면 게스트 애플리케이션 성능에 가장 큰 영향을 미칩니다. 그림 1과 2에서 볼 수 있듯이 VMFS의 FIO 성능(랜덤 및 순차 I/O)은 첫 번째 스냅샷과 함께 크게 저하됩니다.
VMFS에 스냅샷이 있을 때 게스트 성능에 미치는 영향은 SEsparse redo 로그의 특성 때문입니다. I/O가 스냅샷이 있는 VM에서 발급될 때 vSphere는 데이터가 기본 VMDK(VM 스냅샷 작업 전에 작성된 데이터)에 있는지, 아니면 redo-log(VM 스냅샷 작업 후 작성된 데이터)에 있는지, I/O가 그에 따라 처리되는지 여부를 결정합니다. 결과 I/O 지연 시간은 I/O 유형(읽기 대 쓰기), 데이터가 redo-log 또는 기본 VMDK에 존재하는지 여부, 스냅샷 수준, redo-log 크기 및 기본 VMDK 유형에 따라 달라집니다.
VMFS와 비교하여 vSAN 데이터스토어에 VM 스냅샷이 있으면 순차적 I/O가 대부분인 워크로드의 게스트 애플리케이션 성능에 미치는 영향이 최소화됩니다. VMFS 시나리오와 유사하게 임의 I/O 테스트의 경우 게스트 성능이 vSAN에 미치는 영향이 상당합니다.
세 가지 시나리오 중 VM 스냅샷이 있는 경우 vVOL 사용 시 게스트 성능에 미치는 영향이 가장 적습니다. 기본 스냅샷 기능 덕분입니다. 실제로 테스트 결과 스냅샷 체인을 늘렸음에도 영향이 거의 0에 가까운 것으로 나타났습니다.
SPECjbb 성능은 모든 테스트 시나리오에서 스냅샷(그림 3)이 존재하더라도 영향을 받지 않았습니다. VM 델타 디스크에 대한 I/O가 없기 때문에 디스크 I/O 구성 요소가 없기 때문에 이 작업이 필요합니다.
스냅샷 제거가 게스트 성능에 미치는 영향
스냅샷을 삭제하면 스냅샷 간의 변경 내용이 통합되고 델타 디스크의 모든 데이터가 상위 스냅샷에 기록됩니다. 기본 상위 스냅샷을 삭제하면 모든 변경 사항이 기본 VM 디스크와 병합됩니다.
VM 스냅샷 통합/제거의 영향을 이해하기 위해 순차 I/O와 랜덤 I/O가 50:50으로 혼합된 16KB I/O 크기를 포함하는 FIO 테스트 시나리오를 고려했습니다.
이전 시나리오에서와 같이 스냅샷 수를 1개에서 12개로 늘렸고 새로운 VM 스냅샷을 추가할 때마다 게스트 애플리케이션 성능을 캡처했습니다. 그런 다음 VM 스냅샷을 삭제하여 워크플로우를 되돌렸고 각 VM 스냅샷을 제거한 후 게스트 애플리케이션 성능을 캡처했습니다.
그림 4에는 두 개의 차트가 포함되어 있습니다. 첫 번째 차트는 각 스냅샷을 추가할 때 게스트 애플리케이션 성능에 미치는 영향을 보여 줍니다. 이전 100% 랜덤 I/O 시나리오에서와 같이(그림 1) 스냅샷이 있는 상태에서 VMFS와 vSAN 모두에서 50% 랜덤 I/O 테스트를 실행하면 게스트 성능에 상당한 영향을 미칩니다. 다시 한 번 vVOL의 게스트 성능은 영향을 받지 않습니다.
두 번째 차트는 모든 데이터스토어의 각 스냅샷 삭제로 성능을 복구할 수 있음을 보여 줍니다. 모든 스냅샷을 삭제하면 게스트 성능이 스냅샷을 생성하기 전의 성능과 유사합니다. 실제로 스냅샷 제거 후 게스트 성능은 거의 스냅샷 생성 이전 이후의 게스트 성능을 반영하는 이미지입니다.
추천 사항
스냅샷을 사용할 때 최상의 성능을 얻으려면 다음 권장 사항을 따르는 것이 좋습니다.
- 스냅샷이 있으면 특히 VMFS 환경에서 I/O 집약적인 워크로드의 게스트 성능에 상당한 영향을 미칠 수 있습니다. 따라서 스냅샷은 일시적으로만 사용하는 것이 좋으며, 조사 결과에 따르면 게스트는 스냅샷을 삭제한 후 성능을 완전히 복구합니다.
- 기본 스냅샷 기술을 사용하는 vVOL과 같은 스토리지 어레이를 사용하면 스냅샷이 있을 때 게스트가 영향을 받지 않도록 하는 것이 좋습니다.
- vVOL을 사용하는 것이 옵션이 아닌 경우 스냅샷을 사용할 때는 VMFS를 통해 vSAN을 사용하는 것이 좋습니다.
- 연구 결과는 스냅샷 체인 길이가 증가할수록 성능 저하가 더 크다는 것을 보여준다. 게스트 성능에 미치는 영향을 최소화하려면 가능하면 항상 스냅샷 체인 길이를 줄이는 것이 좋습니다.
VMware 스냅샷, 사용된 테스트베드에 대한 전체 세부 정보, 고려했던 다른 워크로드의 결과 및 VM 스냅샷이 VM 클론과 같은 다른 프로비저닝 작업에 미치는 영향에 대한 자세한 내용은 이 문서를 참조하십시오.
출처 : https://blogs.vmware.com/performance/2021/06/performance-best-practices-for-vmware-snapshots.html