ZFS: Welches Setup inkl. Backup

mousaka

getting older
Ich will demnächst zuhause einen kleinen Server für Multimedia-Daten aufsetzen.

Folgende Hardware ist vorhanden:
3x identische Disk (750GB). Ursprünglich war geplant, eine davon intern an einen SATA-Port zu hängen. Die beiden anderen sind extern je in einem USB-Gehäuse untergebracht. Die externen Gehäuse haben auch einen eSATA-Anschluss. Das Mainboard jedoch nicht, eine Blende um einen intern Port nach aussen zu bringen habe ich aber.

Ein erstes Setup mit ZFS (ein pool auf einer Disk) läuft bis jetzt einwandfrei. Ich erwarte , dass ich mit ungefähr 250GB an Daten starten werde, die Disk also ca. 1/3 belegt sein wird.

Unsicher bin ich mir jetzt bei der Backup-Methode. Geplant ist, die beiden externen Disk abwechlungsweise anzuhängen und eine komplette Sicherung darauf zu machen.

Folgende Varianten habe ich im Blickfeld:

  1. externe Disk in pool aufnehmen; spiegeln und wieder aus pool entfernen
  2. ZFS snapshot an gzip senden und Archiv auf externe disk (UFS) speichern

Dies würde ich jeweils wöchentlich machen. Welche Variante ist sinnvoller? Die erste erscheint mir eleganter, allerdings finde ich es komisch am laufenden System (zpool) Änderung machen zu müssen, damit ein Backup erstellt werden kann. Auf der anderen Seite frage ich mich, ob im mit einem Backup auf UFS, das ganze Potential von ZFS ausnutze.

Alternativ würde ich auch ein 4. Platte kaufen; einbauen und die beiden intern Disks spiegeln. Täglich eine snapshot anlegen (im Schnitt wohl weniger als 1 GB Änderungen pro Tag) und dafür (als "Komfortzuwachs") nur noch monatlich auf die externen Disks sichern. Allerdings gibt es dazu wieder die beiden obigen Möglichkeiten.

Was ist sinnvoller? Aus dem Bachgefühl heraus, würde ich am liebsten unabhängige snapshots auf die externen Platten machen. Geht das mit snaphots und anschliessenden Clones?

Ich fische noch ein ein wenig im Trüben und bin darum für eure Anregungen dankbar.

mousaka
 
Zuletzt bearbeitet:
gibt es einen speziellen grund, warum du auf dem externen laufwerk ufs haben willst?

ich würd mirs leicht machen und einfach ein zfs mit Kompression und deduplication auf die
platte machen, und gut ist. das nochmal durch gzip zu schicken wir ohne nicht allzuviel bringen bei mediadateien denk ich.
 
deduplication gibt es erst ab Version 21 von ZFS. FreeBSD 8.X ist erst bei Version 13. ;)

UFS und gzip sind nicht wirklich notwendig. Vermutlich bin ich fast am Glücklichsten wenn ich einfach ein 1:1 Kopie auf den externen Disks habe. die Frage lautet somit: Kann ich das mit ZFS machen, oder muss ich Umwege nehmen.

mousaka
 
deduplication gibt es erst ab Version 21 von ZFS. FreeBSD 8.X ist erst bei Version 13

ups ich dachte das wär inzwischen schon etwas weiter^^, naja ist ja nicht zwingend nötig..

Bin jetzt nicht 100% sicher ob die FreeBSD implementierung auch auf usb geht, würde mich aber arg wundern wenn nicht, also ich sehe gerade keinen Grund warum man nicht zfs nehmen sollte, ich würde es auf jeden fall ufs vorziehen, gerade auf usb platten find ich die prüfsummen schon als recht beruhigend(ich hoffe die sind in ver 13 schon drin^^)
 
Leute bei Sun haben zwar mal einen Filer für arme basierend auf Sticks gebaut, aber irgendwie würde ich ZFS auf USB nicht nutzen wollen wenn es sich nur um ein Laufwerk handelt und keine Redundanz dabei ist - nur so ein Bauchgefühl aber ich könnte mir durchaus vorstellen dass USB und der ARC sich da beim abstöpseln mal in die Quere kommen wenn du das Gerät bisschen eilig nach dem Backup ziehst oder so. Da du selbst ja wie du schreibst auch nicht siehst dass du ZFS wirklich brauchst fährst du wahrscheinlich mit UFS recht gut.
 
Hi,

evtl wäre auch zfs send/receive etwas für dich.
Man könnte so einen Snapshot erzeugen und diesen dann bequem im Hintergrund auf die (externe) Platte schaufeln.
 
Ich schließe regelmäßig externe Platten über USB an, welche selber ein ZFS-Dateisystem enthalten. Meine Daten wurden einmal initial mit zfs send/receive rübergespiegelt...seitdem nur noch die Snapshots als Inkremental (also Änderungen; auch mit zfs send/receive).
Das ein- und aushängen der USB-Disk ist auch kein Problem. Der Pool wird einfach schön mit zpool import/export sauber ein-/ausgehängt.

Anfangs hatte ich Probleme bezüglich USB...was aber auf einen miesen USB-Sata Chipsatz in dem externen Gehäuse zurückzuführen war. Seit ich die Platten in einem neuen Gehäuse habe funktioniert es gut.
 
USB ist prinzipbedingt immer eine wackelige Angelegenheit. Ganz einfach, weil dort draußen viele billige Chips im Umlauf sind, sowohl auf der Host- als auch der Clientseite. Dieses Kinderprotokoll hat praktisch keine Fehlerkorrektur, bei USBs Fehlererkennung kannst du froh sein, wenn Fehler überhaupt erkannt werden. Daher ist ein Prüfsummensystem seitens der Software schon eine sehr sinnvolle Angelegenheit, wenn man ernsthaft drauf speichern will. Sonst kann es sein, dass man irgendwann feststellt, dass einige Dateien zernudelt wurden. Ob man da nun ZFS oder UFS + GELI nimmt, ist Geschmackssache. :)
 
Mir ist klar, dass USB nicht über alle Zweifel erhaben ist. Ob's über (e)SATA besser ist werde ich versuchen.

@cla
Dein Vorgehen erscheint mir sinnvoll. Verstehe ich es richtig, dass zu 2 getrennte Pools hast? Einer für die internen Disks und einer für die externen Backup-Disks?

Ich denke ich werde mir eine weitere interne Disk besorgen, weil ich weiss, dass ich faul und unzuverlässig bin. :D

mousaka
 
@cla
Dein Vorgehen erscheint mir sinnvoll. Verstehe ich es richtig, dass zu 2 getrennte Pools hast? Einer für die internen Disks und einer für die externen Backup-Disks?

Richtig. Mein interner Pool ist ein Raid-Z2 bestehend aus 5 Platten.
Die externe USB-Disk ist logischerweise ein anderer Pool. Der heißt bei mir "backup-xxx". Er ist von den Einstellungen auch anders...so habe ich z.B. für die externen Platten die Kompression eingeschaltet (gzip).
Und in regelmäßigen Abständen mounte ich eben die externe USB Platte (zpool import), schiebe meine aktuellen Snapshots rüber (zfs send/receive) und habe somit ein identisches Abbild der Daten inkl. Snapshots auf der externen Platte. Dann ein "zpool export" und ab mit der Platte in den feuerfesten Tresor/Off-Site-Location.
Ich sichere auch nur einige Sub-Filesysteme weg und nicht alle. Kann man Dank zfs ja schön separieren. Die übertragenen Filesysteme sind allerdings vom Datengehalt dann absolut identisch wie die interne Datenstruktur.
 
Zurück
Oben