mdadm warning (sistema não inicializável) de update-initramfs, a correção sugerida pelo mkconf parece inconsistente com a descrição do problema do mdadm

5

Resumo: update-initramfs diz que o sistema não inicializável, aponta para mkconf que sugere reescrever para mdadm.conf que parece quebrar o RAID, sistema acima (por enquanto) mas a próxima reinicialização pode matá-lo, não claro como proceder, mdadm .conf parece ser bom, mas o que é o aviso update-initramfs me dizendo? e por que o mkconf parece sugerir algo ruim?

Eu tenho um servidor dedicado em 1and1.com executando o Ubuntu 12.04, e "update-initramfs -u" informa uma mensagem de erro do mdadm indicando que o servidor não será reinicializado corretamente. Eu olhei os arquivos de configuração relevantes e não consegui identificar o problema. Eu não tentei reiniciar desde que vi esta mensagem, porque eu não quero "ver apenas o que acontece" em um servidor que não posso acessar fisicamente (e possivelmente tornar o diagnóstico ainda mais difícil, se eu perder o acesso a um sistema em execução que posso investigar informações. Sinto que devo tentar entender a mensagem de erro e a configuração do sistema, até ter certeza de que uma reinicialização provavelmente será bem-sucedida.

Primeiro, a mensagem de erro (de update-initramfs -u):

W: mdadm: the array /dev/md3 with UUID dffcb503:bc157198:3fb6082e:e5593158
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.
W: mdadm: the array /dev/md1 with UUID a46d442b:4e5b8a52:3fb6082e:e5593158
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.

Eu me concentro abaixo no md1, já que é onde o / boot está localizado (então "necessário para o boot" === TRUE), mas a mesma mensagem de erro também é gerada para o md3.

A estrutura md é da imagem padrão do provedor do Ubuntu, esta parte do sistema não foi tocada. A única mudança na estrutura da unidade / partição foi expandir o tamanho das unidades lógicas (lvextend e resize2fs), o que (embora possa afetar outras coisas) não parece afetar "/" (no md1) e sua capacidade de inicialização. / p>

cat / etc / fstab

/dev/md1    /       ext3    defaults       1 1
/dev/sda2   none        swap    sw          
/dev/sdb2   none        swap    sw          
/dev/vg00/usr   /usr        ext4    errors=remount-ro       0 2
/dev/vg00/var   /var        ext4    errors=remount-ro       0 2
/dev/vg00/home  /home       ext4    errors=remount-ro   0 2

proc / proc proc nodev, noexec, nosuid 0 0

Podemos ver o sistema md funcionando corretamente, com md1 em sda1 e sdb1:

cat /proc/mdstat
-----
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdb1[1] sda1[0]
      4194240 blocks [2/2] [UU]

md3 : active raid1 sdb3[0] sda3[1]
      1458846016 blocks [2/2] [UU]

Parece que estes md's estão definidos em linhas ARRAY mdadm.conf:

cat /etc/mdadm/mdadm.conf

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

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
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

# This file was auto-generated on Tue, 11 May 2010 20:53:30 +0200
# by mkconf $Id$

ARRAY /dev/md1 level=raid1 num-devices=2 devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md3 level=raid1 num-devices=2 devices=/dev/sda3,/dev/sdb3

O initrd mais recente em / boot é initrd.img-3.2.0-37-generic, e o mdadm.conf em cache parece idêntico (verificado via "gunzip -c /boot/initrd.img-3.2.0-37 -genérica | cpio -i --quiet --to-stdout etc / mdadm / mdadm.conf ")

Assim, a situação atual (a execução do md e como eles são definidos para inicialização) parece boa para mim. Voltando à mensagem de erro "update-initramfs -u", sugere-se a comparação do mdadm.conf com a saída de / usr / share / mdadm / mkconf. É aqui que começamos a ver algo que parece realmente diferente:

/ usr / share / mdadm / mkconf

# 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

# 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

Se eu estiver lendo isso corretamente, a reescrita do mdadm.conf proposta pelo sistema (para corrigir que md1 e md3 estão "atualmente ativos, mas ... não listados no mdadm.conf") DROParia a listagem de md1 e md3 do mdadm.conf. Então eu não posso ajustar a mensagem de erro e a correção proposta (mude o mdadm.conf para ir do não listado para o listado, mas onde a correção proposta vai da listada para a não listada) Minha incapacidade de (1) encontrar qualquer problema real e ( 2) conciliar a mensagem de erro com a correção proposta, me faz desconfiar da saída de / usr / share / mdadm / mkconf (e a mensagem de erro me direcionando para lá, de update-initramfs -u). Mas eu não quero ignorar o sistema pedindo ajuda, especialmente em uma parte do sistema que é tão crítica. Eu confio que o sistema operacional sabe algo que eu não sei. E a experimentação (reinicialização remota) é um último recurso.

Ao procurar on-line por outras pessoas com mensagens de erro semelhantes, questões relacionadas parecem envolver o mkconf gerando linhas ARRAY que são diferentes do que está atualmente no mdadm.conf (e a utilização do mkconf é geralmente recomendada, como uma correção para as linhas ARRAY. Mas, neste caso, o mkconf não fornece nenhuma linha ARRAY, portanto esta linha de pesquisa não levou a uma assistência relevante. Comentários no mdadm.conf dizem que ele procura por superblocos MD por defualt, então o fato de o arquivo gerado omitir a referência explícita a md1 / md3 talvez seja aceitável (?) Se o mdadm puder extrair essa informação dos superblocos. Mas se sim, por que a mensagem de erro diz que o problema é que o md1 / md3 não está listado e o que está errado com a configuração atual (por que há uma mensagem de erro)? Então essa linha de pensamento (tentando entender como um arquivo gerado sem o ARRAY pode ajudar) também não funcionou.

Isso talvez esteja latindo na árvore errada, mas os nomes de dispositivos como sda1 atualmente são permitidos no mdadm.conf em linhas ARRAY? Eu sei que o UUID é o preferido, o uso de nomes de dispositivos pode ser a causa da mensagem de erro? Em caso afirmativo, quais opções podem funcionar: (1) sem alteração no mdadm.conf e confiando que o sistema continue montando o md1 com base nos nomes dos dispositivos; (2) usar a saída do mkconf, sem nenhum md explícito (nenhum nome de dispositivo, nenhum UUID), confiando na descoberta automática baseada em superblocos; (3) encontrar o UUID e escrever novas linhas ARRAY para o mdadm.conf (que não seriam valores existentes, nem a substituição proposta pelo mkconf)?

Como a causa dessa mensagem de erro deve ser identificada, o que ela está tentando me dizer?

Informações adicionais que podem ser úteis:

mdadm --misc --detail / dev / md1

/dev/md1:
        Version : 0.90
  Creation Time : Sun Feb 24 19:11:59 2013
     Raid Level : raid1
     Array Size : 4194240 (4.00 GiB 4.29 GB)
  Used Dev Size : 4194240 (4.00 GiB 4.29 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Sun Apr 27 23:39:38 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : a46d442b:4e5b8a52:3fb6082e:e5593158
         Events : 0.122

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

mdadm --misc --detail / dev / md3

/dev/md3:
        Version : 0.90
  Creation Time : Sun Feb 24 19:11:59 2013
     Raid Level : raid1
     Array Size : 1458846016 (1391.26 GiB 1493.86 GB)
  Used Dev Size : 1458846016 (1391.26 GiB 1493.86 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 3
    Persistence : Superblock is persistent

    Update Time : Sun Apr 27 23:43:41 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : dffcb503:bc157198:3fb6082e:e5593158
         Events : 0.1883

    Number   Major   Minor   RaidDevice State
       0       8       19        0      active sync   /dev/sdb3
       1       8        3        1      active sync   /dev/sda3
por user275513 28.04.2014 / 21:40

1 resposta

5

Eu encontrei uma solução aqui: link

Obtenha o UUID para sua matriz em questão com o comando: mdadm --misc --detail /dev/mdX (onde X é o número da matriz) e edite /etc/mdadm/mdadm.conf e substitua-os por:

ARRAY /dev/md1 UUID=dffcb503:bc157198:3fb6082e:e5593158
ARRAY /dev/md3 UUID=a46d442b:4e5b8a52:3fb6082e:e5593158

Substituindo meu dispositivo / dev / mdX e UUID pelo seu. Eu fiz isso em um dos meus e deu certo. Eu estou postando isso não é realmente para você, como você provavelmente resolveu há séculos atrás, mas para qualquer outra pessoa que isso aconteceu.

    
por Michael Fever 11.09.2014 / 06:23