Version [4419]
Dies ist eine alte Version von ManagingZFS erstellt von ErdaxoAdmin am 2023-03-12 16:07:12.
Inhaltsverzeichnis des Artikels
A. ZFS Befehle unter FreeBSD (...
1. Scrubs und Snapshots
a. Anzeige von Parametern
b. Eigenschaften eines dataset
2. Moving datasets (and comple...
3. Encryption / Verschlüsselun...
a. Das älteste snapshot senden
b. Neuere snapshots incremente...
c. Testen, ob alle snapshots g...
4. Probleme mit SMR-Festplatten
B. SLOG etc.
1. die betroffenen Laufwerke p...
2. SLOGs einrichten
3. Kontrollieren
C. ZPOOL in der Fassung des Op...
1. Scrubs und Snapshots
a. Anzeige von Parametern
b. Eigenschaften eines dataset
2. Moving datasets (and comple...
3. Encryption / Verschlüsselun...
a. Das älteste snapshot senden
b. Neuere snapshots incremente...
c. Testen, ob alle snapshots g...
4. Probleme mit SMR-Festplatten
B. SLOG etc.
1. die betroffenen Laufwerke p...
2. SLOGs einrichten
3. Kontrollieren
C. ZPOOL in der Fassung des Op...
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
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
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
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. 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
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
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:
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:
2. SLOGs einrichten
3. Kontrollieren
Ob die Mirror in der Auflistung erscheinen (im Web-GUI aber auch sichtbar, unter Status).
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
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
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
# 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