"btrfs device delete missing" - why does it write on healthy device?
So I've removed a missing device, which took some time:
# time btrfs device delete missing /home
real 1512m33.763s user 0m0.000s sys 121m37.740s
OK, it needs time, fine.
And shifted quite large amounts of data:
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sda 347.00 0.37 16.24 34050 1512249 sdb 910.89 13.46 18.77 1252768 1747442
New device was sda - so it's expected it wrote quite a lot of data there.
But why did it write so much on sdb (even more than on sda)? With software RAID-1, when replacing a failed device, the amount of reads from one drive is equal to the writes on the other drive; there is no writing on the healthy drive.
# btrfs filesystem show
Label: 'test-btrfs' uuid: 60f1759c-45f6-4484-9f60-66a4e9bbf2b6
Total devices 2 FS bytes used 1.19TB
devid 3 size 2.56TB used 1.19TB path /dev/sdb4
devid 4 size 2.56TB used 1.19TB path /dev/sda4Btrfs v0.20-rc1-324-g650e656
Signature · 2 lines
Tomasz Chmielewski http://wpkg.org
Quoted 9 lines · Tomasz Chmielewski
So I've removed a missing device, which took some time:
# time btrfs device delete missing /homereal 1512m33.763s user 0m0.000s sys 121m37.740sOK, it needs time, fine.
25 hours seems like a long time …
Quoted 4 lines
And shifted quite large amounts of data:
Device: tps MB_read/s MB_wrtn/s
MB_readMB_wrtn
sda 347.00 0.37 16.24 34050 1512249
… for ~1.5TB.
Quoted 5 lines
But why did it write so much on sdb (even more than on sda)? With software RAID-1, when replacing a failed device, the amount of reads from one drive is equal to the writes on the other drive; there is no writing on the healthy drive.
During the balance, chunks are read and re-written normally. Normal for raid1 means it will write two copies of each read chunk, therefore it writes to both devices. I don't know if it's possible, or planned, to optimize out the (seemingly) redundant write to the device that already has a legitimate copy.
Chris Murphy