Home > Debian, Hardware, Linux, Netzwerk > ZFS auf dem Heimserver

ZFS auf dem Heimserver

21. Juni 2015

So langsam ging der Speicherplatz auf meinem Heimserver zu Ende und ich musste was tun. Mir war sehr schnell klar, dass ich von den zwei 2 TB HDDs im RAID1 auf vier 2TB HDDs im RAID5 wechseln muss um wieder Ruhe zu haben. Die beiden Platten war schnell organisiert, aber dann ging es (wie immer) los. Da ich bei Linux bleiben wollte dachte ich zuerst an BTRFS. Leider ist der RAID5-Code aus meiner Sicht nichts für Menschen mit Stabilitätswünschen. Ja, es hat sich einiges getan, aber für das Recover nach Festplattenausfall will niemand die Hand ins Feuer legen. Will man so etwas benutzen? Nein!

Klar, ich hätte bei mdadm und LVM bleiben können, aber ich war noch nie ein Freund davon – zu kompliziert und damit fehleranfällig (also ich beim eintippen). Ich habe nur kurz daran gedacht. Also ZFS.

zfsonlinux macht, zum Glück, die Sache recht einfach. Für alle gängigen Linuxe gibt es fertige Pakete die man nur installieren braucht und schon sind Module und Tools vorhanden. Piece of cake.

Das Festplatten-Layout ergab sich dann auch fast von selbst: für das OS eine kleine 128GB SSD und die anderen vier Platten als Datengrab (siehe Bild).

IMG_20150613_122759

Vorher gab es noch ein größeres Netzteil und eine USB-HDD für die Datensicherung. ZFS einrichten ist dann recht einfach[1]:

Ersteinmal gucken welche Platten man hat:

# ls /dev/disk/by-id/ata-SAM*
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899
/dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188

Die alten Partitionstabellen gegen GPT tauschen:

# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899 mklabel gpt
# parted /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188 mklabel gpt

Einen RAIDZ-Pool anlegen, das Äquivalent zum herkömmlichen RAID1:

# zpool create -m none -o ashift=12 mypool raidz /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116895 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J9KB607108 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2H7J1CB116899 /dev/disk/by-id/ata-SAMSUNG_HD204UI_S2HGJ9EB902188

Durch -o ashift=12 arbeitet der Pool mit 2KiB Sektoren. Viele neue Platten arbeiten intern damit, aus Kompatibilitätsgründen sagen sie aber sie hätten 512 Byte Sektoren.

Atime ausmachen:
# zfs set atime=off mypool

Deduplication aus. Wenn man nur Komprimiertes speichert ist es der CPU-Overhead nicht wert und der RAM-Verbrauch von ZFS geht auch zurück (mein Serverchen läuft noch mit 4GB RAM):
# zfs set dedup=off mypool

Ein Dateisystem anlegen, mounten und per NFS freigeben:
# zfs create mypool/daten
# zfs set mountpoint=/daten mypool/daten
# zfs set sharenfs=on mypool/daten

Man kann auch SWAP auf ZFS legen:
# zfs create mypool/swap -V 8G -b 4K
# mkswap -f /dev/mypool/swap
# swapon /dev/mypool/swap
# zfs set sync=always mypool/swap

Dann noch einen Cronjob anlegen, der einmal den Pool auswischt
zpool scrub mypool

Wenn die ZFS-Volumes beim Booten nicht gemountet werden in
/etc/default/zfs schauen:
ZFS_MOUNT='yes'

muss da stehen.

Alles in allem sehr unkompliziert und auch zukunftssicher. Vielleicht stelle ich später das OS auf FreeNAS um, dann habe ich bereits ZFS am Start.

Zum Schluß habe ich noch ein bisschen meine Netzwerkverkabelung aufgeräumt. Muss ja auch mal sein.

IMG_20150614_142604
IMG_20150614_142624

[1] http://www.andybotting.com/zfs-on-linux

Tags:

  1. cweiske
    21. Juni 2015, 12:11 | #1

    Sektorengröße 512b vs. 2MiB? Eine der Einheiten stimmt nicht :)

  2. 21. Juni 2015, 15:50 | #2

    cweiske :

    Sektorengröße 512b vs. 2MiB? Eine der Einheiten stimmt nicht :)

    Danke, gefixed :)

  3. Jens
    21. Juni 2015, 16:01 | #3

    Wie gehst du mit der ECC Speicher Anforderung um?

  4. 21. Juni 2015, 16:12 | #4

    @Jens
    Ich begegne dem mit Desinteresse :) Für jeden der sagt man muss ECC nutzen gibt es einen, der sagt das man keines braucht und die Scenarien die ich bisher gelesen habe fand ich nicht so überzeugend.

    Andererseits wird mein nächster Server wohl ECC haben, weil man es gebraucht hinterhergeworfen bekommt. Ob es allerdings Consumer-Boards mit ECC-Support gibt wird sich dann zeigen.

  5. uwe
    22. Juni 2015, 11:03 | #5

    Ich finds mutig. LVM und Kernel-Level RAID sind sehr gut abgehangen, werden grossflächig eingesetzt (und somit getestet) und im Vergleich dazu ist ZFS ziemlich grün hinter den Ohren

  6. Dirk
    22. Juni 2015, 11:12 | #6

    FreeNAS kann ich nur empfehlen. Nutze es seit Jahren in einem System mit 6 Platten mit ZRAID2. Das hat mir vor einem Jahr den Arsch gerettet, als nach und nach die Platten abgeraucht sind. Habe dann nach und nach alle 2TB Platten gegen 3TB Platten getauscht und schwupps… dank ZFS mehr Speicher, ohne zu formatieren.

Kommentare sind geschlossen