Como posso fazer o mdadm montar automaticamente o RAID após cada inicialização?

41

Eu criei com sucesso um RAID (espelhamento) utilizando mdadm . No entanto, devo executar os seguintes comandos após cada inicialização:

mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0

O que estou fazendo errado / por que preciso executar esses comandos na inicialização? Qual é o caminho certo para iniciar automaticamente o RAID com cada (re) inicialização?

    
por BreakPhreak 23.05.2011 / 16:00

8 respostas

35

NB: Você precisa estar logado como root, ou usar sudo para fazer tudo isso ...

  • Use seu editor favorito para criar ou editar o arquivo /etc/mdadm/mdadm.conf da seguinte forma:

Se o arquivo não existir, cole o seguinte no novo arquivo vazio:

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
  • Salve o arquivo

  • Execute o seguinte comando para adicionar uma referência à sua configuração de matriz no final do arquivo:

    mdadm --detail --scan > > /etc/mdadm/mdadm.conf

Isto deve adicionar uma linha como a seguinte ao final do mdadm.conf:

ARRAY /dev/md0 level=raid5 num-devices=3 metadata=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c

Se o comando mdadm tiver adicionado outras coisas acima da linha ARRAY, remova-o. Por exemplo, em uma de minhas máquinas, o comando retorna 'mdadm: metadata format 00.90 unknown, ignored.' antes da linha ARRAY.

Seu array agora deve ser construído automaticamente na inicialização e, assim, você pode adicionar uma entrada ao / etc / fstab para montá-lo (se ainda não estiver lá)

    
por 23.05.2011 / 17:35
7

Eu percebo que esta é uma pergunta antiga, mas eu tive um tempo frustrante com isso na versão de 32 bits do Ubuntu Server 12.04.

A execução de mdadm --detail --scan >> /etc/mdadm/mdadm.conf anexou a linha

ARRAY /dev/md0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

Após a reinicialização, nunca consegui ver / dev / md0. Rodando o mdadm --detail --scan novamente (sem colocar o resultado em um arquivo) eu veria

ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

e montagem manual /dev/md/ubuntu:0 funcionaria. No final, foi isso que eu coloquei no arquivo fstab também.

Não sei ao certo o que eu cometi, se é assim que funciona no Ubuntu 12.04, ou se esta é uma prática ruim. Só queria compartilhar o que funcionou para mim.

    
por 11.04.2013 / 22:00
3

No Debian wheezy, é necessário mais um passo: em /etc/default/mdadm set autostart de false para true

#AUTOSTART:
#   should mdadm start arrays listed in /etc/mdadm/mdadm.conf automatically
#   during boot?
AUTOSTART=true

Também precisei usar mdadm -Es >>/etc/mdadm/mdadm.conf em vez da opção --scan , pois isso não funcionou para mim.

    
por 05.01.2013 / 18:22
3
sudo mdadm -Es >> /etc/mdadm/mdadm.conf

Agora, edite as linhas adicionadas ao /etc/mdadm/mdadm.conf da seguinte maneira. Exclua tudo, mas as partes básicas. Deveria se parecer com

ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643

Nota: você pode escolher X em mdX para sua conveniência.

Agora reinicie

sudo update-initramfs -u
sudo reboot

EDIT: comando corrigido.

    
por 04.05.2015 / 04:36
2

Eu tive esse problema no meu Raspberry Pi 2 rodando o Raspbian GNU / Linux 8 (jessie). Eu tinha uma matriz RAID em /dev/sda1 e /dev/sdb1 que não conseguiu montar na inicialização. Eu tinha no meu arquivo /etc/mdadm/mdadm.conf a entrada

ARRAY /dev/md/0  metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0 

(seus números serão diferentes; veja outras respostas sobre como conseguir isso.)

Eu tinha no meu arquivo /etc/fstab a entrada

/dev/md0        /data           ext4    defaults          0       0

(e é claro que /data existiu)

Como o OP, eu poderia montar e montar a matriz RAID manualmente após a inicialização, mas não consegui que isso acontecesse automaticamente durante a inicialização, apesar de aparentemente configurá-la corretamente.

Consegui resolver o problema da seguinte forma. Eu investiguei o script em /etc/init.d/mdadm-raid e inseri uma linha de código de depuração

ls /dev > /home/pi/devices.txt

Reiniciando e verificando este arquivo, aprendi que os dispositivos /dev/sda e /dev/sdb existiam no momento em que a inicialização mdadm-raid aconteceu, mas as partições /dev/sda1 e /dev/sdb1 estavam ausentes. Eu editei o arquivo /etc/init.d/mdadm-raid e inseri a linha

partprobe

após o cabeçalho (ou seja, após o ### END INIT INFO , mas antes do início do script). Isso fez com que as partições fossem detectadas e, portanto, o script mdadm-raid conseguiu montar o array RAID, resolvendo o problema. Espero que isso ajude alguém!

    
por 28.05.2016 / 08:12
0

Eu tenho lutado com isso em Raspbian usando um par de HDDs USB externos em um Raspberry Pi. Eu tive que mexer com a ordem de início dos serviços para garantir que o mdadm-raid fosse iniciado depois que as unidades USB fossem reconhecidas pelo udev, mas antes do checkfs.sh (que verifica os sistemas de arquivos no momento da inicialização). Se o mdadm-raid começou muito cedo, as unidades não estavam disponíveis e, portanto, a matriz não foi montada. Isso significa que o fsck subseqüentemente falhou e o processo de inicialização caiu para um prompt de manutenção (porque a matriz de raid é necessária para outros serviços).

Modificando as dependências de inicialização para iniciar o mdadm-raid após checkroot.sh, mas antes de checkfs.sh e executando update-rc.d mdadm-raid defaults , seguido por update-initramfs -uv -k 'uname -r' (observe os backticks em torno de uname ), o corrigiu (finalmente). Para mim, de qualquer forma, YMMV.

    
por 26.05.2015 / 16:06
0

Eu tentei com

mdadm --create /dev/md/abcdef ...

Eu vejo o softlink /dev/md/abcdef persistindo nas reinicializações e se precisar acessar o dispositivo através do link soft.

É uma solução aceitável?

    
por 15.03.2016 / 13:02
0

Tendo o Raspberry Pi 3, adicionar rootdelay=5 ao /boot/cmdline.txt resolveu esse problema para mim.

O crédito é aqui .

    
por 02.10.2017 / 21:54