[LinuxLudus] Prove btrfs raid 1

Valerio Pachera sirio81@gmail.com
Dom 23 Ott 2016 10:51:06 CEST


Con il classico raid 1 di mdam, se ho 4 dischi da 1T e li metto tutti in
raid 1 avrò come spazio utilizzabile 1T (1 disco lo uso, gli altri sono
cloni).

Il raid 1 di btrfs funziona diversamente.
Rimanendo sull'esempio dei 4 dischi, si preoccupa che sia 1 copia del dato
su uno qualsiasi degli altri 3 dischi. NON fa 3 copie!

Il bello di questo, approccio, oltre a sfruttare lo spazio di tutti i
dischi, è quello che poter rimuovere un disco e ribilanciare i dati.
Dopo aver ribilanciato i dati, posso rimuovere continuare a rimuovere un
disco alla volta, fin tanto che ho spazio.

Questo non è possibile neanche con il raid 5!
Un device lo posso perdere, ma non posso rimuovere ulteriori dischi, anche
se avrei spazio disponibile sugli hdd.

Ho fatto un veloce test con una macchina virtuale e si nota chiaramente
come vengono scritti i dati da parte di btrfs.

Ho notato anche però una cosa che non mi spiego e che vi evidenzio sotto:

mkfs.btrfs --force -d raid1 -m raid1 /dev/vd[bcde]
SMALL VOLUME: forcing mixed metadata/data groups
Btrfs v3.17
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups
Turning ON incompat feature 'extref': increased hardlink limit per file to
65536
Created a data/metadata chunk of size 8388608
adding device /dev/vdc id 2
adding device /dev/vdd id 3
adding device /dev/vde id 4
fs created label (null) on /dev/vdb
        nodesize 4096 leafsize 4096 sectorsize 4096 size 2.00GiB


mount /dev/vdb /mnt/btrfs


btrfs fi show
Label: none  uuid: 5034fded-00fc-4720-9c33-921aa40807f6
        Total devices 4 FS bytes used 96.00KiB
        devid    1 size 512.00MiB used 114.38MiB path /dev/vdb
        devid    2 size 512.00MiB used 102.38MiB path /dev/vdc
        devid    3 size 512.00MiB used 8.00MiB path /dev/vdd
        devid    4 size 512.00MiB used 8.00MiB path /dev/vde

Btrfs v3.17


dd if=/dev/urandom of=/mnt/btrfs/c bs=1M count=100
100+0 record dentro
100+0 record fuori
104857600 byte (105 MB) copiati, 15,2875 s, 6,9 MB/s

# Ho scritto dei dati malo spazio utilizzato non sembra essere aumentato!!!
btrfs fi show
Label: none  uuid:
5034fded-00fc-4720-9c33-921aa40807f6

        Total devices 4 FS bytes used
96.00KiB

        devid    1 size 512.00MiB used 114.38MiB path
/dev/vdb

        devid    2 size 512.00MiB used 102.38MiB path
/dev/vdc

        devid    3 size 512.00MiB used 216.00MiB path
/dev/vdd

        devid    4 size 512.00MiB used 216.00MiB path
/dev/vde



Btrfs v3.17




dd if=/dev/urandom of=/mnt/btrfs/d bs=1M
count=100

100+0 record
dentro

100+0 record
fuori

104857600 byte (105 MB) copiati, 15,3394 s, 6,8 MB/s

# Ok, ora vedo che ha scritto dati cdd e
vde

btrfs fi show
Label: none  uuid:
5034fded-00fc-4720-9c33-921aa40807f6

        Total devices 4 FS bytes used
119.29MiB

        devid    1 size 512.00MiB used 114.38MiB path
/dev/vdb

        devid    2 size 512.00MiB used 102.38MiB path
/dev/vdc

        devid    3 size 512.00MiB used 216.00MiB path
/dev/vdd

        devid    4 size 512.00MiB used 216.00MiB path /dev/vde

Btrfs v3.17


dd if=/dev/urandom of=/mnt/btrfs/e bs=1M count=100
100+0 record dentro
100+0 record fuori
104857600 byte (105 MB) copiati, 15,2696 s, 6,9 MB/s


# Ora ha scritto i dati du vdb e vdc
btrfs fi show
Label: none  uuid: 5034fded-00fc-4720-9c33-921aa40807f6
        Total devices 4 FS bytes used 200.39MiB
        devid    1 size 512.00MiB used 322.38MiB path /dev/vdb
        devid    2 size 512.00MiB used 310.38MiB path /dev/vdc
        devid    3 size 512.00MiB used 216.00MiB path /dev/vdd
        devid    4 size 512.00MiB used 216.00MiB path /dev/vde

Btrfs v3.17


sync; dd if=/dev/urandom of=/mnt/btrfs/f bs=1M count=100
100+0 record dentro
100+0 record fuori
104857600 byte (105 MB) copiati, 15,2589 s, 6,9 MB/s


# Ora sembra non aver scritto niente, nonostante abbia lanciato il comando
sync
sync; btrfs fi show
Label: none  uuid: 5034fded-00fc-4720-9c33-921aa40807f6
        Total devices 4 FS bytes used 400.68MiB
        devid    1 size 512.00MiB used 322.38MiB path /dev/vdb
        devid    2 size 512.00MiB used 310.38MiB path /dev/vdc
        devid    3 size 512.00MiB used 216.00MiB path /dev/vdd
        devid    4 size 512.00MiB used 216.00MiB path /dev/vde

Btrfs v3.17
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/ll/attachments/20161023/cfb654cc/attachment.html>


Maggiori informazioni sulla lista ll