Uma pequena quantidade de história de fundo:
Eu tenho um pequeno sistema de arquivos de mídia, no qual armazeno vários filmes e programas de TV usados na minha configuração HTPC. Ele foi originalmente configurado, usando btrfs
, em uma unidade externa de 1 TB WD.
Mais tarde, decidi comprar outra unidade, para fornecer a esse sistema de arquivos recursos de espelhamento RAID1. Esta unidade é um Seagate Barracuda (2 TB, BARRACUDA 7200.14 FAMILY). Infelizmente, essa não foi uma boa escolha de unidade. A unidade começou a desenvolver grandes quantidades de erros de leitura em breve, embora o BTRFS tenha sido capaz de corrigi-los.
Recentemente, a quantidade de erros de leitura nesta unidade aumentou, com sua condição piorando constantemente. O BTRFS está começando a falhar:
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
Gostaria de remover a unidade defeituosa da matriz RAID1, voltando a não haver redundância em uma única unidade. Infelizmente, parece haver uma falta de documentação sobre como fazer isso.
Estou ciente de que é possível executar o seguinte:
sudo btrfs balance start -dconvert=single /media
para converter o perfil de dados para o single
modo, mas não tenho certeza de onde os dados serão colocados. Como uma das unidades está falhando, eu gostaria de garantir que o BTRFS não apague devidamente todos os dados da boa unidade e coloque uma única cópia na unidade defeituosa - em vez disso, gostaria de simplesmente agir como se a outra unidade nunca tivesse existido (como em, converter novamente para minha configuração antiga)
Isso não funciona:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
O que eu devo fazer? A ajuda seria muito apreciada.
TL; DR: iniciado com 1 unidade no BTRFS single
, adicionado outra unidade, feita RAID1
, outra unidade agora está com erro, como eu retorno a apenas uma unidade (ESPECIFICAMENTE a boa e conhecida) com single
?
dconvert=single
apenas um pedaço faça o que eu temia e exclua a cópia válida. :(