FreeNAS pool Backup

Status
Not open for further replies.

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo,

ich benötige unbedingt eure Hilfe.

Ich habe ein RAID-Z1 laufen, bestehend aus drei Festplatten. Dieses RAID-Z möchte ich nun um eine weitere Festplatte erweitern.

Ich werde nun den gesamten Pool auf eine externe eSATA Platte kopieren, das RAID-Z neu aufbauen und den Pool anschließend wieder zurück kopieren.

Kann ich nun den gesamten Pool auf die externe Festplatte übertragen oder muss ich jedes Dataset einzeln senden?
Ich habe es testweise nur geschafft Snapshots der jeweiligen Datensätze zu übertragen, jedoch nicht den gesamten Pool.




Folgendes funktioniert:
pool = pool quelle
poolbackup = pool für die Auslagerung auf der eSATA Platte
d1 = snapshot vom Dataset „Daten“
zfs send -R pool/Daten@d1 | zfs receive poolbackup/Daten


Folgendes funktioniert leider nicht:
p1 = Snapshot vom Pool
zfs send -R pool@p1 | zfs receive poolbackup
 

xaibex

Patron
Joined
Mar 19, 2013
Messages
340
Du kannst auch einen Snapshot von der Haupt Ebene deines Pool erstellen. Ich weis nicht wie das per Kommandozeile funktioniert, es funktioniert jedenfalls über die GUI.
zpool snapshot erstellen.png

Über Kommandozeile müsstest du wahrscheinlich folgendes beachten:
Mithilfe der Option -r können Sie Snapshots für alle untergeordneten Dateisysteme erstellen. Beispiel:
# zfs snapshot -r tank/home@now

Den erzeugten Snapshot müsstest du dann auf einem anderem zpool (deine externe Platte) wiederherstellen können. (habe ich so aber noch nie ausprobiert)
 

gottestod

Dabbler
Joined
Apr 28, 2015
Messages
29
@xaibex: Den Snapshot vom Pool hat Smiley wohl schon gemacht, er hat ihn pool@p1 genannt.
@Smiley: Wie bist du vorgegangen? Was hat nicht funktioniert? Gab es eine Fehlermeldung oder war das Ergebnis nicht wie erwartet?
Laut ZFS-Doku sollte es möglich sein. Hier wird u.a. der users-Pool kopiert:
http://docs.oracle.com/cd/E19253-01/820-2313/gfwqb/index.html
Den Umweg über die Datei sollte man vermeiden, außer man hat noch ein paar extra-Platten und viel Zeit.
 
Last edited:

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo Ihr beiden,

tut mir Leid das ich erst jetzt antworten kann, ich bin sehr im Zeitdruck und die Angelegenheit mit meinem FreeNAS macht es mir zur Zeit auch nicht leichter, hat mir schon furchtbar viel Zeit gekostet.

Ich denke das ich jetzt dank eurer Hilfe auf dem richtigen Weg bin, noch ein paar kleine Versuche in der Virtuellen Maschine und dann werde ich mich an dem kleinen Serverlein wagen, ich möchte ja nicht meine Daten riskieren.


Folgendes scheint nun zu funktionieren:
Es muss ein rekursiver Snapshot im Pool erzeugt werden, genau das war wohl mein Fehler wieso der Kopiervorgang vom snapshot „p1“ nicht funktionierte.

@xaibex, danke für den Hinweis mit dem rekursiven Snapshot.

Der Namen des rekursiven Snapshots muss sich von allen anderen unterscheiden, ich hatte ernsthafte Probleme bei gleichnamigen snapshots, falls zuvor ein Snapshot in einem Dataset erzeugt wurde und später noch ein Snapshot des gleichen Namens vom gesamten Speicherpool – Rekursiv angelegt wurde, die Probleme traten erst dann auf als ich den Snapshot sendete...
Teils angelegte Pools die nicht funktionierten, die GUI deklarierte diese mit einer Fehlermeldung
Was auch immer hier schief gegangen ist.

Nun zur Anleitung:
1.
Rekursiven Snapshot vom quell Pool erzeugen, es werden nun vollautomatisch in jedem untergeordneten Dataset gleichnamige Snapshots erzeugt
zu lösen mittels GUI oder im Terminal
zfs snapshot -r tank@new


Als nächstes wollen wir die angelegten Snapshots auf den neuen leeren Pool übertragen, der neue Pool wird nun vollständig überschrieben da wir jetzt kein Increment senden.

Parameter R = Replikationsdatenstrom aller untergeordneten Dateisysteme senden
Parameter F = löscht enthaltene Datensätze (Dataset's), sprich der Ziel Pool namens "archiv" wird komplett überschrieben

2.
zfs send -R tank@new | zfs receive -F archiv

Das scheint nun gut zu funktionieren da nun auch alle Daten die direkt im Pool gespeichert sind mit übertragen werden, die Ausgaben kann man in der Konsole beobachten bzw. sieht man diese auch an den angelegten Snapshots Bsp. „.system“



@gottestod, hast du andere Vorschläge, Alternativen?
Etwas anderes ist mir leider noch nicht in den Sinn gekommen
Wie hätte die Prozedur über die GUI funktioniert?
 
Last edited:

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
MeinFreeNAS Server hat sich nun dazu entschlossen ab zu schwirren.
Keine ahnung was nun schon wieder ist, der Server hat von alleine neu gebootet.
Kopiervorgang lief vl 1,5 Stunden lang
 

gottestod

Dabbler
Joined
Apr 28, 2015
Messages
29
Hallo Smiley!

Wenn die Replikation jetzt funktioniert ist das doch gut. Der Zweizeiler sieht auch noch schön aus ;-)
Über GUI ginge das mit Snapshot- und Replizierungs-Aufgaben, die man dann nur einmal laufen lässt.

Das der Server selbsttätig bootet ist allerdings ein schwerwiegenderes Problem.
Hoffe du findest den Fehler :-(

ein schönes Wochenende.
 

Smiley

Dabbler
Joined
Nov 26, 2014
Messages
28
Hallo,

zu guterletzt hat es doch noch funktioniert, der zweite Vorgang wurde vollendet, auch das zurücksenden hatte funktioniert. Interessant ist es aber trotzdem wieso der Server beim ersten Vorgang abgeschwirrt ist, kann man das im Nachhinein noch irgend wo aus den LOG's auslesen?

Mir ist aber aufgefallen, als die Datensätze übertragen wurden, die extrem stark komprimiert sind, brach die Datenrate sehr stark ein und auch die CPU Last stieg auf 80%, beim zurück senden genau das selbe. Kann es daher sein das beim senden die komprimierten Datensätze dekomprimiert und neu komprimiert werden?

Wie kann man sicher gehen das Datensätze fehlerfrei übertragen wurden, das dürfte interessant sein wenn Datensätze über LAN übertragen werden, vl auch noch über PowerLan? Werden hier bei Checksummen beim übertragen abgeglichen?




Was mir noch eingefallen ist, wegen der ZFS Replizierung mittels GUI, da scheitert das ganze schon am Dataset das nicht eingetragen werden kann...

Screenshot 2016-03-26 14.54.24.png

LG Smiley
 
Last edited:

MrToddsFriends

Documentation Browser
Joined
Jan 12, 2015
Messages
1,338
Interessant ist es aber trotzdem wieso der Server beim ersten Vorgang abgeschwirrt ist, kann man das im Nachhinein noch irgend wo aus den LOG's auslesen?

In /var/log/messages, /var/log/debug.log und deren komprimierten/archivierten Vorgängern hast Du schon mal reingeschaut? Bei einem spontanen Reboot kann's aber sein, dass nichts in den Logfiles landet. Welche Hardware hast Du am Laufen? Welche FreeNAS Version?

Wirf auch mal einen Blick auf die Abschnitte "Error Information" und "System Configuration Information" in den Forums Rules:
https://forums.freenas.org/index.php?threads/forum-rules.22553/

Wie kann man sicher gehen das Datensätze fehlerfrei übertragen wurden, [...]

Ich würde einen Scrub auf dem Zielpool (PULL) laufen lassen.

Was mir noch eingefallen ist, wegen der ZFS Replizierung mittels GUI, da scheitert das ganze schon am Dataset das nicht eingetragen werden kann...

Aus der Doku:
- a periodic snapshot task must be created on PUSH. You will not be able to create a replication task before the first snapshot exists.
http://doc.freenas.org/9.10/freenas_storage.html#replication-tasks

Du hast (inzwischen) in der FreeNAS GUI periodische Snapshots für diesen Dataset konfiguriert, der erste Snapshot existiert bereits und Du siehst diesen Dataset trotzdem nicht in der Auswahl beim Erstellen eines Replication Tasks?
 
Status
Not open for further replies.
Top