Alle Kategorien:
  E V T Z Allgemein
 EVTZ-Datenbank
  E V T Z Dokumente
 Kommentare
 Literaturdatenbank
  E V T Z Praxis
 Rechtsprechungsdatenbank
 Rechtsvorschriften
  Kooperationsinstrumente
 Startseite

ZFS

insbesondere Verwaltung über Terminalbefehle


A. ZFS Befehle unter FreeBSD (FreeNAS / TrueNAS)
pools, datasets und der Umgang mit ihnen
Eines der wesentlichen Bestandteile von FreeNAS ist das Dateisystem ZFS. Mit den unten genannten Befehlen können wichtige Funktionen dieses fortschrittlichen Systems genutzt werden.

1. Scrubs und Snapshots
Einige Befehle zum Anlegen und Verwalten von Snapshots:

a. Anzeige von Parametern
Anzeigen von Speicherplatz, der von einem Snapshot belegt ist in der Konsole:
zfs list -t snapshot

b. Eigenschaften eines dataset
zfs get all pfad/zum/dataset

2. Moving datasets (and complete pools)
Siehe hier: https://www.ixsystems.com/community/threads/copy-move-dataset.28876/#post-190178
Im Einzelnen geht dies so:

1. Create final source snapshot:
zfs snapshot -r Datasource/Storage@copy

2. Copy the data:
zfs send -Rv Datasource/Storage@copy | zfs receive -F Datatarget/Storage
an ein anderes System per ssh:
zfs send -Rv Datasource/Storage@copy | ssh host2 zfs receive -F Datatarget/Storage

3. Delete created snapshots:
zfs destroy -r Datatarget/Storage@copy ; zfs destroy -r Datasource/Storage@copy

Vgl. dazu auch ein komplettes Backup-Konzept mit ZFS-Platten hier:
https://esc-now.de/_/zfs-offsite-backup-auf-eine-externe-festplatte/?lang=en
Sowie andere Infos:
https://www.kirgus.net/cms_homepage8/zfs-datasetzvol-auf-anderen-pool-umziehen

3. Rename only
Keine Verschiebung zwischen Pools, sondern lediglich Namensänderung innerhalb eines Pools:

zfs rename pool/path/oldname pool/path/newname

oder (inkl. Pfadänderung!)

zfs rename pool/oldpath/datasetname pool/newpath/datasetname

4. Encryption / Verschlüsselung (nativ on ZFS)
Wenn man nachträglich verschlüsseln möchte (zum Beispiel ein dataset) ist dies nicht so einfach möglich. Wenn man Daten nicht auf dateiebene in ein verschlüsseltes Verzeichnis kopieren will, kann man mit den datasets so arbeiten:
(siehe auch folgende Seite mit ausführlicher Beschreibung)

Zielsetzung: snapshots beibehalten... Möglich ist es wie folgt:

a. Das älteste snapshot senden
zfs send -v pool/dataset@snapshot-01-05-2020 | zfs recv -x encryption pool2/dataset

b. Neuere snapshots incrementell senden
zfs send -v -I pool/dataset@snapshot-01-05-2020 pool/dataset/@snapshot-01-10-2020 | zfs recv -F -x encryption pool2/dataset

c. Testen, ob alle snapshots gesendet wurden
zfs list -t snapshot | grep pool2/dataset


5. Probleme mit SMR-Festplatten
SMR-Festplatten sind problematisch für xNAS. Einige Hinweise, wie man dem Problem (wenn man die Dinger nicht austauschen kann) begegnen kann, sind hier zu finden.

In Kürze sind die Lösungsansätze wie folgt zusammenzufassen:
  • disable TRIM on pools with the DM-SMR drives,
  • kleinere VDEVs nutzen => am besten mirror, raidz mit weniger als 4 Laufwerken sind besser,
  • große ZFS dataset record size / ZVOL block size nutzen:
    • auf jeden Fall sollte auf jede HDD größer als 64K geschrieben werden, also
    • RaidZ VDEV <5 => 256K oder größer,
    • RaidZ VDEV >5 => 512K oder größer.
ABER: am besten die SMR-Dinger meiden!


B. SLOG etc.
An sich wird empfohlen, dass SLOG-Laufwerke dediziert und jeweils für nur eine Aufgabe zugewiesen werden. Intel Optane Laufwerke sind aber so gut, dass sie sogar partitioniert werden und so als SLOG dienen können. Denn ein SLOG benötigt nur eine recht kleine Größe...
Vgl. dazu folgende Diskussion mit Hinweisen:
=> https://www.truenas.com/community/threads/sharing-slog-devices-striped-ssds-partitioned-for-two-pools.62787/

Wie Partitionen als SLOG eingerichtet werden können kann in Kürze so beschrieben werden:

1. die betroffenen Laufwerke partitionieren
Am Beispiel von 2 Laufwerken die als mirror für zwei Pools eingesetzt werden:

gpart create -s GPT nvdX
gpart create -s GPT nvdY
gpart add -t freebsd-zfs -a 1m -l slogA -s 16G nvdX
gpart add -t freebsd-zfs -a 1m -l slogA -s 16G nvdY
gpart add -t freebsd-zfs -a 1m -l slogB -s 16G nvdX
gpart add -t freebsd-zfs -a 1m -l slogB -s 16G nvdY


2. SLOGs einrichten

zpool add A-pool log mirror nvdXp1 nvdYp1
zpool add B-pool log mirror nvdXp2 nvdYp2


3. Kontrollieren
Ob die Mirror in der Auflistung erscheinen (im Web-GUI aber auch sichtbar, unter Status).
zpool status




C. ZPOOL in der Fassung des OpenZFS

# add VDEV to existing POOL
# hier konkret:
# VDEV-Art = MIRROR # POOL-Name = storage # Festplatten = /dev/sda + /dev/sdb
zpool add storage mirror sda sdb
# ACHTUNG: Darstellung oben ist etwas zu einfach - man sollte besser die Datenträger "by-id"
# nehmen - der Befehl würde dann eher so ausschauen:
zpool add storage mirror /dev/disk/by-id/ata-WDC_langeID1 /dev/disk/by-id/ata-WDC_langeID2

# create datasets
zfs create pool/home
zfs set mountpoint=/export/home pool/home
Auf dieser Seite sind keine Kommentare vorhanden