ah, jetzt verstehe ich was du aussagen willst...
Das Problem zwischen uns scheint zu sein, dass zfs als Dateisystem Snapshots integriert. D.h. wenn jemand über zfs-snapshots redet, dann ist auch zfs als Dateisystem vorausgesetzt.
Falsch. Wenn das Dateisystem Fehler aufweist, muss dies noch lange nicht den Space des Snapshots betreffen. Somit ist keineswegs immer sicher, dass zu einem Snapshot auch das zugehörige Dateisystem noch existiert. Kopiert man nur den Snapshot, also den gespeicherten Merkle Tree und die veränderten Daten, hat man kein Backup. Und daher sind Snapshots keine Alternative zu Backups. Sie können lediglich genutzt werden um Backups daraus zu erstellen.
Okay...wenn man von Fehler ausgeht, dann sind einige Systeme nicht immer sicher. Es stimmt, ein zfs-snapshot alleine macht keinen Sinn - jedoch macht auch keiner nur eine Kopie des Snapshots - weswegen ich auch angenommen hatte, dass ZFS als Ganzes, nicht nur das eine Feature herausgefiltert, betrachtet wird...
Wieder falsch. Im Prinzip ist ein Snapshot lediglich ein "Merken" des Systems wie der Zustand eines Dateisystems zu einem bestimmten Zeitpunkt war. Anders gesagt: Der Zustand des Merkle Tree zum Zeitpunkt des Snapshots wird gespeichert. Wird nun das zum Snapshot gehörende Dateisystem modifiziert, kopiert das System die ursprüngliche Datei in den Snapshot. Diese Technik ist auch bekannt als "copy on write". Mit Verlinkungen hat ein Snapshot absolut nichts zu tun.
Das Wort "Zustand" verwirrt mich hier sehr...ein Merkle Tree ändert nicht seinen Zustand, sondern der Merkle Tree ändert sich. Somit sollte jeder Snapshot seinen eigenen Merkle Tree haben und nicht nur einen Zustand von einem Baum - immerhin müssen die jeweiligen Hashes aktiv neu berechnet werden...Auch das mit den "Verlinkungen" lasse ich hier eigentlich gerne stehen: Falls der Datenblock
nicht verändert wurde, dann wird dieser Datenblock als Hash im Baum referenziert - was für mich ein "Link" zu diesem Datenblock ist.
Ich vermute du beziehst dich dabei auf die Mechanismen 'zfs send' und 'zfs receive'. Ja, dabei wird eine Kopie des Snapshots erstellt, aber eben auch eine Kopie des dem Snapshot zugrundeliegenden Dateisystems.
zfs ist das Dateisystem...
Und sobald sich im ursprünglichen Dateisystem etwas ändert, wird die original Datei im Zustand vor der Veränderung in den Snapshot kopiert.
Nein, das macht auch überhaupt keinen Sinn (bei inkrementeller Datensicherung). Diese Datenblöcke können durch mehrere Snapshots referenziert sein, somit müsste man einen Datenblock in jeweils alle Snapshots kopiert werden. Z.B. hast du eine Datei, die ein Jahr unverändert auf dem System liegt, somit dürften alle existierenden Snapshots diese Datei in ihrem Baum durch den selben Hash referenzieren. Diese Datei wird verändert, somit würde
jeder Snapshot eine Kopie dieser halten...
Dass du im Snapshot alle Dateien sehen kannst liegt lediglich daran, dass das Dateisystem transparent für dich die Zugriffe entweder auf die im Snapshot abgelegten Daten (modifizierte Daten) oder auf das original Dateisystem (nicht modifizierte Daten) leitet.
Hmm...nachdem ZFS beides ist - Snapshot und Dateisystem - macht diese Unterscheidung nicht wirklich Sinn...
Mit Links hat das nichts zu tun.
Okay...ich hatte das Wort "Link" als Vereinfachung verwendet, zudem wird bei meinen ZFSs in der Shell genau diese "Transparenz" als Links dargestellt...also scheine ich nicht alleine mit dieser Analogie zu sein.
Grüße,
Scutus
P.S.: Eventuell könntest du diese Absolutismen wie "Wieder Falsch." oder auch "Falsch." etwas einschränken. Wissensaustausch sollte doch etwas neutraler geschehen. Wir beiden können mit unseren Aussagen komplett daneben liegen, oder wir können auch beide richtig sein - unter jeweils anderen Aspekten. So gerade bei uns. Du diskutierst das Konzept "Snapshot" am Beispiel ZFS. Jedoch trennst du dabei Snapshot und Dateisystem, was gerade bei ZFS
nicht der Fall ist. Dadurch erlangen deine Aussagen unter der alleinigen Betrachtung von Snapshots einen Wahrheitsgehalt, jedoch bei der Gesamtlösung ZFS verlieren sie den Blick zum Ganzen. Dadurch sind deine Aussagen weder falsch noch richtig, man muss sie eben nur in den richtigen Kontext werfen. Schonmal Danke!