ZFS - Pool Import/Export bei Boot/Shutdown

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chrbr
Beiträge: 551
Registriert: 29.10.2022 15:53:26

ZFS - Pool Import/Export bei Boot/Shutdown

Beitrag von chrbr » 26.08.2023 21:58:26

Hallo zusammen,
ich habe hier einen Rechner, der entweder FreeBSD oder Debian booten kann. Versuchsweise habe ich auf einer zusätzlichen Partition mit FreeBSD einen Pool erzeugt, über den ich gemeinsame Dateien Betriebssystem übergreifend nutzen will. Damit ich einen von FreeBSD eingebundenen Pool in Debian importieren kann muss ich ihn unter FreeBSD exportiert haben. Das gleiche gilt auch in die umgekehrte Richtung. Man könnte zwar auch mit einer Option -f den Import trotzdem erzwingen, ich bin aber kein Freund von so was.

Das sollte man mit Systemd erreichen können. Mit systemd.services funktioniert folgende Lösung:

Code: Alles auswählen

[Unit]
Description=Import and export the ZFS pool tank
After=network.target
Requires=zfs-mount.service

[Service]
ExecStart=/usr/bin/zpool import tank
ExecStop=/usr/bin/zpool export tank
RemainAfterExit=true
Type=oneshot

[Install]
WantedBy=multi-user.target
Es reicht, wenn der Pool nach dem Start der Netzwerkdienste importiert wird. Damit hat man in der anderen Richtung zum Shutdown auch "Sicherheitsabstand". ich habe systemd.services verwendet, weil ich da einen guten Startpunkt hatte. Bevor ich RemainAfterExit entdeckt habe habe ich ein Skript verwendet und Klimmzüge gemacht, damit der Service nicht gleich wieder beendet wird. So wie oben ist das aber sehr kompakt.

Was haltet ihr davon?
Wären systemd.timer eleganter oder sinnvoller?
Oder gibt es noch andere sinnvolle Möglichkeiten?

Viele Grüße und vorab Danke für eure Meinungen,
Christoph

Antworten