Thread (6 messages) 6 messages, 3 authors, 2021-05-22

Re: Btrfs not using all devices in raid1

From: Zygo Blaxell <hidden>
Date: 2021-05-22 02:09:05

On Fri, May 21, 2021 at 06:34:27PM +0200, Leszek Dubiel wrote:
Hello!

Why Btrfs is not using /dev/sdc2?
There is no line "Data,RAID1" for this disk.
Isn't it supposed to use disk that has most of free space?

Thanks for help :) :)
Using Btrfs in production.


Here are some command outputs:



### btrfs fi show /

Label: none  uuid: ea6ae51d-d9b0-4628-a8f3-3406e1dc59c6
    Total devices 4 FS bytes used 2.96TiB
    devid    1 size 7.25TiB used 3.20TiB path /dev/sda2
    devid    2 size 7.25TiB used 3.20TiB path /dev/sdb2
    devid    3 size 7.25TiB used 3.21TiB path /dev/sdd2
    devid    4 size 7.25TiB used 32.00MiB path /dev/sdc2



### btrfs fi df /

Data, RAID1: total=4.49TiB, used=2.90TiB
There are about 1.5TB of available space in existing block groups, so
those will be filled in first.  Block group allocations will start on
sdc2 after the existing block groups are filled.
System, RAID1: total=64.00MiB, used=784.00KiB
Metadata, RAID1: total=321.00GiB, used=56.08GiB
GlobalReserve, single: total=512.00MiB, used=0.00B



### btrfs dev usa /

/dev/sda2, ID: 1
   Device size:             7.25TiB
   Device slack:              0.00B
   Data,RAID1:              2.99TiB
   Metadata,RAID1:        210.00GiB
   System,RAID1:           64.00MiB
   Unallocated:             4.05TiB

/dev/sdb2, ID: 2
   Device size:             7.25TiB
   Device slack:              0.00B
   Data,RAID1:              3.00TiB
   Metadata,RAID1:        210.00GiB
   Unallocated:             4.04TiB

/dev/sdc2, ID: 4
   Device size:             7.25TiB
   Device slack:              0.00B   ... no Data/RAID1
   System,RAID1:           32.00MiB
   Unallocated:             7.25TiB

/dev/sdd2, ID: 3
   Device size:             7.25TiB
   Device slack:              0.00B
   Data,RAID1:              2.99TiB
   Metadata,RAID1:        222.00GiB
   System,RAID1:           32.00MiB
   Unallocated:             4.04TiB
The disks in decreasing size order have 7.25TB, 4.05 TB, 4.04 TB, and 4.04
TB.  RAID1 requires the sum of all disks after the largest be equal or
greater in size to the largest, and 12.13 >= 7.25, so you're good to go.
### time btrfs balance start -dconvert=raid1,soft -mconvert=raid1,soft /

Done, had to relocate 0 out of 4922 chunks

real    0m0,522s
user    0m0,000s
sys    0m0,033s
You might want something more like;

	time btrfs balance start -dlimit=1000,devid=1 /
	time btrfs balance start -dlimit=1000,devid=2 /
	time btrfs balance start -dlimit=1000,devid=3 /

but that will take a long time and isn't strictly necessary.

Alternatively, use 'btrfs-balance-least-used' from the 'python-btrfs'
package, with a usage limit of about 90%.  That will repack all of the
data into existing block groups first, so future allocations will use
sdc2.

Unfortunately balance is the only way to redistribute the existing data
onto new drives, so if you don't want to run balance, then you'll just
have to wait until sdc2 fills in naturally.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help