ZFS und Snapshot Frage

Mardor

Well-Known Member
Hallo,

ich habe Fragen zu ZFS:

Code:
% zfs list
NAME  USED  AVAIL  REFER  MOUNTPOINT
zroot  1.73G  451G  144K  none
zroot/ROOT  791M  451G  144K  none
zroot/ROOT/default  791M  451G  791M  /
zroot/tmp  208K  451G  208K  /tmp
zroot/usr  832M  451G  144K  /usr
zroot/usr/home  192K  451G  192K  /usr/home
zroot/usr/ports  831M  451G  831M  /usr/ports
zroot/usr/src  144K  451G  144K  /usr/src
zroot/var  150M  451G  149M  /var
zroot/var/crash  148K  451G  148K  /var/crash
zroot/var/log  208K  451G  208K  /var/log
zroot/var/tmp  152K  451G  152K  /var/tmp

Dies sind die von FreeBSD 10 per standard angelegten ZFS volumes (ich hoffe volume ist der richtige Name).

(1) Was ist zroot/ROOT ?
(2) Wenn ist der Unterschied zwischen zroot zroot/ROOT ?

(3) Wenn ich jetzt ein snapshot von zroot/ROOT/default anlege und einen snapshot von zroot/usr/home. Danach dann ein File in /usr/home ändere, würden dann der alte Stand auch wiederhergestellt werden wenn ich zroot/ROOT/default zurücksichere ?

Gruß Mardor
 
Hi Mardor,

zu 1) ein eigenes Dataset in dem dann verschiedene "/" liegen können. In deinem Falle nur eines und zwar "default". Warum man das jedoch will ist mir unklar. Ich würde mal auf verschiedene Boot-Environments setzen. So könnte ich recht unproblematisch das Base-System austauschen indem ich einfach einen anderen "/" reinmounten lasse. Aber das ist geraten.

zu 2) Wie gesagt denke ich geht es dabei nur darum verschiedene "/" sortiert unter ROOT ablegen zu können.

zu 3) kann ich wirklich mal was sagen. Nein. An der Datei in /usr/home ändert sich nach dem zurücksichern nichts, da sie ja in einem anderen Dataset liegt als ROOT/default. Alle Datasets sind sowas wie eigene Partitionen und die Snapshots enthalten eben auch nur deren Inhalt.
 
Hallo Rakor,

vielen Dank für deine Antworten.

Zu 3 hätte ich dann noch eine weiterführende Frage:

Mein Gedanke war eben das unter / auch /usr/home liegt und somit zroot/usr/home ein Subset von zroot/ROOT/default welches dann auch die Daten von /usr/home beinhaltet.
Würdest du mir zustimmen das dann /etc unter zroot/ROOT/default liegt, weil es kein eigenes Dataset für /etc gibt ?


Gruß Mardor
 
Das ist wie unter UFS mit eingemounteten Laufwerken und dump/restore. Der Snapshot speichert alles was in dem entsprechenden Dataset liegt. Wird ein anderes Dataset in ein Verzeichnis reingemounted unterhalb des ersten Datasets überlagert das allerdings das erste. Es wird also nur vom Snapshot des 2. Datasets gesichert. Kann man sich einfach wie verschiedenen Schichten vorstellen die übereinander liegen.

Da es zwischen / und /etc kein weiteres Dataset gibt hast du Recht, dass /etc in zroot/ROOT/default liegt (und somit auch in dessen Snapshot). Im Gegensatz dazu gibt es das Dataset zroot/usr/home welches nach /usr/home gemountet wird. Entsprechend sind alle Dateien in deinen Home-Directories dort gespeichert und entsprechend auch dort im Snapshot (wenn erzeugt).... (edit: wobei "dort" natürlich /zroot/usr/home meint)
 
zroot ist der Name des Pools. Unter diesem sind verschiedene Datasets (nicht Volumes, das sind unter ZFS was anderes) angelegt, manche werden ihrem Namen entsprechen automatisch gemountet. Z.B. zroot/usr wird automatisch auf /usr gemountet. Ein darunter angelegtes zroor/usr/home automatisch auf /usr/home.
zroot/ROOT ist ein Dataset, das nicht automatisch gemounted wird, weil es einfach nur als Sammelbehälter für verschiedene Versionen ein und desselben Verzeichnisses, nämlich der /-Partition gedacht ist. In der Tat kann man damit einfach verschieden Boot Environments realisieren, und so problemlos Updaten. Denn falls was schiefgeht mounted man einfach wieder zroot/ROOT/default nach / und hat das alte System wieder.
 
Zurück
Oben