¡Te damos la bienvenida al nuevo sysarmy --help! Para recuperar tu usuario pedí un password reset.

[ZFS] No puedo reemplazar disco

Hace un tiempo tuve la duda del raid por hardware vs zfs [1] y opté por ir por ZFS, realmente tiene buena performance, solo se complica un poco si estas corto de memoria, pero es algo que no debería pasar...

El problema que tengo hoy es que tengo un disco que no esta conectado al ZFS (/dev/sda) y el estado del zpool esta como DEGRADED porque tengo un disco que esta marcado como FAULTED, pero el error dice "was /dev/sdb2".

Googleando un poco el tema, me cruce con este link que guía paso a paso y con variables para evitar errores, en el reemplazo de este disco degradado por otro que no.

https://edmondscommerce.github.io/replacing-failed-drive-in-zfs-zpool-on-proxmox/

Sigo  los pasos, pero en el momento que tengo que reemplazar el disco por el que esta OK (nunca hice cambios de disco al parecer el sda se desmonto o me mande alguna cagada en algún momento) me tira este error:

zpool replace rpool "$failedDiskPartitionID" "$newDiskZFSPartition"
invalid vdev specification
use '-f' to override the following errors:
/dev/sda2 contains a filesystem of type 'linux_raid_member'

 

El error que me tira no lo termino de entender, porque tengo la idea en la cabeza de que el tipo de filesystem lo estoy copiando de /dev/sdb al momento de ejecutar:

newDisk='/dev/sda'
healthyDisk='/dev/sdb'
sgdisk -R "$newDisk" "$healthyDisk"
sgdisk -G "$newDisk

Se me acabaron las ideas y como es un servidor en producción no quiero romper nada.

Saludos a todos y buena semana!
Emiliano - gamba47

 

Respuestas

  • Por favor, hacé backups o verifica los backups que tengas.

    el OS esta instalado en ZFS? tirate un zpool status -v

  • Sabes que disco fallo y cual esta bien?, el zpool status -v que muestras deberia tmb mostrar el disco dañado y el disco online, pero en la salida que muestras solo hace referencia a sdb2

     

    #zpool status -v
      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: none requested
    config:

        NAME                     STATE     READ WRITE CKSUM
        rpool                    DEGRADED     0     0     0
          mirror-0               DEGRADED     0     0     0
            sdb2                 ONLINE       0     0     0
            1530029784177976986  FAULTED      0     0     0  was /dev/sdb2

    Por otro lado deberias tener cuidado con zpool attach en ocaciones agregas un disco y lo agrega como JBOD, por lo que para hacer un mirror ocuparias otros 2 discos, pues es imposible retirar un disco que no esta en arreglo de un zpool, pequeña desventaja de zfs que no te enteras hasta que lo ocupas realizar. El comando que recomiendo sysinternals no te lo recomiendo deberias usar algo así

    zpool attach rpool discoBueno2 discoNuevo2

    Si tu disco nuevo actual es /dev/sda particon 2 y tu disco bueno es sdb particion 2 deberia quedar así
    zpool attach rpool sbd2 sda2
Este hilo ha sido cerrado.