Ralf schrieb:
"Lentes, Bernd"
writes: Hallo,
Ich habe ein LV, in welchem eine VM liegt. LV ist 300GB groß, ~100GB belegt. Von diesem LV habe ich einen Snapshot angelegt, 120GB groß.
Jetzt habe ich alle Dateien in dem Original LV gelöscht, danach waren da noch 190 MB belegt. Den snapshot habe ich _vor_ dem Löschen angelegt. Nach meinem Verständnis müssten nun all die gelöschten Dateien in den snapshot verschoben werden. Mounte ich den snapshot, sehe ich auch alle Dateien.
Es hat mich aber gewundert, wie schnell der Löschvorgang stattfand, immerhin lagen da 50 Dateien à 2 GB drin. Und die müssten ja eigentlich während des Löschens im Hintergrund in den snapshot verschoben werden.
Ein LVM Snapshot enthält zunächst nur Referenzen auf die Daten (Physical Extends - PE) des eigentlichen Volumes. Abzüglich einiger weniger LVM Metadaten dafür nimmt ein Snapshot also keinen zusätzlichen Platz ein. Für die PE selbst wird ein Copy-On-Write (COW) durchgeführt wenn ein PE verändert/überschrieben wird. Stell dir vor, du änderst im Ursprungs-LV eine 200MB Datei, indem du ein Byte auch wirklich veränderst. Dann wird das eine PE (typischerweise 4MB groß), in dem sich das Byte befindet, dupliziert. Der Snapshot bekommt das PE mit dem Urpsungszustand, das Urpsungs-LV das veränderte. Zusätzlich werden dabei noch weitere PEs verändert, in denen sich Filesystem-Metainformationen (Inode der veränderten Datei) wie z.B. Änderungszeitstempel etc. befinden. Durch dieses COW füllt sich langsam der Snapshot, und zwar immer dann, wenn im Ursprungs-LV Daten verändert werden.
Soweit so gut. Nun zu deiner Beobachtung, warum das Löschen von Dateien trotz Snapshot so schnell geht und kaum zusätzlichen Platz belegt. Zum einen werden beim Löschen von Dateien typischerweise die Inhalte der Datenblöcke der Dateien nicht verändert. Alle PE, die die eigentlichen Inhalte deiner Dateien tragen werden also gar nicht angefasst und damit durch die COW Strategie auch nicht verändert. Verändert werden Filesystem-Metadaten, indem Verzeichniseinträge entfernt, Inodes verändert und Inodes und Datenblöcke in den Inode und Blockbitmaps als frei markiert werden. Für den Snapshot müssen also nur die PE mit den Metadaten dupliziert werden. Dies ist im Vergleich zu den Inhalten bei dir dann relativ wenig. Wenn du nach dem Löschen anfängst neue Dateien anzulegen und mit Inhalten zu füllen, dann wirst du sehen, das auch durch das dann einsetzende COW der "Daten-PE" der Füllstand deines Snapshots steigt.
HTH, Ralf
Hi, Ok. Ich bin davon ausgegangen, daß Löschen = Ändern = Verschieben in den snapshot bedeutet. Tatsächlich liegen die gelöschten Dateien weiterhin im Original-LV, und im snapshot wird daraufhin verwiesen. Jetzt versteh ich aber etwas anderes nicht: Lt. man lvdisplay ergibt lvisplay -c folgenden Output, durch Doppelpunkte getrennt: * logical volume name * volume group name * logical volume access * logical volume status * internal logical volume number * open count of logical volume * logical volume size in sectors * current logical extents associated to logical volume * allocated logical extents of logical volume * allocation policy of logical volume * read ahead sectors of logical volume * major device number of logical volume * minor device number of logical volume Ich mach das mal auf dem betr. System: ============================================ pc53200:/media/lv_extern_snapshot # lvdisplay -c ... /dev/vg_extern/lv_extern:vg_extern:3:1:-1:1:629145600:76800:-1:0:0:253:9 /dev/vg_extern/lv_extern_snapshot:vg_extern:3:1:-1:1:251658240:30720:-1:0:0:253:10 ============================================= Lt. man ist die 9. Spalte "allocated logical extents of logical volume", was ich als "belegte LE's im LV" übersetze. Wieso ist das bei den LV's (bei den anderen übrigens auch) -1 ? Da müssten doch LE's belegt sein. Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org