A julgar pelo código fonte do mdadm-3.4, ele não aceita outras entradas. Quanto à saída near=2,far=1
, esse é o padrão e nada é alterado, mas os valores =1
simplesmente não são mais impressos porque isso significa essencialmente "nenhuma cópia adicional" (a contagem começa em 1). No caso de ambos near
e far
igual 1
, imprime NO REDUNDANCY
. No entanto, você não é capaz de criar tal coisa, o kernel a rejeita diretamente com uma mensagem de erro.
A única maneira que consegui fazer isso é hexedit
ing os metadados diretamente. Este é um RAID-10 de dispositivos de loop 4x 128MiB com near=2, far=2
de cópias.
# mdadm --detail /dev/md42
/dev/md42:
Version : 1.2
Creation Time : Sun May 1 01:47:59 2016
Raid Level : raid10
Array Size : 129024 (126.00 MiB 132.12 MB)
Used Dev Size : 129024 (126.00 MiB 132.12 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun May 1 01:48:00 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2, far=2
Chunk Size : 512K
Name : EIS:42 (local to host EIS)
UUID : 7fa3ba1e:dd0f2db9:aaf3977f:0e6dc2cb
Events : 17
Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 7 2 2 active sync /dev/loop2
3 7 3 3 active sync /dev/loop3
Na verdade, parece funcionar também. (Aviso, método de teste destrutivo)
# yes > /dev/md42
# echo Hello World. > /dev/md42
# grep 'Hello World' -a -b --only-matching /dev/loop[0-3]
/dev/loop0:1048576:Hello World
/dev/loop1:1048576:Hello World
/dev/loop2:67108864:Hello World
/dev/loop3:67108864:Hello World
Eu escrevi essa string para o início do RAID e em dois dispositivos está na posição 1MiB (que é o offset de metadados) que deve ser a cópia próxima e a outra na posição 64MiB (metade da capacidade do disco) que eu acho que é a cópia distante ...
Mesmo assim, eu não recomendaria a edição de metadados RAID para nada. Se você fizer isso, ninguém mais está testando ... ou talvez haja algo óbvio que todos nós estamos perdendo, quem sabe.
A substituição de discos em um RAID parece funcionar. Crescer, no entanto, não.
# mdadm --grow /dev/md42 --raid-devices=8 --add /dev/loop[4567]
mdadm: Cannot reshape RAID10 in far-mode
Eu acho que há muitas desvantagens. Atenha-se aos layouts RAID padrão, a menos que você tenha uma boa razão para não fazê-lo.