VMWare 스냅 샷에서 영구적으로 실행하면 성능이 저하됩니까?


18

VMWare KB는 주로 두 가지 이유로 인해 오랫동안 실행되는 스냅 샷에 눈살을 찌푸리게됩니다.

  • 수많은 스냅 샷을 생성하면 데이터 저장소가 가득 찰 수 있습니다. 스냅 샷은 단순히 델타 파일입니다. 거의 꽉 찬 50 Gig VMDK가 있고 스냅 샷을 생성한다고 가정 해 보겠습니다. 스냅 샷에서 모든 단일 비트를 뒤집습니다. 델타 파일도 약 50GB입니다. 다시 스냅 샷, 비트, 다른 50 기가 델타 파일을 뒤집습니다. 이것들은 빨리 통제 할 수 없게됩니다.

  • 큰 스냅 샷을 커밋하면 위험이 따릅니다. 스냅 샷을 통합 할 때 델타 변경 사항을 원래 VMDK에 기록합니다. 시간이 걸리고 어떤 일이 발생하면 VMDK를 손상시킬 위험이 있습니다.

그들의 경고는 논리적으로 이해되는 것 같습니다.

그렇게 말하면 내 컴퓨터를 스냅 샷 VMDK에서 영구적으로 실행하는 것이 본질적으로 좋지 않습니까? 내 나무를 다음과 같이 만들고 싶습니다.

  • 베이스
    • 스냅 1
      • 스냅 2
      • 당신은 여기에 있습니다

기본 시스템을 설치하고 프로비저닝 한 직후 스냅 1과 2가 사용됩니다. 이들은 자주 새로 고칠 계획이므로 트리를 다음과 같이 간단하게 만들 것입니다.

  • 베이스
    • 스냅 1
      • 당신은 여기에 있습니다
      • 스냅 2

Snap2를 삭제하고 Snap2를 다시 만드십시오.

다음과 같은 이유로 이것이 어떤 영향을 미칠 수 있는지 알 수 없습니다.

  • 단순히 기본 이미지를 설치하고 데이터 저장소를 채울 수있는 방법이 없으면 즉시 델타를 가져갔습니다. 기본 이미지가 10GB (50GB 씬 프로비저닝 디스크)라고 가정 할 때, 델타가 모든 단일 비트를 뒤집 었더라도 총 총 사용량은 60GB (잠긴 10GB 기본 VMDK + 50GB의 델타 인)가 될 수 있습니다 스냅 샷 VMDK 파일). 이것은 더 이상 스냅 샷을 만들지 않는다고 가정합니다.

  • 유스 케이스는 스냅 샷 통합을 요구하지 않으므로 델타를 통합 할 때 오류가 발생하지 않습니다. Snap1으로 돌아가 Snap2를 삭제하면 Snap2에 있던 모든 델타가 단순히 삭제됩니다.

  • 스토리지로드는 정확히 동일하므로 동일한 IOPS를 가져와야합니다. 일부 파일 (주로 시스템 파일)이 원래 VMDK에 존재하고 다른 파일 (베이스 이후의 모든 파일)이 델타에 상주하지만 ESXI가 어떻게 신경 쓰는지 알지 못합니다. 모든 파일은 동일한 물리적 데이터 저장소에 있으므로 성능은 스냅 샷없이 원래 VMDK의 모든 항목을 참조하는 것과 동일해야합니다.

이견있는 사람? RAID가 DAS 인 데이터 저장소가있는 ESXI 5.5.

vCenter 라이센스가 없으므로 템플릿 및 복제 작업이 중단됩니다.

테스트 결과

오늘 테스트를 시작하기 위해 일찍 도착했습니다. 결과는 다음과 같습니다. 성능 저하가 있지만 왜 그런지 잘 모르겠습니다.

스냅 샷 전에 : 스냅 샷 전에

스냅 샷 후 : Shapshoting 후


확실하지 않습니다-시간이 지남에 따라 스냅 샷이 점점 더 다양해집니다. 마지막으로 본질적으로 다른 사본이됩니다. 스냅 샷을 생성하여 디스크를 많이 확보하지 않으면 스냅 샷을 완전히 별도의 볼륨으로 변환하십시오. 어떻게? 일반적으로 저는 세 번째 VM의 dd를 사용하지만 대부분 이단 의견에 대해서는 여기에서 거의 십자가에 못 박혔습니다. :-)하지만 : 그것은 할 일을 하고있을 것입니다 효과 .
peterh-Reinstate Monica

@PeterHorvath-내가 듣기 좋아하는 것들입니다. 똑똑하고 해킹되고 효과적인 베어 본 솔루션. 당신이 마음에 들지 않으면 당신은 저에게 pastebin 또는 무엇을하는지에 대한 글을 쓸 수 있습니까? VMDK와 스냅 샷을 함께 DD합니까?
VM_Storage_Inception

더 자주 그렇게해야한다면 대본으로 했어요. 그러나 그것은 사실이 아니며 대부분의 경우 스냅 스냅을 사용하지 않습니다. 왜냐하면 느리기 때문입니다.
peterh-Reinstate Monica

답변:


17

예, 장기 실행 스냅 샷의 성능에 영향을 미칩니다. 델타 VMDK를 원래 디스크 파일로 다시 통합 할 때 더 큰 의미가 있습니다. 이로 인해 VM 운영 체제가 응답하지 않거나 다른 바람직하지 않은 동작이 발생할 수 있습니다.

VMware에는 vCenter에 템플릿 및 복제 기능이 내장되어 있습니다. 이 기능을 사용하려면 $ 600 vSphere Essentials 라이센스가 필요합니다.

취향에 따라 VM을 만든 다음 템플릿으로 복제 할 수 있습니다. 그런 다음 해당 템플릿을 사용하여 "골든 마스터"이미지에서 새 가상 머신생성 할 수 있습니다 .

여기에 이미지 설명을 입력하십시오

이를 통해 "깨끗한 상태"를 유지하면서 해당 마스터 이미지에서 오래 실행되거나 영구적 인 VM을 생성 할 수 있습니다. 스냅 샷이 필요하지 않습니다.


흥미롭게도, 나는 그것을 조사하고 그것이 어떻게 작동하는지 알아볼 것입니다. 불행히도 나는 vCenter 라이센스가 없으며 내가 설명하는 방식으로 사용되는 스냅 샷에 성능 관련이 없다면 내 조직 쉘에 600 달러를 지불하지 않을 것입니다. 또한 템플릿 및 복제는 OVA를 사용하여 재배치하는 것과 다르지 않습니다. 스냅 샷 삭제가 훨씬 빨라져서 "공식 VMWare 승인 방법"이 아닌데도 성능에 어떤 영향이 있는지 논리적으로 알 수 없습니다.
VM_Storage_Inception

편집 내용에 응답하기 위해 기사를 가리 키거나 성능에 미치는 영향을 설명해 주시겠습니까? 내가 설명하는 방법을 사용한다고 가정하면 어떻게 될지 알 수 없습니다. 또한 스냅 샷을 원래 VMDK로 다시 통합하지 않습니다.
VM_Storage_Inception

단기 액세스에 사용되는 기능을 중심으로 디자인하려는 이유를 이해하려고 노력하고 있습니다.
ewwhite

@VM_Storage_Inception-VMWare의 기능이 부족한 제품 랩 관리자에 대한 빈약 한 접근 방식을 원하는 것처럼 보입니다.
TheCleaner

5
때로는 올바른 솔루션을 구입 하는 것이 합리적입니다. 지원되는 템플릿 / 복제 옵션을 제공하는 vSphere Essentials 라이센스 (600 달러)를 지불하는 것보다 해결 방법에 대해 더 많은 노력과 시간 을 투자했습니다.
ewwhite

4

ewwhite의 대답은 맞지만 조금 더 또는 성능 저하를 확대하려면 다음 시나리오를 고려하십시오.

VM을 생성합니다. vmdk에서 가상 읽기는 동일한 크기의 물리적 디스크 읽기를 하나받습니다. 매우 간단합니다.

이제 VM의 스냅 샷을 생성한다고 가정하십시오. 이제 모든 가상 읽기에 대해 기본 상태 vmdk와 델타 vmdk에서 각각 2 개의 물리적 읽기가 발생합니다. 현재 상태를 얻으려면 두 가지 정보가 모두 필요하기 때문입니다. 이제 실제 디스크 읽기의 두 배입니다.

두 개의 스냅 샷의 경우 읽기를 세 번 수행하는 등의 작업을 수행합니다. 스냅 샷이 많은 경우 이것이 상당히 중요한 성능 저하가 될 수있는 방법을 알 수 있습니다. 캐싱, 변경되지 않은 섹션 등으로 인해 성능이 n 배 더 나쁜 성능으로 변환 될 필요는 없지만 좋은 습관은 아닙니다.


스냅 샷에서 "어떤 블록이 어떤 파일에 있는지"테이블을 사용한다고 확신합니다. 따라서 하나의 단일 블록을 읽으면 해당 파일에서 하나의 블록 만 읽습니다. 물론, 여러 블록을 읽으면 여러 파일에 액세스 할 수 있습니다. 이는 SSD에서 실행 중이 아닌 경우 디스크 헤드 이동에 대한 페널티를 의미하지만 총 디스크 블록 액세스 수는 변경되지 않아야합니다.
Guntram Blohm은 Monica

1
내가 이해하는 방식으로 스냅 샷은 원본 디스크의 변경 사항 만 저장합니다. 파일 A를 저장 한 다음 스냅 샷을 작성한 다음 파일 A를 다시 변경하면 해당 파일의 변경 사항 만 스냅 샷에 기록됩니다. 따라서 전체 파일을 가져 오려면 원본 VMDK와 스냅 샷을 모두 읽어야합니다. 그렇지 않으면 각 스냅 샷은 단순히 원본 디스크의 전체 복사본이되지만 그렇지 않습니다.
tfrederick74656

맞지만 읽을 수있는 총 블록 수는 동일하게 유지됩니다 (예 : 스냅 샷의 10 개 블록과 기본 디스크의 100 개 블록). ESXi는 먼저 올바른 스냅 샷 (또는 기본 디스크)에서 끝날 때까지 필요한 블록의 기존 스냅 샷을 확인합니다. 스냅 샷이 전혀 없을 때 시스템이 해당 스냅 샷 통과 부분을 완전히 건너 뛰기 때문에 약간의 패널티가있을 수 있습니다. 또한 오래 실행되는 스냅 샷 파일은 심각한 조각화로 인해 어려움을 겪을 수 있습니다.
Dirk Trilsbeek

N 스냅 샷에 대해 N 읽기를 수행하는 가상 디스크 스냅 샷 시스템은 매우 어리석은 구현입니다. 그것이 VMWare에서 어떻게 구현되는지 의심 스럽습니다. 에뮬레이트 된 드라이브의 각 블록이 어떤 디스크 파일에 저장되어 있는지 색인 파일을 작성하여 간단한 최적화를 수행 할 수 있습니다. 블록 크기가 4kB 인 512GB 가상 디스크가 있다고 가정하면 일정한 시간 내에 최대 16 개의 가상 디스크 파일 중 어느 블록이 블록을 포함하는지 결정하려면 64MB 인덱스 만 필요합니다.
Lie Ryan

1
serverfault.com/questions/430138의 답변을 바탕으로 동의하지 않아야합니다. 저는 항상 새로운 데이터 수집이 아니라 이진 산술의 결과로 스냅 샷을 생각했습니다. 따라서 기본 VMDK에 비트 01010101이 있고 스냅 샷 한 다음 해당 비트를 10101010으로 변경하면 델타에는 11111111이 포함됩니다 (원래 파일의 모든 비트가 10101010이 아닌 원래 파일의 모든 비트가 변경되었음을 나타냄). 위의 의견에 동의하는 한 VMDK는 아마도 원시 파일입니다. 인덱스는 어디에 저장됩니까? 나는 VMWare 기술 펍에서 이것을 언급 한 적이 없습니다.
tfrederick74656

0

VMware ESX 스냅 샷은 단기 사용을위한 것입니다.

사용량이 길고 IO가 많으면 VM이 정지 될 수 있습니다. 쓰기 IO가 스냅 샷 통합보다 크거나 빠른 경우 ESX는 VM을 정지시켜 데이터를 보호합니다. 시간 스냅 샷이 단편화되고 ESX는 내부 통합을 수행하여 주기적 정지를 경험할 수 있습니다.

ssh를 통해 수동으로 VM 템플릿을 수행 할 수 있습니다. vmdk, vmx 등을 포함하는 VM 폴더를 새 폴더로 복사하십시오. 새로 복사 된 VM의 vmx 파일에서 UID 및 MAC 주소를 변경하십시오.

VMware에는 제품인 Linked Clone이 있습니다. 그리고 그들은 잠재적 인 성능 문제가 있다고 말합니다. 실제로 잠시 후에 VM을 리마스터링하게됩니다. https://www.vmware.com/support/ws5/doc/ws_clone_typeofclone.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.