zfs stream von zroot wie archivieren - zfs library not found

Frank

Anfänger
Hallo,

hier im Forum und auf anderen Seiten habe ich folgendes gelesen:
ath0: Du hast eines vergessen. Während zfs send eine gute Entsprechung zu dump für UFS ist gibt es keine entsprechung zu restore. Einen ZFS Stream kann man nur mit zfs recv in einen ZFS Pool einlesen. Desweiteren können beschädigte Streams mit heutigem ZFS Code nicht einmal teilweise eingelesen werden. Außerdem ist nicht nicht garantiert, dass ZFS Streams von neueren Versionen gelesen werden können.

Diese Limitierungen führen dazu, dass es ZFS Streams zu archivieren eine dumme Idee ist. Deutlich besser ist es ZFS Streams in andere Pools zu replizieren. So hast du ein Backup aus dem du einzelne Dateien wiederherstellen kannst mit all den sonstigen ZFS Features, die man nach kurzer Zeit nicht mehr missen will z.B. Prüfsummen und Selbstheilung.

Bisher habe ich es wohl dummerweise immer so gemacht:
# zfs send -Rv zroot@$timestamp | gzip > /zbigdata/full_system_backup_of_zroot$timestamp.zfs.gz
# gunzip -c /tmp/zbackup/full.... | zfs receive -vdF zroot

Jetzt würde ich gerne den zroot Pool rekursiv per send und receive in einen anderen Pool auf einer
anderen Festplatte sichern.
Dabei breche ich mir gefühlt einen ab, denn ich habe Probleme, dass der Backup-Pool über meinen
System-Pool zroot gemountet wird und ich dann so was "zfs library not found" bekomme.
Darum mache ich es jetzt so:
# zfs create -o mountpoint=zbackup/backup1 zbackup/backup1
# zfs set canmount=noauto backup1
# zfs send -Rv zroot@backup1 | zfs reveive -vdfu backup1
# zfs set mountpoint=/zbackup/backup1 backup1
So oder so ähnlich hat das geklappt.
Aber git es keinen schöneren Weg?
Wie sichert man am besten zroot, so dass man in einem anderen Pool die Datein lesen kann?

Viele Grüße
Frank
 
Das '-u' Flag von 'zfs receive' wird nur beachtet, wenn durch das Empfangen des Streams veränderte Datasets vorher nicht gemountet sind. Das ist also etwas fragil. Ich mache es daher mit dem 'altroot' Flag:
Code:
% zpool create -m none backup /dev/gpt/backup
% zpool export backup
% zpool import -R /mnt/backup backup
Der Vorteil ist, dass es sicher ist. Der Nachteil, dass man einen vollständigen Pool braucht.
 
Danke. Hast mir wieder sehr geholfen.
Klar. Ich Holzkopf. Ich kann den Pool ja erst exportieren und dann wieder importieren mit altroot Flag.
Die Lösung gefällt mir besser.
Vielen Dank.
Und ich glaube ich kann mit dem Nachteil, dass man einen vollständigen Pool braucht, gut leben, denn es gibt ja Snapshots.
Werde nach dem Sport mal weiter testen.
 
Zurück
Oben