Estoy probando el paquete OpenZFS en Ubuntu 16.04 Xenial.
Al crear grupos, siempre hago referencia a las unidades de sus series en /dev/disk/by-id/
(o /dev/disk/gpt
en FreeBSD) para la resistencia. Las unidades no siempre están en el mismo orden /dev
cuando se reinicia una máquina, y si tiene otras unidades en la máquina, es posible que el grupo no se monte correctamente.
Por ejemplo, corriendo zpool status
en una caja 14.04 obtengo esto:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HUA722020ALA330_[..] ONLINE 0 0 0
Pero cuando creo un nuevo grupo en 16.04 con esto (abreviado):
zpool create pool raidz \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]
Me sale esto con zpool status
:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdf ONLINE 0 0 0
sde ONLINE 0 0 0
sdd ONLINE 0 0 0
sda ONLINE 0 0 0
Parece que zpool siguió los enlaces simbólicos, en lugar de hacer referencia a ellos.
¿Hay alguna manera de forzar a zpool en 16.04 a respetar las referencias de mi unidad al crear un grupo? O, alternativamente, ¿mis dudas sobre lo que está haciendo aquí están fuera de lugar?
Actualización: solución alternativa
Me encontré con un hilo de zfsonlinux en Github que sugirió una solución. Cree su zpool con /dev/sdX
dispositivos primero, luego haga esto:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
Todavía preferiría poder hacer esto con la inicial, zpool create
si es posible.
zfs export
yzfs import -d
funcionará de todos modos. Por cierto, a menos que realmente necesite cada byte de espacio, use dos pares reflejados en lugar de raidz. El rendimiento de raidz es mejor que el de raid-5 pero aún mucho peor que el de los pares duplicados de raid-10 o zfs. también es más fácil expandir un grupo compuesto por pares reflejados, solo agregue dos discos a la vez ... con raidz, debe reemplazar cada una de las unidades con unidades más grandes, y solo cuando haya reemplazado todas ellas, su La piscina tiene más espacio disponible.zfs send
para copiar mis datos a los nuevos grupos. En realidad, raid-z está bien para mi caja de mito, donde el rendimiento no es crítico a menos que esté ejecutando 6 u 8 trabajos de transcodificación a la vez. Cambiar a pares duplicados sería muy notable en el grupo donde/home
vive mi directorio.Respuestas:
Uno de vez en cuando,
zpool import -d /dev/disk/by-id
no funciona.He notado esto en más de un entorno. Tengo un script de importación que, más allá de hacer algo de lógica mágica y mostrar dispositivos ZFS conectados físicamente, también hace básicamente esto:
La segunda vez, incluso sin el
-d
interruptor, importa por ID de dispositivo, incluso si no lo hizo la primera vez con el comando explícito.Es posible que esto se deba a un error de ZFS durante algunas semanas o meses (hace un año o dos), y esto ya no es necesario. Supongo que debería haber presentado un informe de error, pero fue trivial evitarlo.
fuente
Sé que este hilo es algo rancio, pero hay una respuesta. Necesita actualizar su archivo de caché después de importar. Este ejemplo muestra la ubicación predeterminada para el archivo de caché.
fuente