Identificazione del numero di byte modificati tra due istantanee ZFS dello stesso file


10

Supponiamo che io abbia un filesystem ZFS che contiene immagini del disco della macchina virtuale, ad es

/tank/examplevm/examplevm-flat.vmdk

Supponiamo inoltre che prenda istantanee quotidiane di quel filesystem ZFS, ad es

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

Ovviamente, nel periodo tra ogni istantanea giornaliera, vengono apportate modifiche al mio esempiovm-flat.vmdk (nella maggior parte dei casi, la dimensione dell'immagine rimane costante, ma i blocchi nel disco virtuale vengono modificati).

Di conseguenza, il comando diff ZFS ora segnalerà il file come modificato tra le due istantanee:

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

Mentre è bene sapere che il file è stato modificato, sarei molto più interessato al numero di byte / blocchi che sono stati modificati in vmdk.

Pertanto, sarei interessato a qualsiasi suggerimento sulle seguenti domande:

  • ZFS ha qualche funzione per segnalare il numero di blocchi modificati in un file specifico tra due istantanee?
  • Esiste un altro strumento che differenzierà binariamente due immagini del file system e segnalerà il numero di blocchi o byte modificati? Mi rendo conto che lo cmp –l file1 file2 | wc –lfa, ma è orribilmente, orribilmente lento.

Risposte:


7

ZFS non ha alcuna caratteristica per segnalare che, tuttavia, lo strumento zdb non documentato può certamente essere utilizzato per ottenere i blocchi utilizzati da un file in un determinato set di dati (filesystem o istantanea), quindi è possibile ottenere ciò che cerchi con un po 'di script, anche se è possibile probabilmente ci vorrebbe molto tempo per elaborare l'output di zdb.

Ecco un blog che mostra come utilizzare zdb per estrarre i blocchi di un file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.