Seite wählen

ZFS Cheat Sheet

von | Apr 15, 2021 | Linux

Wenn man sich mit einem eigenen Linux Storage Servers beschäftigt hat man sicher schon davon gehört: ZFS. Ich beschäftige mich schon seit längerem mit ZFS und bin an einem Punkt an dem ich mir die Menge der Kommandos nicht mehr merken kann. Zu ZFS findet man zwar schon sehr viel im Internet, die Themen Snapshots oder verschlüsselte ZFS-Datasets fehlt aber leider meistens oder die Informationen sind nicht gesammelt an einer Stelle zu finden. Damit ich in Zukunft nicht immer suchen muss und Ihr auch etwas davon habt, schreibe ich hier alles zusammen.

Installation von ZFS unter Debian / Ubuntu
Die Installation wurde unter Debian 10 (Buster) und Ubuntu Server 20.10 (Groovy Gorilla) durchgeführt. Das Einbinden des Backports Repos ist für Ubuntu Server 20.10 nicht notwendig.
# apt-get update
# apt-get upgrade

# vi /etc/apt/sources.list.d/buster-backports.list
deb http://deb.debian.org/debian buster-backports main contrib
deb-src http://deb.debian.org/debian buster-backports main contrib

# vi /etc/apt/preferences.d/90_zfs
Package: libnvpair1linux libuutil1linux libzfs2linux libzpool2linux spl-dkms zfs-dkms zfs-test zfsutils-linux zfsutils-linux-dev zfs-zed
Pin: release n=buster-backports
Pin-Priority: 990

# apt-get update
# apt-get upgrade

--> Reboot (falls es ein Kernelupgrade gab)

# apt install dpkg-dev linux-headers-$(uname -r) linux-image-amd64
# apt install zfs-dkms zfsutils-linux

Erstellen eines einfachen ZFS Storage Pools
Mit folgendem Kommando wird ein ZFS Storage Pool namens „data“ erstellt. Dank „raidz1“ wird eine Redundanz aufgebaut und eine Festplatte kann ohne Probleme ausfallen. Es ist unter anderem auch möglich „raidz2“ oder „raidz3“ zu definieren.
# zpool create data raidz1 sdb sdc sdd
# zpool status

Erstellen eines ZFS Storage Pools mit Partition UUIDs
# ls -la /dev/disk/by-partuuid/
# zpool create data raidz1 00b85ce9-a0d5-9340-b347-cd0bcc714dc0 04c20b90-5678-4b88-af49-21db76427eda 0c35cb57-5bc6-7c49-929f-466102c22d05

Erstellen eines ZFS Datasets
# zfs create data/playground

Erstellen eines verschlüsselten ZFS Datasets
# zfs create -o encryption=aes-256-gcm -o keyformat=passphrase data/playground
# zfs get encryption

Erstellen eines ZFS Snapshots
# zfs snapshot data/playground@`date +%Y-%m-%d_%H-%M-%S`

Löschen eines ZFS Snapshots:
# zfs destroy data/playground@2020-09-12_17-25-42

Durchsuchen von Snapshots (z. B. zum Restore einzelner Daten)
# cd /data/playground/.zfs/snapshot/2020-09-12_17-25-42
# ls -la

Hinzufügen eines SSD-Caches
Erzeugen des Dateisystems auf der Partition:
# zpool create -f log  /dev/sde1
# zpool create -f cache  /dev/sde2

Löschen des Dateisystems:
# zpool destroy log1
# zpool destroy cache1

Hinzufügen von Cache und Log zum ZFS Pool:
# zpool add data log /dev/sde1
# zpool add data cache /dev/sde2

Vorsicht: In diesem Beispiel ist der Cache nicht gespiegelt / abgesichert! Beim Ausfall der SSD wären die Daten im Cache verloren!

Anzeigen der Speicherbelegung über den ganzen ZFS Pool inkl. Snapshots
# zpool set listsnapshots=on data
# zfs list -o space -r data

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker und renoviert, baut und bastelt als Heimwerker an allem was er finden kann.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Linux

Kickstart your Laptop with Linux

Alle paar Jahre bekomme ich einen neuen Laptop bei Netways. Vor zwei Wochen war es wieder so weit und somit eine gute Gelegenheit mal wieder die Betriebssystem-Frage zu stellen. Die alte Frage also: "Welches Linux ist das Beste?". Also für mich ganz persönlich. Nicht...

Ansible – Testing roles with Molecule

Ansible is a widely used and a powerful open-source configuration and deployment management tool. It can be used for simple repetitive daily tasks or complex application deployments, therefore Ansible is able to cover mostly any situation. If used in complex or...

NETWAYS Support Collector Roadmap

Den Support Collector konnte ich bereits in meinem letzten Blogpost vorstellen. Für alle die den Beitrag verpasst haben, hier kurz umrissen was es ist: Bei dem Tool handelt es sich um einen von uns geschriebenen Datensammler, welche alle möglichen Support relevanten...