
Había 2 discos en el grupo /dev/sde /dev/sdf
El disco /dev/sde estaba dañado, lo excluí del grupo y lo reemplacé con un disco nuevo. La redada se ha degradado.
Después de agregar un nuevo disco /dev/sde al grupo, obtuve la siguiente configuración:
zpool status
pool: rpool
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 0B in 0h25m with 0 errors on Wed Sep 2 18:32:39 2020
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
old UNAVAIL 0 0 0
sdf2 ONLINE 0 0 0
sde2 ONLINE 0 0 0
Reemplazar, desconectar y eliminar "antiguo" siempre genera un error:
zpool replace rpool old
cannot open 'old': no such device in /dev
must be a full path or shorthand device name
En el archivo /etc/zfs/zpool.cache veo la unidad /dev/sde2/old
¿Cómo elimino el disco antiguo sin reiniciar el servidor y eliminar la matriz (la matriz es /)?
root@v05:/# zpool replace rpool old sde2
invalid vdev specification
use '-f' to override the following errors:
/dev/sde2 is part of active pool 'rpool'
root@v05:/# zpool replace -f rpool old sde2
invalid vdev specification
the following errors must be manually repaired:
/dev/sde2 is part of active pool 'rpool'
sde ya es miembro de rpool.
Es necesario eliminar el disco antiguo (/dev/sde/old) del grupo.
No hubo ningún error al agregar el nuevo disco, hizo todo exactamente como escribió.
Respuesta1
Problema resuelto.
zdb
busque la identificación 15497986214547762579 para /dev/sde/old dispositivo y elimine:
zpool fuera de línea -f rpool 15497986214547762579
zpool separar rpool 15497986214547762579
Respuesta2
Probablemente cometiste un error al agregar el nuevo disco: emitiste zpool add rpool <newdisk>
, pero tenías quereemplazarel disco fallido. En otras palabras, tenías que:
zpool replace rpool <olddisk> <newdisk>
zpool detach rpool <olddisk>; zpool attach rpool sdf
(sdf
siendo la otra pata del espejo).
Observe cómo escribí attach
, mientras que probablemente usó add
en su comando zpool.
¿Cómo puedes solucionar el problema? Con ZFS 0.7.x no tiene suerte, ya que no se pueden eliminar datos vdev después de agregarlos. ConZFS 0.8.x puedes eliminarlopor lo tanto, si está ejecutando ZFS 0.7.x, debe actualizar a 0.8.x como primer paso. Luego debe emitir el comando anterior para reemplazar el disco fallido.
Respuesta3
Hice un reemplazo de disco de acuerdo con la documentación de Oracle. Ahora tengo el siguiente resultado del comando:
root@v05:/# zpool reemplaza rpool antiguo sde2 especificación vdev no válida usa '-f' para anular los siguientes errores: /dev/sde2 es parte del grupo activo 'rpool'
root@v05:/# zpool reemplaza -f rpool antigua especificación vdev de sde2 no válida. Los siguientes errores deben repararse manualmente: /dev/sde2 es parte del grupo activo 'rpool'