Intenté instalar zfs en Debian 9.1, sin embargo, estoy experimentando algunos errores.
Mi primera instalación fue solo de zfs-dkms, sin embargo, leí en la red que también se requiere spl-dkms para que se ejecute zfs-dkms.
Mis pasos fueron cambiar mi sources.list agregando el contrib no libre de la siguiente manera:
/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
Hice una actualización clásica de apt-get y luego intenté instalar zfs con lo siguiente:
apt-get install spl-dkms
y solo después
apt-get install zfs-dkms
Como resultado, tengo estos errores:
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) ...
Leyendo journalctl -xe como sugerí me sale:
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é pasa aquí? Me perdí algo más? ¿Cómo se relaciona el paquete zfs-linux con la instalación de zfs?
¿Cuál es la forma correcta de instalar zfs en debian 9?
dkms status | grep zfs
?Respuestas:
La respuesta real de @cas es buena, pero se deben aplicar algunas correcciones.
Así que tomemos una nueva instalación de Debian 9 y supongamos que los repositorios contributivos no libres tampoco están habilitados.
Paso 0: habilite los repositorios contrib no libres
Solía
sed
encontrar y reemplazar la palabra principal dentro/etc/apt/sources.list
Paso 1 - Instalación de ZFS
Dado que las últimas correcciones
spl-dkms
se ven correctamente como unazfs-dkms
dependencia, se recupera automáticamente y no es necesario instalarlo manualmente anteszfs-dkms
. El enlace simbólico es necesario debido a un error dentro de la distribución zfs en Debian, que no buscarm
binarios en la posición correcta.Paso 2: reinicio de ZFS
En este punto, zfs-dkms está instalado pero arroja errores
journalctl -xe
; para iniciar zfs correctamente use:Paso 3: DEBE CREAR AL MENOS UN ZPOOL
En este punto descubrí que USTED debe crear un zpool antes de reiniciar; de lo contrario, zfs no cargará los módulos adecuados si no hay zpools. Es una especie de mecanismo de ahorro de recursos (pero incluso en ese caso, todavía arrojará errores
journalctl -xe
)https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864348
Si se pierde esta parte, debe comenzar desde el Paso 2
Por ejemplo, al usar el ejemplo proporcionado por @cas, puede crear este zpool basado en archivo o directamente crear sus discos basados.
luego, después de
reboot
todo, todo funcionará sin errores enjournalctl -xe
fuente
Ligeras variaciones para mí en Debian 9.4 - después de las adiciones de fuentes Apt:
El monte NO estaba presente suspiro - descubrió que había un
/var/jeff
contenido existente - movió eso fuera del camino e hizo unreboot
...Después de reiniciar:
Hurra - todos los presentes y protegidos contra la putrefacción de bits
fuente
/dev/disk/by-id/?
lugar de/dev/sd?
dispositivos. Utilice los nombres de by-id al crear el grupo o corríjalo más adelante conzpool export <pool>
seguido dezpool import -d /dev/disk/by-id/ <pool>
. Estos nombres, a diferencia de / dev / sd *, persistirán durante los reinicios. Además, si tiene una impresora de etiquetas, puede imprimir etiquetas con versiones cortas de los nombres de dispositivo by-id (generalmente hay una parte del número de serie del nombre que hace una etiqueta buena, corta y única) y etiquetar las unidades para hacerlas fácil de identificar si alguna vez necesitan ser reemplazados.lsblk -f
verifico justo antes de jugar con el hardware del disco: para nuestros servidores de producción, la herramienta de parpadeo del disco duro de Dell es útil para relacionar el sistema operativo actual. alias a la unidad física :) - Creo que / dev / disk / by-id es más útil para otros sistemas de montaje que no tienen la coherencia integrada de ZFS, por ejemplo, fstab.zpool
comandos comostatus
ylist
, que se pueden copiar y pegar fácilmente en cualquier comando necesario de zpool offline / detach / replace / etc.sda
no te dice nada útil.ata-ST4000VN008-2DR166_ZDH35XXX
identifica exactamente qué tipo de unidad es y su número de serie. Usted todavía puede obtener los nombres (actuales) dev cortos si alguna vez quiere que el uso de la-L
opción conzpool list
,zpool status
, etc (en mi experiencia, sobre todo útil conzpool list -L -v
).Acabo de crear una nueva máquina virtual elástica para probar esto. Instalación mínima (solo herramientas de sistema estándar y ssh), edite sources.list para agregar contrib y non-free, luego:
También puede instalarlo manualmente
zfsutils-linux
. Debe instalarse automáticamente cuando realiza la instalación,zfs-dkms
pero las dependencias pueden variar para diferentes versiones de Debian y para diferentes versiones de los paquetes de Debian ZoL:Parece que hay un error en el archivo de la unidad systemd
zfs-share
. Está tratando de correr en/usr/bin/rm
lugar de/bin/rm
.La solución rápida es ejecutar
ln -s /bin/rm /usr/bin
, o alternativamente:y luego reinicie los servicios zfs:
NOTA:
modprobe zfs
Ejecuté manualmente antes de reiniciar cualquiera de los servicios de zfs. No estoy seguro de si lo harán automáticamente o no, por lo que es posible que deba hacerlo también.Por cierto, probablemente también quieras
apt-get install zfs-initramfs
, para asegurarte de que zfs se cargue durante initramfs.Probé que esto funciona con:
El zpool funciona y / tank se monta automáticamente después de un reinicio.
Conclusión: funciona ahora.
Por cierto, este tramo VM utiliza un ZFS Zvol creado en mi
sid
sistema principal como su disco. Hice una instantánea si fue inmediatamente después de la instalación inicial, antes de instalar spl-dkms y zfs-dkms para poder volver rápidamente y comenzar de nuevo si algo importante salía mal.Primero hice el zvol con solo 1GB y necesitaba aumentarlo más tarde para tener suficiente espacio para build-essential, linux-headers-amd64, etc.
La configuración
compression=lz4
del tanque en la máquina virtual es probablemente peor que inútil: el zvol ya tiene compresión lz4.fuente