Na inicialização, monte automaticamente a matriz mdadm que usa outra matriz mdadm

2

Eu tenho dois arrays do mdadm no meu sistema:

alex@fileserver:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdc1[0] md0[3] sde1[1]
      7759197184 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

md0 : active raid0 sdd1[1] sdb1[0]
      3907019776 blocks super 1.2 512k chunks

unused devices: <none>

Se você olhar bem de perto, verá que md1 usa md0 em sua matriz. (Eu tinha dois discos de 4 TB e dois discos de 2 TB, e era assim que eu queria que trabalhassem juntos ...)

Isso funciona muito bem, exceto no boot. Mesmo que meu mdadm.conf tenha estas linhas:

ARRAY /dev/md/0 metadata=1.2 UUID=ba271258:3f18f660:1d5d19aa:2bd0d8e3 name=fileserver:0
ARRAY /dev/md/1 metadata=1.2 UUID=262a6823:3fafb521:75e315ab:f2de4329 name=fileserver:1

ele consegue montar md0 , mas md1 está faltando md0 em sua matriz e acaba ficando inativo, com apenas sdc1 e sde1 como peças de reposição. Eu estou supondo que o mdadm tenta montar seus arrays em paralelo ou algo assim?

Se, após a inicialização, eu executar mdadm --stop /dev/md1 e, em seguida, mdadm --assemble --scan , a matriz será corretamente montada.

Meu cenário provavelmente não é muito normal, mas existe alguma solução simples para esse problema? Por exemplo. alguma maneira de dizer ao mdadm.conf que md1 depende de md0 ? Eu sempre poderia apenas escrever um pequeno script de inicialização que faz os comandos stop / assemble para mim depois do mdadm, mas eu preferiria evitar tais hacks se uma solução apropriada existisse, especialmente porque eu tenho serviços de sistema que dependem do md1 estar presente e montado para funcionar corretamente.

    
por Alex 02.09.2017 / 10:53

0 respostas

Tags