스냅 샷이 VM 성능에 직접 영향을 미친다는 VMware KB 기사 중 하나를 읽었습니다.
그러나 팀은 스냅 샷이 성능에 어떤 영향을 미치는지 계속 묻습니다.
스냅 샷이 성능 저하 요인이라는 진술 뒤에 확실한 이유를 제시하고 싶습니다.
스냅 샷이 실제로 성능에 어떤 영향을 미치는지에 대해 약간의 이론을 설명 할 수 있습니까? 하드 디스크의 디스크 I / O 속도가 느리기 때문입니까?
스냅 샷이 VM 성능에 직접 영향을 미친다는 VMware KB 기사 중 하나를 읽었습니다.
그러나 팀은 스냅 샷이 성능에 어떤 영향을 미치는지 계속 묻습니다.
스냅 샷이 성능 저하 요인이라는 진술 뒤에 확실한 이유를 제시하고 싶습니다.
스냅 샷이 실제로 성능에 어떤 영향을 미치는지에 대해 약간의 이론을 설명 할 수 있습니까? 하드 디스크의 디스크 I / O 속도가 느리기 때문입니까?
답변:
스냅 샷을 만들면 원본 디스크 이미지가 일관된 상태로 "고정 된"상태가되며 이후의 모든 쓰기 액세스는 새로운 차등 이미지로 이동합니다. 더 나쁜 것은 여기 및 여기에 설명 된 것처럼 차등 이미지는 변경 로그의 형식을 가지며 스냅 샷을 만든 이후 파일에 대한 모든 변경 사항을 기록합니다. 즉, 읽기 액세스는 하나의 파일뿐만 아니라 모든 차이 데이터 (원본 데이터와 원본 데이터에 대한 모든 변경 사항)도 읽어야합니다. 스냅 샷을 캐스케이드 연결하면 숫자가 훨씬 증가합니다.
VM에서 스냅 샷을 생성하면 델타 디스크가 생성되고 운영 체제는 원래 VMDK 대신이 파일에 씁니다. 이 파일을 VM_Name-Delta.VMDK라고하지만 시스템이 스냅 샷 전에 파일을 참조해야하는 경우이 조작의 I / O를 증가시키는 VM_Name.VMDK를 참조합니다. 여러 스냅 샷을 생성하는 경우 원래 VMDK가 아닌 마지막 스냅 샷의 마지막 델타 파일을 참조하므로 I / O가 증가합니다.
예.
OS ---> 스냅 샷 (파일 A 작성) ---> (스냅 샷 파일 B 작성)
파일 A를 참조 해야하는 경우 3 개의 VMDK를 통해이를 찾습니다.
또한 스냅 샷 생성시 VM의 메모리 상태를 포함 시키면 다시 델타 파일이되고 필요한 경우 원래 메모리 파일을 참조합니다.
스냅 샷 프로세스 시점에 생성 된 모든 파일을 나열하는 파일이 생성됩니다.
내가 알 수있는 한 VMWare는 COW (Copy-On-Write) 로직을 사용하여 스냅 샷을 구현합니다. 따라서 하나를 생성 할 때 VM에서 수행되는 모든 작업 (예 : 거의 모든 런타임)은 전체가 본질적으로 복제 될 때까지 약간의 VM이 복사되도록합니다.
이것의 또 다른 성능 문제는 작업 사본에 아직 데이터가없는 경우 (복사본을 변경하도록 아무것도 변경하지 않았기 때문에) 읽기는 원본 사본으로 캐스케이드되어야한다는 것입니다.
스냅 샷을 백업으로 만들고 싶지만 약간의 성능 저하를 견딜 수없는 경우 대신 VM 복제를 고려하십시오.
에서 높은 공동 스톱 (%의 향후 과제는) 가상 머신 스냅 샷 활동을하는 동안 볼 값들 :
가상 머신의 스냅 샷 크기 및 수가 증가함에 따라 vmkernel 내에서 스토리지 명령 조작 수가 늘어납니다. 가상 머신 게스트 OS에서 발행 한 각 스토리지 명령에 대해 가장 적절한 데이터 블록을 읽으려면 전체 스냅 샷 체인을 통과하는 여러 스토리지 명령 조작이 필요할 수 있습니다.