backstory จำนวนเล็กน้อย:
ฉันมีระบบไฟล์สื่อขนาดเล็กที่ฉันเก็บภาพยนตร์และรายการทีวีต่าง ๆ ที่ใช้สำหรับการตั้งค่า HTPC ของฉัน ตอนนี้ได้มีการตั้งค่าโดยใช้btrfs
บนไดรฟ์ภายนอกขนาด 1TB WD
ต่อมาฉันตัดสินใจซื้อไดรฟ์อื่นเพื่อให้ความสามารถในการทำมิรเรอร์ RAID1 ของระบบไฟล์นี้ ไดรฟ์นี้คือ Seagate Barracuda (2TB, BARRACUDA 7200.14 FAMILY) น่าเสียดายที่นี่ไม่ใช่ตัวเลือกไดรฟ์ที่ดี ไดรฟ์เริ่มพัฒนาข้อผิดพลาดการอ่านจำนวนมากในไม่ช้าแม้ว่า 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
โหมด แต่ฉันไม่แน่ใจว่าจะไปที่ใดข้อมูลจะถูกวาง ในฐานะหนึ่งในไดรฟ์ที่ล้มเหลวฉันต้องการให้แน่ใจว่า BTRFS จะไม่ลบข้อมูลทั้งหมดในไดรฟ์ที่ดีและทำการคัดลอกหนึ่งครั้งในไดรฟ์ที่ไม่ดี - แทนฉันต้องการเพียงแค่ ทำหน้าที่เสมือนว่าไม่มีไดรฟ์อื่นอยู่ (เหมือนในให้แปลงกลับเป็นการตั้งค่าเดิมของฉัน)
สิ่งนี้ใช้ไม่ได้:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
ฉันต้องทำอะไร ความช่วยเหลือจะได้รับการชื่นชมอย่างมาก
TL; DR: เริ่มต้นด้วย 1 ไดรฟ์ใน BTRFS single
เพิ่มไดรฟ์อื่นทำให้มันเป็นRAID1
ไดรฟ์อื่น ๆ อยู่ในขณะนี้ erroring ฉันจะกลับไปเพียงหนึ่งในไดรฟ์ (เฉพาะที่รู้จักกันดีอย่างหนึ่ง) ด้วยsingle
?
dconvert=single
สำหรับชิ้นเดียวทำในสิ่งที่ฉันกลัวและลบสำเนาที่ดีที่รู้จัก :(