| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
| zfs [2024-04-04 21:22:41] – [Beispiel] manfred | zfs [2025-12-10 17:26:41] (aktuell) – [ZFS-Snapshot erstellen] manfred |
|---|
| * ... Doch auch andere Betriebssysteme setzen nicht auf das Original-ZFS, sondern auf verschiedene Implementierungen. So nutzt beispielsweise FreeBSD die von dem [[https://www.pro-linux.de/news/1/16000/illumos-projekt-startet.html|Illumos-Projekt]] vorangetriebene Implementierung des Dateisystems, die allerdings OpenZFS hinterherhinkt. Die FreeBSD-Entwickler haben deshalb letztes Jahr [[https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072422.html|beschlossen]], dass die ZFS-Unterstützung von FreeBSD auf OpenZFS - und damit auch >>ZFS On Linux<< - migriert werden soll. Dieser Schritt soll letztendlich auch eine bessere Unterstützung und Funktionalität erzielen und das Open-Source-ZFS-Ökosystem vereinheitlichen. Allan Jude präsentierte auf der EuroBSDCon 2019 die [[https://2019.eurobsdcon.org/slides/The%20Future%20of%20OpenZFS%20and%20FreeBSD%20-%20Allan%20Jude.pdf|Kombination aus OpenZFS + FreeBSD]] und stellte eine Aufnahme der Änderungen in OpenZFS in Aussicht. Die Resultate der Arbeit sind nun letzte Woche in das offizielle Repositorium von OpenZFS eingeflossen und sollen nun als eine gemeinsame Codebasis zwischen Illumos, FreeBSD und Linux dienen. Weitere Systeme wie MacOS und Windows können zu einem späteren Zeitpunkt folgen. | * ... Doch auch andere Betriebssysteme setzen nicht auf das Original-ZFS, sondern auf verschiedene Implementierungen. So nutzt beispielsweise FreeBSD die von dem [[https://www.pro-linux.de/news/1/16000/illumos-projekt-startet.html|Illumos-Projekt]] vorangetriebene Implementierung des Dateisystems, die allerdings OpenZFS hinterherhinkt. Die FreeBSD-Entwickler haben deshalb letztes Jahr [[https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072422.html|beschlossen]], dass die ZFS-Unterstützung von FreeBSD auf OpenZFS - und damit auch >>ZFS On Linux<< - migriert werden soll. Dieser Schritt soll letztendlich auch eine bessere Unterstützung und Funktionalität erzielen und das Open-Source-ZFS-Ökosystem vereinheitlichen. Allan Jude präsentierte auf der EuroBSDCon 2019 die [[https://2019.eurobsdcon.org/slides/The%20Future%20of%20OpenZFS%20and%20FreeBSD%20-%20Allan%20Jude.pdf|Kombination aus OpenZFS + FreeBSD]] und stellte eine Aufnahme der Änderungen in OpenZFS in Aussicht. Die Resultate der Arbeit sind nun letzte Woche in das offizielle Repositorium von OpenZFS eingeflossen und sollen nun als eine gemeinsame Codebasis zwischen Illumos, FreeBSD und Linux dienen. Weitere Systeme wie MacOS und Windows können zu einem späteren Zeitpunkt folgen. |
| * [[https://community.oracle.com/docs/DOC-914874|Part 10 - Monitoring and Tuning ZFS Performance]] | * [[https://community.oracle.com/docs/DOC-914874|Part 10 - Monitoring and Tuning ZFS Performance]] |
| | |
| | |
| | ===== Installation ===== |
| | |
| | Linux: |
| | > apt install zfsutils-linux zfsnap |
| | |
| | FreeBSD //(Die ZFS-Tools sind bereits im FreeBSD-Basis-System enthalten)//: |
| | > pkg install sysutils/zfsnap |
| |
| |
| |
| |
| ==== ZFS resize ==== | ==== ZFS-Snapshot erstellen ==== |
| | |
| | <file bash /root/bin/zfs-snapshot.sh> |
| | #!/bin/bash |
| | |
| | #------------------------------------------------------------------------------# |
| | # Dieses Skript macht von dem ZFS-Pool "mysql_datadir" einen SnapShot. |
| | # |
| | # Es kann maximal EINER pro Stunde angelegt werden, |
| | # sollte für diesen Zeitraum bereits einer existieren, |
| | # dann wird er vorher gelöscht. |
| | #------------------------------------------------------------------------------# |
| | # zfs snapshot mysql_datadir@4-16 |
| | # zfs list -t snapshot mysql_datadir |
| | # mount -t zfs mysql_datadir@7-16 /mnt |
| | # zfs destroy mysql_datadir@4-16 |
| | #------------------------------------------------------------------------------# |
| | # Bedeutung von "mysql_datadir@4-16" |
| | # mysql_datadir - ZFS-Pool (Tank) |
| | # 4 - 4. Wochentag -> am Donnerstag aufgenommen |
| | # 16 - zwischen 16:00 und 16:59 Uhr aufgenommen |
| | #------------------------------------------------------------------------------# |
| | |
| | SNAP_ZEIT="$(date +'%u-%H')" |
| | zfs list -Hp | awk '/mysql_datadir/{print $1}' | while read SNAP |
| | do |
| | echo "################################################################################" |
| | echo "snapshot ${SNAP}@${SNAP_ZEIT} erneuern" |
| | zfs destroy ${SNAP}@${SNAP_ZEIT} |
| | zfs snapshot ${SNAP}@${SNAP_ZEIT} |
| | done |
| | echo |
| | |
| | # alle SnapShots anzeigen |
| | zfs list -t snapshot |
| | </file> |
| | |
| | |
| | ==== ZFS-Snapshot mounten ==== |
| | |
| | <code bash> |
| | root@mysqlhost01:~# zfs list -t snapshot |
| | NAME USED AVAIL REFER MOUNTPOINT |
| | mysql_datadir@3-17 0B - 10.1M - |
| | |
| | root@mysqlhost01:~# mount -t zfs mysql_datadir@3-17 /mnt/ |
| | |
| | root@mysqlhost01:~# df -h /mnt/ |
| | Filesystem Size Used Avail Use% Mounted on |
| | mysql_datadir@3-17 145G 11M 145G 1% /mnt |
| | |
| | root@mysqlhost01:~# ls -lha /mnt/ |
| | total 13K |
| | drwxr-xr-x 3 mysql mysql 3 Dec 9 17:19 . |
| | drwxr-xr-x 23 root root 4.0K Dec 9 15:39 .. |
| | drwxr-xr-x 7 mysql mysql 53 Dec 10 16:21 data |
| | |
| | root@mysqlhost01:~# umount /mnt/ |
| | |
| | root@mysqlhost01:~# df -h /mnt/ |
| | Filesystem Size Used Avail Use% Mounted on |
| | /dev/sda2 48G 13G 33G 28% / |
| | |
| | root@mysqlhost01:~# ls -lha /mnt/ |
| | total 8.0K |
| | drwxr-xr-x 2 root root 4.0K Aug 5 16:54 . |
| | drwxr-xr-x 23 root root 4.0K Dec 9 15:39 .. |
| | </code> |
| | |
| | |
| | ==== ZFS-Snapshot löschen ==== |
| | |
| | <code bash> |
| | root@mysqlhost01:~# zfs list -t snapshot |
| | NAME USED AVAIL REFER MOUNTPOINT |
| | mysql_datadir@3-17 0B - 10.1M - |
| | |
| | root@mysqlhost01:~# zfs destroy mysql_datadir@3-17 |
| | |
| | root@mysqlhost01:~# zfs list -t snapshot |
| | no datasets available |
| | </code> |
| | |
| | |
| | ==== ZFS-Pool resize ==== |
| |
| [[https://docs.freebsd.org/en/books/handbook/disks/]] | [[https://docs.freebsd.org/en/books/handbook/disks/]] |
| |
| the resize is triggered by running the online subcommand with -e: | the resize is triggered by running the online subcommand with ''-e'': |
| # zpool online -e zroot /dev/ada0p2 | <code bash resize> |
| | root@mysqlhost01:~# zpool list |
| | |
| | root@mysqlhost01:~# zpool online -e mysql_datadir /dev/sdb |
| | |
| | root@mysqlhost01:~# zpool list |
| | </code> |
| |
| |
| |
| den SnapShots löschen: | den SnapShots löschen: |
| > zfs destroy speicher/B@2024-04-04_22-59-45 | > zfs destroy speicher/home@2024-04-04_22-59-45 |
| | |
| > zfs list -rt snapshot speicher/home | > zfs list -rt snapshot speicher/home |
| no datasets available | no datasets available |
| |
| nur das eine ZFS-Volumen "daten" (samt seiner SnapShots) auf dem Daten-Pool "speicher" löschen: | nur das eine ZFS-Volumen "daten" (''-r'' => samt seiner SnapShots) auf dem Daten-Pool "speicher" löschen: |
| > zfs destroy -r speicher/daten | > zfs destroy -r speicher/daten |
| |
| alle ZFS-Volumen (samt ihrer SnapShots) auf dem Daten-Pool "speicher" löschen: | alle ZFS-Volumen (''-r'' => samt ihrer SnapShots) auf dem Daten-Pool "speicher" löschen: |
| > zfs destroy -r speicher | > zfs destroy -r speicher |
| |