Un peu de trame de fond:
J'ai un petit système de fichiers multimédias, sur lequel je stocke divers films et émissions de télévision qui sont utilisés pour ma configuration HTPC. Cela a été initialement configuré, en utilisant btrfs
, sur un disque externe WD de 1 To.
Plus tard, j'ai décidé d'acheter un autre lecteur, pour donner à ce système de fichiers des capacités de mise en miroir RAID1. Ce lecteur est un Seagate Barracuda (2 To, BARRACUDA 7200.14 FAMILY). Malheureusement, ce n'était pas un bon choix de lecteur. Le lecteur a commencé à développer de grandes quantités d'erreurs de lecture sous peu, bien que BTRFS ait pu les corriger.
Récemment, le nombre d'erreurs de lecture de ce lecteur a augmenté, son état s'aggravant régulièrement. BTRFS commence maintenant à planter:
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
Je voudrais supprimer le disque défectueux de la matrice RAID1, sans aucune redondance sur un seul disque. Malheureusement, il semble y avoir un manque de documentation sur la façon de procéder.
Je suis conscient que l'on peut exécuter ce qui suit:
sudo btrfs balance start -dconvert=single /media
pour convertir le profil de données en single
mode, mais je ne sais pas exactement OERE les données seront placées. Comme l'un des disques tombe en panne, je voudrais pouvoir m'assurer que BTRFS n'efface pas consciencieusement toutes les données sur le bon disque, et place une seule copie sur le mauvais disque - à la place, je voudrais simplement agir comme si l'autre disque n'avait jamais existé (comme dans, reconvertir à mon ancienne configuration)
Cela ne fonctionne pas:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
Que dois-je faire? De l'aide serait grandement appréciée.
TL; DR: a commencé avec 1 lecteur dans BTRFS single
, a ajouté un autre lecteur, l'a fait RAID1
, un autre lecteur est maintenant en erreur, comment puis-je revenir à un seul lecteur (en particulier le bon connu) avec single
?
dconvert=single
pour un seul morceau ne fait que ce que je craignais et supprime la bonne copie connue. :(