Estoy tratando de decidir sobre un sistema de archivos y me gustaría saber si es posible reemplazar una unidad fallida en btrfs RAID sin tiempo de inactividad.
Supongamos que creo un nuevo sistema de archivos btrfs usando el comando
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
Ahora supongamos que un día
/dev/sdc
falla. Hay dos posibilidades: puede fallar gradualmente y mostrar errores INTELIGENTES; en esta situación, puedo agregar un nuevo dispositivo conbtrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
y luego eliminar el anterior conbtrfs device delete /dev/sdc /mnt
.Pero si de repente falla, se vuelve ilegible ... Una búsqueda en la web dice que en esta situación primero debo desmontar el sistema de archivos, montarlo en modo degradado, agregar un nuevo dispositivo y luego quitar el dispositivo que falta.
umount /mnt mount -o degraded /dev/sdb /mnt btrfs device add /dev/sdf /mnt btrfs device delete missing /mnt
Un desmontaje es obviamente una operación disruptiva, por lo que habría tiempo de inactividad: cualquier aplicación que use el sistema de archivos obtendría un error de E / S. Pero este tipo de "tutoriales" en btrfs parecen anticuados, teniendo en cuenta que btrfs está en desarrollo.
La pregunta es: considerando el estado actual de btrfs, ¿es posible hacer esto en línea, es decir, sin desmontar?
Si no, ¿hay una solución solo de software que pueda satisfacer esta necesidad?
fuente
btrfs replace mountpoint old_disk new_disk
se agregó.Respuestas:
En Linux 3.8,
btrfs replace mountpoint old_disk new_disk
se agregó. Si está ejecutando un kernel reciente, proporcionará la funcionalidad que está buscando.fuente
btrfs replace start /dev/old /dev/new /mountpoint
( se ha agregado el inicio ). También veaman btrfs-replace
.pequeña corrección, la sintaxis actual es:
que luego fondos.
Puede verificar el estado con
que le mostrará un estado continuamente actualizado de la operación de reemplazo.
fuente