สมมติว่าฉันมีระบบไฟล์ 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
ทำอย่างนั้น แต่มันช้ามากอย่างน่ากลัว