J'ai essayé d'installer zfs sur debian 9.1, mais je rencontre quelques erreurs.
Ma première installation était uniquement de zfs-dkms mais j'ai lu sur le net que le spl-dkms est également requis pour que zfs-dkms s'exécute.
Mes étapes consistaient à changer ma source.list en ajoutant la contribution non gratuite comme suit:
/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
A fait une mise à jour apt-get classique, puis a essayé d'installer zfs avec ce qui suit:
apt-get install spl-dkms
et seulement après
apt-get install zfs-dkms
En conséquence, j'ai ces erreurs:
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) ...
Lire journalctl -xe comme suggéré, j'obtiens:
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.
Qu'est-ce qui ne va pas ici? J'ai raté autre chose? Comment le package zfs-linux est-il lié à l'installation de zfs?
Quelle est la bonne façon d'installer zfs dans debian 9?
dkms status | grep zfs
?Réponses:
La réponse réelle de @cas est bonne mais a quelques corrections à appliquer.
Prenons donc une nouvelle installation de Debian 9 et en supposant que les dépôts non libres de contrib ne sont pas non plus activés.
Étape 0 - Activer les référentiels non libres de contrib
J'ai utilisé
sed
pour trouver et remplacer le mot principal à l' intérieur/etc/apt/sources.list
Étape 1 - Installation de ZFS
Étant donné que les derniers correctifs
spl-dkms
sont correctement considérés comme deszfs-dkms
dépendances, ils sont rappelés automatiquement et il n'est pas nécessaire de les installer manuellement auparavantzfs-dkms
. Le lien symbolique est nécessaire en raison d'un bogue à l'intérieur de la distribution zfs dans Debian, qui ne recherche pas lerm
binaire dans la bonne position.Étape 2 - Redémarrage ZFS
À ce stade, zfs-dkms est installé mais il renvoie des erreurs
journalctl -xe
; pour démarrer correctement zfs, utilisez:Étape 3 - VOUS DEVEZ CRÉER AU MOINS UN ZPOOL
À ce stade, j'ai découvert que VOUS devez créer un zpool avant de redémarrer sinon zfs ne chargera pas les modules appropriés s'il n'y a pas de zpools. C'est une sorte de mécanisme d'économie de ressources (mais même dans ce cas, cela générera toujours des erreurs
journalctl -xe
)https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348
Si vous manquez cette partie, vous devez commencer à partir de l' étape 2
Par exemple, en utilisant l'exemple fourni par @cas, vous pouvez créer ce zpool basé sur un fichier ou créer directement ceux basés sur un disque.
puis après un
reboot
tout fonctionnera sans erreurjournalctl -xe
la source
Légères variations pour moi sur Debian 9.4 - après les ajouts aux sources Apt:
La monture n'était PAS présente soupir - a découvert qu'il y avait un
/var/jeff
contenu existant - a déplacé cela et a fait unreboot
...Après le redémarrage:
Hourra - tous présents et protégés contre la pourriture :)
la source
/dev/disk/by-id/?
plutôt que des/dev/sd?
appareils. Soit utiliser les noms by-id lors de la création du pool, soit corriger plus tard aveczpool export <pool>
suivi dezpool import -d /dev/disk/by-id/ <pool>
. Contrairement à / dev / sd *, ces noms persisteront lors des redémarrages. De plus, si vous avez une imprimante d'étiquettes, vous pouvez imprimer des étiquettes avec des versions courtes des noms de périphérique by-id (il y a généralement une partie de numéro de série du nom qui fait une bonne étiquette courte et unique) et étiqueter les lecteurs pour les faire facile à identifier si jamais ils doivent être remplacés.lsblk -f
juste avant de manipuler le matériel du lecteur - pour nos serveurs de production, l'outil de clignotement de disque dur Dell est utile pour relier le système d'exploitation actuel. alias de l'unité physique :) - Je pense que / dev / disk / by-id est plus utile pour d'autres systèmes de montage qui n'ont pas la cohérence intégrée de ZFS - par exemple fstab.zpool
commandes commestatus
etlist
, qui peuvent être facilement copiés-collés dans toutes les commandes zpool offline / detach / replace / etc nécessaires.sda
ne vous dit rien d'utile.ata-ST4000VN008-2DR166_ZDH35XXX
identifie exactement de quel type de disque il s'agit et son numéro de série. Vous pouvez toujours obtenir les si jamais vous voulez les utiliser les noms de dev courts (courants) l'-L
option aveczpool list
,zpool status
etc (dans mon expérience, la plupart du temps utile aveczpool list -L -v
).Je viens de créer une toute nouvelle VM extensible pour tester cela. Installation minimale (juste ssh et outils système standard), éditez sources.list pour ajouter contrib et non-free, puis:
Vous pouvez également souhaiter installer manuellement
zfsutils-linux
. Il doit être installé automatiquement lors de l'installation,zfs-dkms
mais les dépendances peuvent varier pour différentes versions de Debian et pour différentes versions des paquets Debian ZoL:Il semble qu'il y ait un bogue dans le fichier d'unité systemd pour
zfs-share
. Il essaie de courir/usr/bin/rm
au lieu de/bin/rm
.La solution rapide consiste à exécuter
ln -s /bin/rm /usr/bin
, ou bien:puis redémarrez les services zfs:
REMARQUE: j'ai exécuté manuellement
modprobe zfs
avant de redémarrer l'un des services zfs. Je ne sais pas s'ils le feront automatiquement ou non, vous devrez peut-être le faire aussi.BTW, vous le voudrez probablement
apt-get install zfs-initramfs
aussi, pour vous assurer que zfs est chargé pendant les initramfs.J'ai testé que cela fonctionne avec:
Le zpool fonctionne et / tank est monté automatiquement après un redémarrage.
Conclusion: ça marche maintenant.
BTW, cette VM extensible utilise un zvol ZFS créé sur mon
sid
système principal comme son disque. J'ai fait un instantané si c'est immédiatement après l'installation initiale, avant d'installer spl-dkms et zfs-dkms afin que je puisse rapidement revenir en arrière et recommencer en cas de problème majeur.J'ai d'abord créé le zvol avec seulement 1 Go et j'ai dû l'augmenter plus tard pour avoir suffisamment d'espace pour build-essential, linux-headers-amd64, etc.:
le réglage
compression=lz4
sur tank dans la VM est probablement pire qu'inutile - le zvol a déjà une compression lz4 dessus.la source