Ich habe versucht, zfs unter Debian 9.1 zu installieren, es treten jedoch einige Fehler auf.
Meine erste Installation war nur von zfs-dkms, aber ich habe im Internet gelesen, dass auch die spl-dkms erforderlich sind, damit zfs-dkms ausgeführt werden kann.
Meine Schritte bestanden darin, meine Quellenliste zu ändern und den nicht freien Beitrag wie folgt hinzuzufügen :
/etc/apt/sources.list
deb http://ftp.nl.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.nl.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
# stretch-updates, previously known as 'volatile'
deb http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free
Ich habe ein klassisches apt-get-Update durchgeführt und dann versucht, zfs wie folgt zu installieren:
apt-get install spl-dkms
und erst danach
apt-get install zfs-dkms
Infolgedessen habe ich folgende Fehler:
root@debian:/etc/apt# apt-get install zfs-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-zed zfsutils-linux
...
DKMS: install completed.
Setting up libzpool2linux (0.6.5.9-5) ...
Setting up libzfs2linux (0.6.5.9-5) ...
Setting up zfsutils-linux (0.6.5.9-5) ...
Created symlink /etc/systemd/system/zfs-mount.service.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cac
Created symlink /etc/systemd/system/zfs.target.wants/zfs-import-cache.service â /lib/systemd/system/zfs-import-cache.serv
Created symlink /etc/systemd/system/zfs-share.service.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-mount.service â /lib/systemd/system/zfs-mount.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-share.service â /lib/systemd/system/zfs-share.service.
Created symlink /etc/systemd/system/multi-user.target.wants/zfs.target â /lib/systemd/system/zfs.target.
zfs-import-scan.service is a disabled or a static unit, not starting it.
Job for zfs-mount.service failed because the control process exited with error code.
See "systemctl status zfs-mount.service" and "journalctl -xe" for details.
zfs-mount.service couldn't start.
Job for zfs-share.service failed because the control process exited with error code.
See "systemctl status zfs-share.service" and "journalctl -xe" for details.
zfs-share.service couldn't start.
Setting up zfs-zed (0.6.5.9-5) ...
Created symlink /etc/systemd/system/zed.service â /lib/systemd/system/zfs-zed.service.
Created symlink /etc/systemd/system/zfs.target.wants/zfs-zed.service â /lib/systemd/system/zfs-zed.service.
Processing triggers for libc-bin (2.24-11+deb9u1) ...
Wenn ich journalctl -xe wie vorgeschlagen lese, bekomme ich:
root@debian:/etc/apt# journalctl -xe
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Main process exited, code=exited, status=1/FAILURE
Aug 02 23:13:13 debian systemd[1]: Failed to start ZFS file system shares.
-- Subject: Unit zfs-share.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-share.service has failed.
--
-- The result is failed.
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Unit entered failed state.
Aug 02 23:13:13 debian systemd[1]: zfs-share.service: Failed with result 'exit-code'.
Aug 02 23:13:13 debian systemd[1]: Starting Mount ZFS filesystems...
-- Subject: Unit zfs-mount.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-mount.service has begun starting up.
Aug 02 23:13:13 debian zfs[81481]: The ZFS modules are not loaded.
Aug 02 23:13:13 debian zfs[81481]: Try running '/sbin/modprobe zfs' as root to load them.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Main process exited, code=exited, status=1/FAILURE
Aug 02 23:13:13 debian systemd[1]: Failed to start Mount ZFS filesystems.
-- Subject: Unit zfs-mount.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-mount.service has failed.
--
-- The result is failed.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Unit entered failed state.
Aug 02 23:13:13 debian systemd[1]: zfs-mount.service: Failed with result 'exit-code'.
Aug 02 23:13:13 debian systemd[1]: Starting ZFS file system shares...
-- Subject: Unit zfs-share.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit zfs-share.service has begun starting up.
Aug 02 23:13:13 debian systemd[81483]: zfs-share.service: Failed at step EXEC spawning /usr/bin/rm: No such file or direc
-- Subject: Process /usr/bin/rm could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The process /usr/bin/rm could not be executed and failed.
--
-- The error number returned by this process is 2.
Was ist hier los? Ich habe etwas anderes verpasst? Wie hängt das zfs-linux- Paket mit der zfs-Installation zusammen?
Was ist der richtige Weg, um zfs in Debian 9 zu installieren?
dkms status | grep zfs
?Antworten:
Die tatsächliche Antwort von @cas ist gut, es müssen jedoch einige Korrekturen vorgenommen werden.
Nehmen wir also eine Neuinstallation von Debian 9 und gehen wir davon aus, dass die nicht freien Contrib- Repositorys ebenfalls nicht aktiviert sind.
Schritt 0 - Aktivieren Sie die beitragsfreien Repositorys
Ich habe
sed
das Wort main im Inneren gefunden und ersetzt/etc/apt/sources.list
Schritt 1 - ZFS-Installation
Da die letzten Korrekturen
spl-dkms
korrekt alszfs-dkms
Abhängigkeit angesehen werden, werden sie automatisch abgerufen und müssen zuvor nicht manuell installiert werdenzfs-dkms
. Der symbolische Link wird aufgrund eines Fehlers in der zfs-Distribution in Debian benötigt, der nichtrm
an der richtigen Position nach Binärdateien sucht .Schritt 2 - ZFS-Neustart
Zu diesem Zeitpunkt ist zfs-dkms installiert, es werden jedoch Fehler ausgegeben
journalctl -xe
. Um zfs richtig zu starten, verwenden Sie:Schritt 3 - Sie müssen mindestens eine ZPOOL erstellen
Zu diesem Zeitpunkt habe ich festgestellt, dass SIE vor dem Neustart einen Zpool erstellen müssen, da sonst zfs nicht die richtigen Module lädt, wenn keine Zpools vorhanden sind. Es ist eine Art Mechanismus zum Speichern von Ressourcen (aber selbst in diesem Fall wirft dies immer noch Fehler nach innen
journalctl -xe
).https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348
Wenn Sie diesen Teil verpassen, müssen Sie mit Schritt 2 beginnen
Mithilfe des von @cas bereitgestellten Beispiels können Sie beispielsweise diesen dateibasierten Zpool erstellen oder direkt Ihre festplattenbasierten Zpools erstellen.
dann wird nach einem
reboot
alles fehlerfrei funktionierenjournalctl -xe
quelle
Leichte Variationen für Debian 9.4 - nach den Ergänzungen der Apt-Quellen:
Das Reittier war NICHT anwesend Seufzer - entdeckte, dass es einen
/var/jeff
mit Inhalt existierenden gab - schob das aus dem Weg und machte einenreboot
...Nach dem Neustart:
Hurra - alles vorhanden und bit-rot geschützt :)
quelle
/dev/disk/by-id/?
anstelle von/dev/sd?
Geräten. Verwenden Sie entweder die Namen der By-IDs beim Erstellen des Pools oder korrigieren Sie sie später mitzpool export <pool>
gefolgt vonzpool import -d /dev/disk/by-id/ <pool>
. Diese Namen bleiben im Gegensatz zu / dev / sd * bei Neustarts erhalten. Wenn Sie über einen Etikettendrucker verfügen, können Sie auch Etiketten mit kurzen Versionen der By-ID-Gerätenamen drucken (normalerweise gibt es einen Teil der Seriennummer des Namens, der ein gutes, kurzes und eindeutiges Etikett ergibt) und die Laufwerke beschriften, um sie zu erstellen leicht zu identifizieren, wenn sie jemals ersetzt werden müssen.lsblk -f
kurz bevor ich mich mit der Laufwerkshardware beschäftige - für unsere Produktionsserver ist das Dell HDD-Blink-Tool hilfreich, um die aktuellen Betriebssysteme in Beziehung zu setzen. Alias für die physische Einheit :) - Ich denke, die Datei / dev / disk / by-id ist nützlicher für andere Montagesysteme, in die keine ZFS-Konsistenz integriert ist - z. B. fstab.zpool
Befehl wiestatus
undlist
, die leicht in jede notwendige kopier eingefügt werden kann zpool offline / detach / Ersetzen / etc Befehle.sda
sagt dir nichts Nützliches.ata-ST4000VN008-2DR166_ZDH35XXX
Identifiziert genau die Art des Laufwerks und seine Seriennummer. Sie können immer noch die (aktuellen) kurzen dev Namen, wenn man sie jemals mit der will-L
mit der Optionzpool list
,zpool status
usw. (in meiner Erfahrung, vor allem nützlich beizpool list -L -v
).Ich habe gerade eine brandneue Stretch-VM erstellt, um dies zu testen. Minimale Installation (nur SSH und Standard-Systemtools), bearbeiten Sie die Datei "sources.list", um Contrib und Non-Free hinzuzufügen. Dann:
Möglicherweise möchten Sie auch manuell installieren
zfsutils-linux
. Es sollte bei der Installation automatisch installiert werden,zfs-dkms
aber die Abhängigkeiten können für verschiedene Debian-Versionen und für verschiedene Versionen der Debian ZoL-Pakete variieren:Es sieht so aus, als ob es einen Fehler in der systemd-Einheitendatei für gibt
zfs-share
. Es versucht zu rennen/usr/bin/rm
statt/bin/rm
.Die schnelle Lösung besteht darin, auszuführen
ln -s /bin/rm /usr/bin
oder alternativ:und starten Sie dann die zfs-Dienste neu:
HINWEIS: Ich habe
modprobe zfs
vor dem Neustart eines der zfs-Dienste manuell ausgeführt . Ich bin mir nicht sicher, ob sie das automatisch tun oder nicht, also müssen Sie das möglicherweise auch tun.Übrigens möchten Sie wahrscheinlich
apt-get install zfs-initramfs
auch, um sicherzustellen, dass zfs während des initramfs geladen wird.Ich habe getestet, dass dies funktioniert mit:
Der zpool funktioniert und / tank wird nach einem Neustart automatisch montiert.
Fazit: es funktioniert jetzt.
Übrigens verwendet diese Stretch-VM ein auf meinem Hauptsystem erstelltes ZFS-Zvol
sid
als Festplatte. Ich habe einen Snapshot erstellt, wenn dieser unmittelbar nach der Erstinstallation erstellt wurde, bevor spl-dkms und zfs-dkms installiert wurden, damit ich schnell zurückkehren und neu starten konnte, wenn ein wichtiger Fehler auftrat.Ich habe das zvol zuerst mit nur 1 GB erstellt und musste es später vergrößern, um genügend Speicherplatz für Build-Essential, Linux-Header-AMD64 usw. zu haben:
Die Einstellung
compression=lz4
des Tanks in der VM ist wahrscheinlich schlechter als nutzlos - der zvol verfügt bereits über eine lz4-Komprimierung.quelle