Estoy ejecutando Ubuntu Server 13.04 de 64 bits con ZFS nativo. Tengo un zpool que consta de 4 discos duros, uno de los cuales murió ayer y ahora el sistema operativo o el BIOS ya no lo reconocen.
Desafortunadamente, vi el problema solo después del siguiente reinicio, así que ahora falta la etiqueta de la unidad y no puedo reemplazar el disco usando las instrucciones oficiales aquí y aquí .
zpool status hermes -x
huellas dactilares
root@zeus:~# zpool status hermes -x
pool: hermes
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: scrub repaired 0 in 2h4m with 0 errors on Sun Jun 9 00:28:24 2013
config:
NAME STATE READ WRITE CKSUM
hermes DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST3300620A_5QF0MJFP ONLINE 0 0 0
ata-ST3300831A_5NF0552X UNAVAIL 0 0 0
ata-ST3200822A_5LJ1CHMS ONLINE 0 0 0
ata-ST3200822A_3LJ0189C ONLINE 0 0 0
errors: No known data errors
Ya reemplacé el disco por uno nuevo (que obtuvo la etiqueta /dev/disk/by-id/ata-ST3500320AS_9QM03ATQ
)
Cualquiera de los comandos
zpool replace hermes /dev/disk/by-id/ata-ST3300831A_5NF0552X /dev/disk/by-id/ata-ST3500320AS_9QM03ATQ
zpool offline hermes /dev/disk/by-id/ata-ST3300831A_5NF0552X
zpool detatch hermes /dev/disk/by-id/ata-ST3300831A_5NF0552X
falla con
root@zeus:~# zpool offline hermes /dev/disk/by-id/ata-ST3300831A_5NF0552X
cannot offline /dev/disk/by-id/ata-ST3300831A_5NF0552X: no such device in pool
porque la etiqueta de la unidad que murió ya no existe en el sistema. También probé los comandos anteriores omitiendo la ruta a la etiqueta de la unidad en vano.
¿Cómo puedo reemplazar el disco "fantasma"?
-n
interruptor, pero también el-g
interruptor tomará el líquido de esa manera también.zpool status
(nombres como sdab) NO eran las mismas que las rutas en/dev/disk/by-id
(nombres de ID largos y locos). Perols -la /dev/disk/by-id
revela que todos son enlaces,/dev/...
así que encontré el que apuntaba a mi disco UNAVAIL (y, posteriormente, OFFLINE), y pude completar estos pasos con éxito. Ahora es resistente. ¡Gracias!zpool status -g
mostrar el estado mediante GUID para cada dispositivo. Además, para @Matt,zpool status -L
mostrará el estado utilizando los nombres básicos del dispositivo en lugar de los/dev/disk/by-id
nombres largos .El problema es que los discos están referenciados por identificadores y no por dispositivo.
Aquí hay una solución que debería funcionar:
Editar: llegué 30 segundos tarde ...
fuente
no such device in pool
.zpool status
offline
yreplace
pasos). Importé el grupo por segunda vez después de eliminar el enlace nulo. ¿Quizás fue solo un problema con la etiqueta de la unidad? De hecho, el nombre del disco seguía siendo el mismo. Luego hice un exfoliante completo y no se encontraron errores.@ Marcus: Gracias por publicar esta excelente respuesta a su propia pregunta, me ayudó mucho.
El otro día encontré un giro que podría interesarle (y a cualquier otra persona que venga a buscar en Google en el futuro): tuve un dispositivo de caché que se eliminó del grupo (y se marcó como "UNAVAIL") debido a este mismo error (ZFS-8000-4J, "falta la etiqueta o no es válida"), y al intentar desconectarlo / eliminarlo / reemplazarlo falló exactamente con el mismo mensaje "ningún dispositivo en el grupo".
PERO, cuando traté de aplicar la solución, claro "ZDB" (sin argumentos) no no lista el dispositivo, y mucho menos su GUID.
Después de investigar un poco, descubrí que "zdb -l / dev / DEVICENAME" enumeraba el GUID (tomándolo directamente del dispositivo y no de los registros del grupo), y usar ese GUID me permitió hacer el reemplazo (en realidad hice un "zpool offline" seguido de un "zpool remove" y luego un "zpool add", que funcionó perfectamente).
fuente
zdb -l /dev/...
siempre mostró "no se pudo descomprimir la etiqueta".Tuve un problema similar:
La unidad falló de tal manera que ya no se registró en el BIOS (totalmente muerta). El
zpool status
indicado que eraUNAVAILABLE
.Puse una unidad de capacidad similar y logré asignarla como una nueva
spare
que fueINUSE
y recargué la unidad. Pero, en realidad no era parte del zpool, más bien el grupo tenía un recuerdo del disco perdido, pensando que algún día volvería a aparecer.La solución fue soltar primero la unidad faltante del zpool:
Luego, suelte la unidad marcada
spare-1 INUSE
también:Una vez que hice esto, parece que FreeNAS lo descubrió sin que yo tuviera que hacer un
replace
comando, sin embargo, si su sistema no lo resuelve, el siguiente comando debería reemplazar un dispositivo con el otro:Por ejemplo:
zpool status
comando.fuente