Por que meu RAID / dev / md1 está aparecendo como / dev / md126? O mdadm.conf está sendo ignorado?

26

Eu criei um RAID com:

sudo mdadm --create --verbose /dev/md1 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
sudo mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sdb2 /dev/sdc2

sudo mdadm --detail --scan retorna:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

O qual eu anexei /etc/mdadm/mdadm.conf, veja abaixo:

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

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# 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

# This file was auto-generated on Mon, 29 Oct 2012 16:06:12 -0500
# by mkconf $Id$
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat retorna:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb2[0] sdc2[1]
      208629632 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md retorna:

brw-rw----   1 root disk      9,   1 Oct 30 11:06 md1
brw-rw----   1 root disk      9,   2 Oct 30 11:06 md2

Então eu acho que está tudo bem e eu reinicio.


Após a reinicialização, / dev / md1 agora é / dev / md126 e / dev / md2 agora é / dev / md127 ?????

sudo mdadm --detail --scan retorna:

ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat retorna:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdc2[1] sdb2[0]
      208629632 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md retorna:

drwxr-xr-x   2 root root          80 Oct 30 11:18 md
brw-rw----   1 root disk      9, 126 Oct 30 11:18 md126
brw-rw----   1 root disk      9, 127 Oct 30 11:18 md127

Nem tudo está perdido, eu:

sudo mdadm --stop /dev/md126
sudo mdadm --stop /dev/md127
sudo mdadm --assemble --verbose /dev/md1 /dev/sdb1 /dev/sdc1
sudo mdadm --assemble --verbose /dev/md2 /dev/sdb2 /dev/sdc2

e verifique tudo:

sudo mdadm --detail --scan retorna:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat retorna:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb2[0] sdc2[1]
      208629632 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md retorna:

brw-rw----   1 root disk      9,   1 Oct 30 11:26 md1
brw-rw----   1 root disk      9,   2 Oct 30 11:26 md2

Então, mais uma vez, acho que está tudo bem e reinicio.


Novamente, após a reinicialização, / dev / md1 é / dev / md126 e / dev / md2 é / dev / md127 ?????

sudo mdadm --detail --scan retorna:

ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

cat /proc/mdstat retorna:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 sdc2[1] sdb2[0]
      208629632 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
      767868736 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls -la /dev | grep md retorna:

drwxr-xr-x   2 root root          80 Oct 30 11:42 md
brw-rw----   1 root disk      9, 126 Oct 30 11:42 md126
brw-rw----   1 root disk      9, 127 Oct 30 11:42 md127

O que estou perdendo aqui?

mmorris
fonte

Respostas:

26

Encontrei a resposta aqui, RAID começando no MD127 em vez de MD0 . Em resumo, cortei minhas definições do /etc/mdadm/mdadm.conf em:

ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

para:

ARRAY /dev/md1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb

e correu:

sudo update-initramfs -u

Estou longe de ser um especialista nisso, mas meu entendimento é este ...

O kernel montou as matrizes antes do horário normal para a montagem das matrizes. Quando o kernel monta as matrizes, ele não usa o mdadm.conf. Como as partições já foram montadas pelo kernel, a montagem normal da matriz que usa mdadm.conf foi ignorada.

A chamada sudo update-initramfs -uinforma ao kernel que dê uma olhada no sistema novamente para descobrir como iniciar.

Estou certo de que alguém com melhor conhecimento irá me corrigir / elaborar isso.

Use a seguinte linha para atualizar o initrd para cada kernel respectivo que existe no seu sistema:

sudo update-initramfs -k all -u
mmorris
fonte
3
Sim, na verdade, isso recriaria o initrd para o kernel e incluiria os arquivos de configuração relevantes para a configuração do MD-RAID. Isso significa que, no momento em que os dispositivos forem criados, o kernel saberá como nomeá-los de acordo com a sua configuração. Boa pegada. +1 ... btw: percebeu que isso também é explicado no tópico do fórum vinculado.
0xC0000022L
Ei, essa resposta resolveu um problema lento de inicialização do RAID no meu sistema Arch Linux. Levaria 5 segundos para colocar a matriz RAID0 em funcionamento durante a inicialização. Após alterar o mdadm.conf conforme descrito e executar o mkinitcpio, leva um tempo insignificante!
precisa saber é o seguinte
Não foi possível inicializar o Ubuntu 12.04 (Mint 13) sem isso. Também não consegui fazer com que meu FS raiz fosse montado no shell initramfs. Havia um monte de erros dm-lineares e erros de 'super-bloqueio ruim' tentando montar. Também certifiquei-me de renomear meu dispositivo md0 para 0 e dispositivo md1 para 1. Não sei se isso também era necessário.
precisa saber é
6
sudo update-initramfs -u

era tudo que eu precisava para consertar isso. Não editei nada no /etc/mdadm/mdadm.conf.

ajaaskel
fonte
0

Consegui replicar o problema da seguinte maneira:

Quando o "Software Updater" perguntou se eu queria atualizar pacotes (incluindo o Ubuntu base "e o kernel, eu disse: OK. O kernel recém-instalado usava as configurações atuais do sistema / kernel. Criei o array. Somente o kernel atualmente em execução foi atualizado com as novas configurações de RAID.Quando reiniciei, o novo kernel não sabia nada sobre o ataque e deu a ele um nome md127!

Angelos Vassiliou
fonte