Skip to contentSkip to conversation

"btrfs device delete missing" - why does it write on healthy device?

DISCUSSION Tomasz Chmielewski 2 participants 2 messages Aug 29, 2013 Btrfs file system

lore
Share & tools
lore
#0 lore raw

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/sda4

Btrfs v0.20-rc1-324-g650e656

Signature · 2 lines
Tomasz Chmielewski
http://wpkg.org
#1 lore raw
Quoted 9 lines · Tomasz Chmielewski

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.

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_read MB_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