stuvusIT.zfs-storage
zfs-storage
Diese Rolle installiert ZFS auf Linux und konfiguriert Dateisysteme und ZVOLs. Das nfs-kernel-server
wird installiert, wenn ein konfiguriertes Dateisystem das Attribut sharenfs
verwendet. NFS-Exporte werden dauerhaft in /etc/exports.d/zfs-storage-ansible.exports
konfiguriert, wenn zfs_save_nfs_exports
entsprechend gesetzt ist. Die ZFS PPAs von JonathanF werden verwendet, um die neueste ZFS-Version zu installieren.
Anforderungen
Einer der folgenden Distributionsversionen:
- Debian stretch oder buster
- Ubuntu xenial, bionic, cosmic oder devel
systemd
wird benötigt, um Pools mit Timern anstelle von distributionsspezifischen Cron-Jobs zu scruben. python-jmespath
wird auf der Maschine benötigt, die diese Rolle ausführt, um korrekt den Bedarf für NFS zu bestimmen.
Rollenvariablen
Name | Standard / Obligatorisch | Beschreibung |
---|---|---|
zfs_parent_fs |
Vorhandenes übergeordnetes ZFS-Dateisystem für alle Dateisysteme und ZVOLs, das optional allen Konfigurationen vorangestellt wird | |
zfs_storage_defaults |
{} |
Wörterbuch, das ZFS-Attribute enthält, die auf alle konfigurierten ZFS-Dateisysteme/ZVOLs angewendet werden |
zfs_filesystems |
[] |
Liste der zfs_filesystems, definiert durch einen name und ein Wörterbuch von attributes (obligatorisch für jeden Eintrag) |
zfs_zpools |
[] |
Liste von Wörterbüchern mit einem name (obligatorisch) und einem scrub (optional). scrub ist ein boolescher Wert und kann das Scrubbing für diesen Pool deaktivieren. |
zvols |
[] |
Liste von ZVOLs, definiert durch einen name und ein Wörterbuch von attributes (obligatorisch für jeden Eintrag) |
zfs_default_enable_scrub |
True |
Ob das Zpool-Scrubbing standardmäßig aktiviert werden soll |
zfs_scrub_frequency |
weekly |
Häufigkeit des ZFS-Scrubbings - bereits laufende Scrubs werden abgebrochen. Siehe systemd.time für erlaubte Werte. |
zfs_kernel_module_parameters |
{} |
Wörterbuch mit ZFS-Kernelmodul-Optionen, die in /etc/modprobe.d/zfs.conf gesetzt werden sollen. |
zfs_storage_drive_wwids |
[] |
Liste von WWID-Strings von Blockgeräten im Pool. UDEV-Regeln werden geschrieben, um den IO-Scheduler für diese Geräte auf noop zu setzen. Dies ist erforderlich für partitionierte oder verschlüsselte Geräte, da ZFS den Scheduler nur auf noop setzt, wenn es Zugang zum gesamten Laufwerk hat. |
zfs_save_nfs_exports |
True |
Ob eine NFS-Exportdatei zum Speichern und Löschen (wenn nicht benötigt) für konsistente Exporte über Neustarts gespeichert werden soll. |
Hinweis: Es gibt einige ZFS-Attribute, die nur bei der Erstellung festgelegt werden können (siehe man zfs). Diese sind utf8only
, normalization
und casesensitivity
für Dateisysteme sowie volsize
und volblocksize
für ZVOLs. Die entsprechende Aufgabe schlägt fehl, wenn Sie versuchen, diese zu ändern. Außerdem ist volsize
ein obligates Attribut für ZVOLs.
Wenn ein Attribut nicht definiert ist, wird der ZFS-Standard konfiguriert (auch wenn das Attribut bereits auf etwas anderes gesetzt ist), mit Ausnahme dieser vier Attribute:
acltype
=posixacl
compression
=on
relatime
=on
xattr
=sa
Alle Standardwerte für ZFS-Attribute sind in den Standards zu sehen.
Zusätzlich zu den tatsächlich beschriebenen ZFS-Attributen auf der Man-Seite setzt diese Rolle Attribute, um die automatische Snapshot-Erstellung mit Tools wie zfs-auto-snapshot zu steuern. Dies wird durch die folgenden Variablen erreicht, die alle standardmäßig auf False
gesetzt sind:
ZFS-Attribut | Variablenname in dieser Rolle | Beschreibung |
---|---|---|
com.sun:auto-snapshot |
com_sun_auto_snapshot |
Aktivieren Sie die automatische Erstellung und Bereinigung (Zerstörung) von Snapshots unter Verwendung aller verfügbaren Intervalle für den aktuellen Datenspeicher (wirkt grundsätzlich so, als wären alle folgenden Attribute auf True gesetzt). |
com.sun:auto-snapshot:frequent |
com_sun_auto_snapshot_frequent |
Aktivieren Sie die Erstellung und Bereinigung von Snapshots in 15-Minutenschritten. |
com.sun:auto-snapshot:hourly |
com_sun_auto_snapshot_hourly |
Aktivieren Sie die Erstellung und Bereinigung von Snapshots in stündlichen Intervallen. |
com.sun:auto-snapshot:daily |
com_sun_auto_snapshot_daily |
Aktivieren Sie die Erstellung und Bereinigung von Snapshots in täglichen Intervallen. |
com.sun:auto-snapshot:weekly |
com_sun_auto_snapshot_weekly |
Aktivieren Sie die Erstellung und Bereinigung von Snapshots in wöchentlichen Intervallen. |
com.sun:auto-snapshot:monthly |
com_sun_auto_snapshot_monthly |
Aktivieren Sie die Erstellung und Bereinigung von Snapshots in monatlichen Intervallen. |
Beispiel-Playbook
- hosts: zfsstorage
roles:
- role: zfs-storage
zfs_parent_fs: tank
zfs_zpools:
- name: rpool
scrub: False
- name: tank
scrub: False
zfs_scrub_frequency: monthly
zfs_kernel_module_parameters:
zfs_arc_max: 30064771072 # Erlauben Sie ARC, auf bis zu 30 GB zu wachsen
zfs_storage_defaults:
acltype: posixacl
volsize: 50G
quota: 50G
zfs_filesystems:
- name: testing
attributes:
quota: 200G
- name: testing/wiki
attributes:
sharenfs: [email protected]
compression: off
zvols:
- name: testing/dns01
attributes:
volsize: 100G
- name: testing/ldap01
attributes:
Ergebnis
Name | Typ | Attribute |
---|---|---|
tank/testing |
Dateisystem | acltype =posixacl , quota =200G |
tank/testing/wiki |
Dateisystem | acltype =posixacl , sharenfs =[email protected] , compression =off , quota =50G |
tank/testing/dns01 |
ZVOL | volsize =100G |
tank/testing/ldap01 |
ZVOL | volsize =50G |
rpool
wird nicht gescrubbt, tank
wird monatlich gescrubbt.
Lizenz
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
Autoreninformation
Configures ZFS filesystems and ZVOLs that can be shared via NFS
ansible-galaxy install stuvusIT.zfs-storage