< ZFS auf Linux

Initiale Konfiguration

Da ZFS in Form eines Kernel-Moduls implementiert wurde, muss dieses vor der Verwendung geladen sein. Sollte dies nicht automatisch geschehen, kann es mit dem Kommando modprobe zfs nachträglich geladen werden. Um ZFS verwenden zu können, muss anschließend ein zpool angelegt werden. Dies erfolgt unter Verwendung des gleichnamigen Tools und ist mit folgendem Befehl möglich:

1 user> zpool create -m  <MOUNTPOINT>  -o ashift=12 <POOLNAME> <DEVICES>

Dabei müssen mindestens der Name des Pools, der zu verwendende Mountpoint sowie die gewünschten vdevs angegebenen werden. Darüber hinaus können nach dem Parameter -o von der Standardkonfiguration abweichende Optionen für den zpool gesetzt werden. Eine häufig genutzte Option ist ashift. Dabei handelt es sich um die für die vdevs zu verwendende physische Blockgröße. Der Wert wird als Exponent zur Basis 2 angegeben und ist besonders bei Festplatten relevant, die intern andere Sektorgrößen nutzen, als sie aus Kompatibilitätsgründen an das Betriebssystem melden. Ein Sektor bezeichnet bei Festplatten die kleinste Organisationseinheit, die gelesen bzw. geschrieben werden kann. Der Wert 12 entspricht der mittlerweile standardmäßig eingesetzten Sektorgröße von 4 KiB.

Während der zuvor erläuterte Befehl die vdevs zu einem Pool ohne Redundanzen oder Paritätsinformationen verknüpfen würde, können durch Angabe bestimmter Schlüsselwörter einzelne vdevs beispielsweise gespiegelt bzw. zu einem RAID-Z verbunden werden:


SchlüsselwortBedeutung
raidz1Software-RAID mit einem vdev für Paritäten
raidz2Software-RAID mit zwei vdev für Paritäten
raidz3Software-RAID mit drei vdev für Paritäten
mirrorSpiegelung mehrerer vdevs
cacheVerwendung von vdevs zum Caching
logAuslagerung des Intent Logs auf angegebene vdevs
spareErsatz-vdev bei Plattenausfall (raidz oder mirror)

Diese zwei Befehle würden entsprechende Pools erzeugen:

1 # Anlegen eines zpools bestehend aus einem Mirror (gespiegelte vdevs)
2 user> zpool create -m <MOUNTPOINT> -o ashift=12 <POOLNAME> mirror <DEVICES>
3 
4 # Anlegen eines zpools bestehend aus einem RAID-Z2
5 user> zpool create -m <MOUNTPOINT> -o ashift=12 <POOLNAME> raidz2 <DEVICES>


Innerhalb eines solchen Pools können anschließend Datasets angelegt werden. Diese sind ebenfalls in einer Art Vererbungshierarchie organisiert. Im Gegensatz zum Pool werden sie mit dem Tool zfs angelegt:

1 user> zfs create <POOLNAME>/<DATASETNAME>/[<DATASETNAME>]

Sollen ACLs verwendet werden, muss unbedingt folgendes Attribut gesetzt werden. Andernfalls wird ZFS sehr langsam und es gibt Probleme beim Löschen von Dateien:

1 user> zfs set xattr=sa <POOLNAME>/<DATASETNAME>/[<DATASETNAME>]


Optimale Konfiguration für einen Server mit 44 Festplatten

1 zpool create -m /ZFS -o ashift=12 pool1 raidz2 /dev/sdaa /dev/sdab /dev/sdac /dev/sdad /dev/sdae /dev/sdaf /dev/sdag /dev/sdah raidz2 /dev/sdai /dev/sdaj /dev/sdak /dev/sdal /dev/sdam /dev/sdan /dev/sdao /dev/sdap raidz2 /dev/sdaq /dev/sdar /dev/sdas /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf raidz2 /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn raidz2 /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv
2 zfs set xattr=sa pool1
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.