
Auf jedem Betriebssystem erstelle ich Snapshots, die größer sind als der belegte FS-Speicherplatz. Beispiel: Wenn ich ein FS mit dem Namen /try mit 250 GB habe, der belegte Speicherplatz aber 100 GB beträgt, erstelle ich einen Snapshot mit 100 GB oder etwas mehr. Unter AIX erstelle ich einen Snapshot mit einer Größe unterhalb des belegten FS-Speicherplatzes ... und es funktioniert. Auf einem logischen Volume mit 2 GB erstelle ich eine Datei mit 590 MB
dd if=/dev/zero of=hello bs=1m count=590
590+0 records in
590+0 records out
dann erstelle ich den Snapshot von 256mb statt 590MB oder mehr
snapshot -o snapfrom=/try -o size=256m
Snapshot for file system /try created on /dev/fslv00
df melde die korrekte Größe des FS "try"
df -hT /try
/dev/try jfs2 2,0G 591M 1,5G 29% /try
Ich kann den Snapshot mounten
mount -o snapshot /dev/fslv00 /mnt/
DF-Berichtsgröße von 256 MB für den Snapshot, aber mit 1,5 MB Nutzung!
df -hT /mnt
/dev/fslv00 jfs2 256M 1,5M 255M 1% /mnt
Für den letzten Versuch habe ich eine MD5-Summenprüfung einer Datei durchgeführt … und das funktioniert sowohl für Snapshots als auch für echte Dateisysteme.
b7fb2207c641085a9cf02064edf1742e /mnt/hello
b7fb2207c641085a9cf02064edf1742e /try/hello
Die Fragen sind einfach: Wie kann die Snapshot-Größe kleiner sein als die Größe des realen Dateisystems? Warum ist der Speicherplatz auf dem Snapshot (1,5 MB) kleiner als der belegte Speicherplatz (591 MB) des realen Dateisystems?
Antwort1
Lösung gefunden. Es ist „möglich“, einen Snapshot mit einer Größe unterhalb der verwendeten FS-Größe des realen FS zu erstellen, aber es ist völlig nutzlos. Wenn ich die Originaldatei /try/hello lösche, wird die Snapshot-Größe groß (aufgrund der Übertragung der Dateiblöcke), aber weil ich sie unterhalb der Größe des realen FS erstellt habe, wird das FS voll und die Datei „hello“ wird beschädigt und gibt einen E/A-Fehler zurück.
df -hT /mnt
/dev/fslv00 jfs2 256M 256M 0 100% /mnt
md5sum /mnt/hello
md5sum_64: /mnt/hello: There is an input or output error.