No puedo eliminar el disco "malo" del grupo zfs

No puedo eliminar el disco "malo" del grupo zfs
  1. Había 2 discos en el grupo /dev/sde /dev/sdf

  2. El disco /dev/sde estaba dañado, lo excluí del grupo y lo reemplacé con un disco nuevo. La redada se ha degradado.

  3. 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( sdfsiendo la otra pata del espejo).

Observe cómo escribí attach, mientras que probablemente usó adden 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'

información relacionada