Una pequeña cantidad de historia de fondo:
Tengo un pequeño sistema de archivos multimedia, en el que almaceno varias películas y programas de televisión que se utilizan para la configuración de mi HTPC. Esto se configuró originalmente, usando btrfs
, en un disco externo WD de 1TB.
Más tarde, decidí comprar otra unidad, para darle a este sistema de archivos capacidades de duplicación RAID1. Este disco es un Seagate Barracuda (2TB, BARRACUDA 7200.14 FAMILIA). Desafortunadamente, esta no fue una buena opción de manejo. La unidad comenzó a desarrollar grandes cantidades de errores de lectura en breve, aunque BTRFS pudo corregirlos.
Recientemente, la cantidad de errores de lectura de esta unidad se ha disparado, con su condición empeorando constantemente. BTRFS ahora está comenzando a fallar:
kernel: RSP: 0018:ffff88005f0e7cc0 EFLAGS: 00010282
kernel: RIP: 0010:[<ffffffffa0081736>] [<ffffffffa0081736>] btrfs_check_repairable+0xf6/0x100 [btrfs]
kernel: task: ffff88001b5c4740 ti: ffff88005f0e4000 task.ti: ffff88005f0e4000
kernel: Workqueue: btrfs-endio btrfs_endio_helper [btrfs]
kernel: CPU: 1 PID: 3136 Comm: kworker/u8:3 Tainted: G O 4.5.3-1-ARCH #1
kernel: invalid opcode: 0000 [#1] PREEMPT SMP
kernel: kernel BUG at fs/btrfs/extent_io.c:2309!
kernel: ------------[ cut here ]------------
kernel: BTRFS info (device sdc1): csum failed ino 73072 extent 1531717287936 csum 3335082470 wanted 3200325796 mirror 0
kernel: ata3: EH complete
kernel: BTRFS error (device sdc1): bdev /dev/sda3 errs: wr 0, rd 18, flush 0, corrupt 0, gen 0
kernel: blk_update_request: I/O error, dev sda, sector 2991635296
Me gustaría eliminar la unidad defectuosa de la matriz RAID1, volviendo a la no redundancia en una sola unidad. Desafortunadamente, parece haber una falta de documentación sobre cómo hacer esto.
Soy consciente de que se puede ejecutar lo siguiente:
sudo btrfs balance start -dconvert=single /media
para convertir el perfil de datos a single
modo, pero no estoy seguro de dónde se colocarán los datos. Como una de las unidades está fallando, me gustaría poder asegurarme de que BTRFS no borre debidamente todos los datos en la unidad buena y coloque una sola copia en la unidad defectuosa; en cambio, me gustaría simplemente actuar como si la otra unidad nunca existiera (como en, convertir de nuevo a mi configuración anterior)
Esto no funciona:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
¿Qué voy a hacer? La ayuda sería muy apreciada.
TL; DR: comenzó con 1 unidad en BTRFS single
, agregó otra unidad, lo hizo RAID1
, otra unidad ahora está fallando, ¿cómo regreso a una sola unidad (ESPECÍFICAMENTE la buena conocida) single
?
dconvert=single
por un fragmento solo hace lo que temía y elimina la buena copia conocida. :(