btrfs raid1 no usa todos los discos?

Tengo una incursión de Btrfs1 con 3 discos en un Ubuntu 16.04. Sin embargo, parece que solo se utilizan 2 discos en lugar de los 3. ¿Cómo debo solucionar esto?

root@one:~# btrfs fi sh Label: none uuid: 3880b9fa-0824-4ffe-8f61-893a104f3567 Total devices 3 FS bytes used 54.77GiB devid 1 size 2.73TiB used 56.03GiB path /dev/sda2 devid 2 size 2.73TiB used 56.03GiB path /dev/sdc2 devid 3 size 2.59TiB used 0.00B path /dev/sdb3 

He intentado ejecutar un filter de conversión, pero aún así / dev / sdb3 no se está utilizando.

 root@one:~# btrfs balance start -dconvert=raid1 -mconvert=raid1 /top/raid/ Done, had to relocate 112 out of 112 chunks root@one:~# btrfs fi df /top/raid/ Data, RAID1: total=55.00GiB, used=54.40GiB System, RAID1: total=32.00MiB, used=16.00KiB Metadata, RAID1: total=1.00GiB, used=373.06MiB GlobalReserve, single: total=128.00MiB, used=0.00B 

Al principio, solo hay 1 disco durante la installation del server Ubuntu. Luego agregué un disco y lo convertí en raid1. Luego agregué un tercer disco / dev / sdb3 e intenté equilibrar nuevamente. El tercer disco no se está utilizando.

 root@one:~# btrfs --version btrfs-progs v4.4 

Puedo montar / dev / sdb3 bien.

 root@one:~# mount /dev/sdb3 /mnt root@one:~# ll /mnt total 16 drwxr-xr-x 1 root root 74 Apr 13 09:37 ./ drwxr-xr-x 1 root root 200 Apr 12 21:19 ../ drwxr-xr-x 1 root root 200 Apr 12 21:19 @/ drwxr-xr-x 1 root root 152 Apr 12 15:31 @home/ drwxrwx--t 1 root root 36 Apr 13 09:38 @samba/ root@one:~# btr fi sh Label: none uuid: 3880b9fa-0824-4ffe-8f61-893a104f3567 Total devices 3 FS bytes used 54.82GiB devid 1 size 2.73TiB used 56.03GiB path /dev/sda2 devid 2 size 2.73TiB used 56.03GiB path /dev/sdc2 devid 3 size 2.59TiB used 0.00B path /dev/sdb3 

EDITAR :

NOTA: Las preguntas frecuentes de btrfs indican lo siguiente, tal como lo comentó @ jeff-schaller (énfasis mío):

btrfs admite RAID-0, RAID-1 y RAID-10. A partir de Linux 3.9, btrfs también admite RAID-5 y RAID-6 aunque ese código aún es experimental.

btrfs combina primero todos los dispositivos en un grupo de almacenamiento y luego duplica los fragments a medida que se crean los datos del file. RAID-1 se define actualmente como " 2 copys de todos los datos en diferentes dispositivos ". Esto difiere de MD-RAID y dmraid, ya que hacen exactamente n copys para n dispositivos. En un RAID-1 btrfs en tres dispositivos de 1 TB obtenemos 1.5 TB de datos utilizables . Como cada bloque solo se copy a 2 dispositivos , escribir un bloque determinado solo requiere exactamente 2 dispositivos para escribir; la lectura se puede hacer desde solo uno.

RAID-0 se define de manera similar, con la split de bandas en tantos dispositivos como sea posible. Los dispositivos 3 × 1 TB producen 3 TB de espacio utilizable, pero no ofrecen networkingundancia en absoluto.

RAID-10 está construido sobre estas definiciones. Cada banda se divide en exactamente 2 sets RAID-1 y esos sets RAID-1 se escriben exactamente en 2 dispositivos (de ahí 4 dispositivos como mínimo). Un volumen btrfs RAID-10 con dispositivos 6 × 1 TB producirá 3 TB de espacio utilizable con 2 copys de todos los datos.

No tengo suficientes unidades disponibles para probar esto en este momento, pero mi especulación es simplemente que, dado que tiene unidades relativamente grandes, btrfs simplemente optó por escribir los datos en las dos primeras unidades hasta el momento. Esperaría que eso cambie en el futuro a medida que se escriban más datos en las unidades.

En caso de que esté interesado en mis testings con unidades más pequeñas:

Instalé Ubuntu Server 16.04 LTS en una VM con una sola unidad SATA, instalé el sistema operativo en una sola partición btrfs.

Luego agregué otra unidad SATA, particioné, btrfs device add /dev/sdb1 / , y luego lo equilibré mientras convertía a raid1 con btrfs balance start -dconvert=raid1 -mconvert=raid1 /

Repetí para el dispositivo / dev / sdc1. El resultado para mí es el mismo: tengo un btrfs que abarca tres unidades. También interrumpe un file 2GiB, y de hecho fue accesible desde los tres discos. Mi btrfs fi sh muestra lo siguiente:

 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 

¿Cómo llamaste a mkfs.btrfs? ¿Cuál es tu versión de btrfs-progs?

 # btrfs --version btrfs-progs v4.4 

No puedo reproducir tu situación. ¿Qué sucede si intenta montar / dev / sdb3?

Si tiene una máquina virtual o un disco de repuesto para jugar con particiones, cree 3 particiones y pruebe lo siguiente.

Creé una máquina virtual Ubuntu 16.04 y particioné / dev / vda en tres particiones de 2GiB cada una.

 # 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 

Intenta montar / dev / vda1, escribir un file en él, luego montar / dev / vda2 o / dev / vda3 en su lugar y verificar si el file está allí (Definitivamente debería ser).

PD: Primero probé esto en Arch con btrfs-progs versión 4.10.2 con los mismos resultados, pero pensé que probablemente Ubuntu 16.04 incluye una versión anterior que podría comportarse de manera diferente. Resulta que se envía con v4.4, pero parece comportarse igual en lo que respecta a la creación y duplicación del sistema de files, etc.

El volumen ahora está usando todos los discos. Creo que la especulación de Rabban debería ser correcta. Como los primeros dos discos son más grandes que el tercero, "btrfs simplemente eligió escribir los datos en las dos primeras unidades hasta el momento".

 root@one:~# btrfs fi sh Label: none uuid: 3880b9fa-0824-4ffe-8f61-893a104f3567 Total devices 3 FS bytes used 151.00GiB devid 1 size 2.73TiB used 148.03GiB path /dev/sda2 devid 2 size 2.73TiB used 148.03GiB path /dev/sdc2 devid 3 size 2.59TiB used 8.00GiB path /dev/sdb3 root@one:~# btrfs dev usage / /dev/sda2, ID: 1 Device size: 2.73TiB Data,RAID1: 147.00GiB Metadata,RAID1: 1.00GiB System,RAID1: 32.00MiB Unallocated: 2.58TiB /dev/sdb3, ID: 3 Device size: 2.59TiB Data,RAID1: 8.00GiB Unallocated: 2.58TiB /dev/sdc2, ID: 2 Device size: 2.73TiB Data,RAID1: 147.00GiB Metadata,RAID1: 1.00GiB System,RAID1: 32.00MiB Unallocated: 2.58TiB