EDITAR :
OBSERVAÇÃO: A FAQ do btrfs afirma o seguinte, conforme comentado por @ jeff-schaller ( ênfase minha):
btrfs supports RAID-0, RAID-1, and RAID-10. As of Linux 3.9, btrfs also supports RAID-5 and RAID-6 although that code is still experimental.
btrfs combines all the devices into a storage pool first, and then duplicates the chunks as file data is created. RAID-1 is defined currently as "2 copies of all the data on different devices". This differs from MD-RAID and dmraid, in that those make exactly n copies for n devices. In a btrfs RAID-1 on three 1 TB devices we get 1.5 TB of usable data. Because each block is only copied to 2 devices, writing a given block only requires exactly 2 devices to be written to; reading can be made from only one.
RAID-0 is similarly defined, with the stripe split across as many devices as possible. 3 × 1 TB devices yield 3 TB usable space, but offers no redundancy at all.
RAID-10 is built on top of these definitions. Every stripe is split across to exactly 2 RAID-1 sets and those RAID-1 sets are written to exactly 2 devices (hence 4 devices minimum). A btrfs RAID-10 volume with 6 × 1 TB devices will yield 3 TB usable space with 2 copies of all data.
Eu não tenho unidades grandes o suficiente para testar isso no momento, mas minha especulação é simplesmente que, como você tem unidades relativamente grandes, o btrfs simplesmente optou por gravar os dados nas duas primeiras unidades até o momento. Espero que isso mude no futuro, à medida que mais dados forem gravados nas unidades.
Caso você esteja interessado em meus testes com unidades menores:
Eu instalei o Ubuntu Server 16.04 LTS em uma VM com uma única unidade SATA, instalei o SO em uma única partição btrfs.
Em seguida, adicionei outra unidade SATA, particionei-a, executei btrfs device add /dev/sdb1 /
e balancei-a ao converter para raid1 com btrfs balance start -dconvert=raid1 -mconvert=raid1 /
Eu repeti para o dispositivo / dev / sdc1. O resultado para mim é o mesmo - tenho um btrfs abrangendo três unidades. Eu também coloquei um arquivo de 2GiB, e era de fato acessível de todos os três discos. Meu btrfs fi sh
mostra o seguinte:
Label: none uuid: cdfe192c-36da-4a3c-bc1a-74137abbb190
Total devices 3 FS bytes used 3.07GiB
devid 1 size 10.00GiB used 5.25GiB path /dev/sda1
devid 2 size 10.00GiB used 5.03GiB path /dev/sdb1
devid 3 size 8.00GiB used 2.28GiB path /dev/sdc1
Como você chama o mkfs.btrfs? Qual é a sua versão do btrfs-progs?
# btrfs --version
btrfs-progs v4.4
Não consigo reproduzir sua situação. O que acontece se você tentar montar o / dev / sdb3?
Se você tiver uma máquina virtual ou um disco reserva para reproduzir o particionamento, crie 3 partições e tente o seguinte.
Eu criei uma VM Ubuntu 16.04 e particionei / dev / vda em três partições de 2GiB cada.
# mkfs.btrfs -d raid1 -m raid1 /dev/vda{1..3}
Label: (null)
UUID: 0d6278f7-8830-4a73-a72f-0069cc560aaf
Node size: 16384
Sector size: 4096
Filesystem size: 6.00GiB
Block group profiles:
Data: RAID1 315.12MiB
Metadata: RAID1 315.12MiB
System: RAID1 12.00MiB
SSD detected: no
Incompat features: extref, skinny-metadata
Number of devices: 3
Devices:
ID SIZE PATH
1 2.00GiB /dev/vda1
2 2.00GiB /dev/vda2
3 2.00GiB /dev/vda3
# btrfs fi sh
Label: none uuid: 0d6278f7-8830-4a73-a72f-0069cc560aaf
Total devices 3 FS bytes used 112.00KiB
devid 1 size 2.00GiB used 614.25MiB path /dev/vda1
devid 2 size 2.00GiB used 315.12MiB path /dev/vda2
devid 3 size 2.00GiB used 315.12MiB path /dev/vda3
Tente montar / dev / vda1, escrevendo um arquivo para ele, e então monte / dev / vda2 ou / dev / vda3 e verifique se o arquivo está lá (definitivamente deveria ser).
PS: Eu tentei pela primeira vez isso no Arch com o btrfs-progs versão 4.10.2 com os mesmos resultados, mas pensei que provavelmente o Ubuntu 16.04 vem com uma versão mais antiga que pode se comportar de maneira diferente. Acontece que vem com v4.4, mas parece se comportar da mesma forma no que diz respeito à criação de sistema de arquivos e espelhamento, etc.