少量のバックストーリー:
HTPCのセットアップに使用されるさまざまな映画やテレビ番組を保存する小さなメディアファイルシステムがあります。これは元々btrfs
、1TB WD外付けドライブでを使用してセットアップされました。
後で、このファイルシステムRAID1ミラーリング機能を提供するために、別のドライブを購入することにしました。このドライブはシーゲイトバラクーダ(2TB、BARRACUDA 7200.14ファミリー)です。残念ながら、これはドライブの良い選択ではありませんでした。ドライブはすぐに大量の読み取りエラーの発生を開始しましたが、BTRFSはそれらを修正できました。
最近、このドライブからの読み取りエラーの量が急増し、その状態は着実に悪化しています。BTRFSがクラッシュし始めています:
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
RAID1アレイから障害のあるドライブを削除し、単一のドライブの冗長性を取り戻したいです。残念ながら、これを行う方法に関するドキュメントが不足しているようです。
以下を実行できることを認識しています。
sudo btrfs balance start -dconvert=single /media
データプロファイルをsingle
モードに変換しますが、データがどこに配置されるかはわかりません。ドライブの1つが故障しているため、BTRFSが正常なドライブのすべてのデータを忠実に消去しないようにし、不良なドライブに単一のコピーを配置できるようにしたい-代わりに、単純に他のドライブが存在しなかったかのように振る舞う(たとえば、以前の設定に戻す)
これは機能しません:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
どうしようかな?ヘルプをいただければ幸いです。
TL; DR:BTRFSで1台のドライブで開始しsingle
、別のドライブを追加しRAID1
、他のドライブがエラーになりました。1つのドライブ(特に既知の正常なドライブ)に戻るにはどうすればよいsingle
ですか?
dconvert=single
1つのチャンクに対してそれを試しても、恐れていることだけが行われ、既知の正常なコピーが削除されます。:(