동일한 파일의 두 ZFS 스냅 샷간에 변경된 바이트 수 식별


10

가상 머신 디스크 이미지를 포함하는 ZFS 파일 시스템이 있다고 가정합니다.

/tank/examplevm/examplevm-flat.vmdk

그 ZFS 파일 시스템의 일일 스냅 샷을 생성한다고 가정 해 봅시다. 예 :

$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717

분명히 각 일일 스냅 샷 사이의 기간에 내 examplevm-flat.vmdk가 변경됩니다 (대부분의 경우 이미지 크기는 일정하게 유지되지만 가상 디스크의 블록은 수정 됨).

따라서 ZFS diff 명령은 파일을 두 스냅 샷간에 수정 된 것으로보고합니다.

$ zfs diff tank/@20120716 tank@20120717
M       /tank/examplevm/examplevm-flat.vmdk

파일이 수정되었다는 것을 아는 것이 좋지만 vmdk에서 수정 된 바이트 / 블록 수에 훨씬 더 관심이 있습니다.

따라서 다음 질문에 대한 힌트에 관심이 있습니다.

  • ZFS에는 두 스냅 샷 사이의 특정 파일에서 변경된 블록 수를보고하는 기능이 있습니까?
  • 두 개의 파일 시스템 이미지를 이진화하고 변경된 블록 또는 바이트 수를보고하는 다른 도구가 있습니까? 나는 그것이 cmp –l file1 file2 | wc –l그렇게한다는 것을 알고 있지만, 그것은 끔찍하고 엄청 느립니다.

답변:


7

ZFS에는보고 할 기능이 없지만 문서화되지 않은 zdb 도구를 사용하여 특정 데이터 세트 (파일 시스템 또는 스냅 샷)에서 파일이 사용하는 블록을 얻는 데 확실히 사용할 수 있으므로 약간의 스크립팅으로 원하는 것을 달성 할 수 있지만 zdb 출력을 처리하는 데 시간이 오래 걸릴 수 있습니다.

다음 은 zdb를 사용하여 파일 블록을 추출하는 방법을 보여주는 블로그입니다.

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