[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í