Hallo, wenn ich auf einem COW-fähigen Dateisystem Die Datei A habe und davon die COW-kopien B und C erstelle, was passiert dann, wenn ich A überschreibe/lösche? 1) B und C sind nun redundant gespeichert 2) B und C bleiben dedupliziert
Sollte nr. 2 sein.
Stefan H. schrieb: > wenn ich auf einem COW-fähigen Dateisystem Die Datei A habe und davon > die COW-kopien B und C erstelle, was passiert dann, wenn ich A > überschreibe/lösche? COW läßt sich am einfachsten verstehen, wenn jeder Datenblock einen Zähler (Link-Counter; LC) bekommt, der anzeigt von wievielen Stellen aus er verwendet wird. Beim Kopieren eines Blocks wird der LC einfach erhöht. In der Ausgangs- situation ist also jeder Datenblock von A/B/C mit LC=3 markiert. Wenn du eine der 3 Dateien (egal welche) löschst, dann verringert sich der LC jeweils auf 2. Wenn du auf eine der 3 Dateien (wieder egal welche) schreibst, dann werden für den beschriebenen Teil neue Datenblöcke alloziert, mit LC=1 und für die bisher verwendeten Blöcke wird der LC auf 2 reduziert. Ganz allgemein gilt das: wenn du auf einen Block schreibst, der LC>1 hat, dann wird in diesem Moment eine private Kopie des Blocks gemacht und beschrieben. Deswegen "copy on write".
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.