Załóżmy, że mam system plików ZFS, który zawiera obrazy dysków maszyny wirtualnej, np
/tank/examplevm/examplevm-flat.vmdk
Załóżmy ponadto, że codziennie wykonuję migawki tego systemu plików ZFS, np
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
Oczywiście w okresie między każdą codzienną migawką wprowadzane są zmiany w moim examplevm-flat.vmdk (w większości przypadków rozmiar obrazu pozostaje stały, ale bloki na dysku wirtualnym są modyfikowane).
W związku z tym polecenie ZFS diff będzie teraz raportować plik jako zmodyfikowany między dwoma migawkami:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
Chociaż dobrze jest wiedzieć, że plik został zmodyfikowany, byłbym bardziej zainteresowany liczbą bajtów / bloków, które zostały zmodyfikowane w vmdk.
Dlatego byłbym zainteresowany wszelkimi wskazówkami dotyczącymi następujących pytań:
- Czy ZFS ma jakąś funkcję raportowania liczby zmienionych bloków w określonym pliku pomiędzy dwoma migawkami?
- Czy jest jakieś inne narzędzie, które binarnie różnicuje dwa obrazy systemu plików i zgłasza liczbę zmienionych bloków lub bajtów? Zdaję sobie z tego sprawę
cmp –l file1 file2 | wc –l
, ale jest to strasznie, strasznie powolne.