मान लेते हैं कि मेरे पास एक ZFS फाइल सिस्टम है जिसमें वर्चुअल मशीन डिस्क चित्र हैं, उदाहरण के लिए
/tank/examplevm/examplevm-flat.vmdk
चलो आगे मान लेते हैं कि मैं उस ZFS फाइलसिस्टम के दैनिक स्नैपशॉट लेता हूं, उदा
$ zfs snapshot tank@20120716
$ zfs snapshot tank@20120717
जाहिर है, प्रत्येक दैनिक स्नैपशॉट के बीच की अवधि में, परिवर्तन मेरे उदाहरण के लिए किए जाते हैं- flat.vmdk (ज्यादातर मामलों में, छवि का आकार स्थिर रहता है, लेकिन वर्चुअल डिस्क में ब्लॉक संशोधित होते हैं)।
तदनुसार, ZFS डिफर कमांड अब फाइल को दो स्नैपशॉट के बीच संशोधित रूप में रिपोर्ट करेगा:
$ zfs diff tank/@20120716 tank@20120717
M /tank/examplevm/examplevm-flat.vmdk
हालांकि यह जानना अच्छा है कि फ़ाइल को संशोधित किया गया है, मुझे बाइट्स / ब्लॉकों की संख्या में अधिक दिलचस्पी होगी जो कि vmdk में संशोधित किए गए हैं।
इसलिए, मुझे निम्नलिखित प्रश्नों पर किसी भी संकेत में दिलचस्पी होगी:
- क्या ZFS में दो स्नैपशॉट के बीच एक विशिष्ट फ़ाइल में परिवर्तित ब्लॉकों की संख्या की रिपोर्ट करने की कोई सुविधा है?
- क्या कोई अन्य उपकरण है जो द्विआधारी दो फाइल सिस्टम छवियों को अलग करेगा और बदले हुए ब्लॉकों या बाइट्स की संख्या की रिपोर्ट करेगा? मुझे लगता है कि
cmp –l file1 file2 | wc –l
ऐसा करता है, लेकिन यह बहुत ही भयानक है, बहुत धीमी है।