discos não prontos na matriz faz com que o mdadm force o shell initramfs

1

Ok, isso está começando a ficar muito frustrante. Eu li a maioria das outras respostas neste site que tem alguma coisa a ver com este problema, mas eu ainda não estou chegando a lugar nenhum. Eu tenho um array RAID 6 com 10 dispositivos e 1 de reposição. O sistema operacional está em um dispositivo completamente separado. Na inicialização, apenas três dos 10 dispositivos no ataque estão disponíveis, os outros ficam disponíveis posteriormente no processo de inicialização. Atualmente, a menos que eu passe pelo initramfs, não consigo arrancar o sistema - ele apenas trava com uma tela em branco. Quando eu inicio a recuperação (initramfs), recebo uma mensagem perguntando se quero montar o array degradado. Se eu disser não e depois sair do initramfs, o sistema inicializará bem e minha matriz será montada exatamente onde pretendo. Aqui estão os arquivos pertinentes o mais próximo que eu posso dizer. Pergunte-me se você quer ver mais alguma coisa.

# 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 Tue, 13 Nov 2012 13:50:41 -0700
# by mkconf $Id$
ARRAY /dev/md0 level=raid6 num-devices=10 metadata=1.2 spares=1 name=Craggenmore:data UUID=37eea980:24df7b7a:f11a1226:afaf53ae

Aqui está o fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).

#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc2 during installation
UUID=3fa1e73f-3d83-4afe-9415-6285d432c133 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sdc3 during installation
UUID=c4988662-67f3-4069-a16e-db740e054727 none            swap    sw              0       0
# mount large raid device on /data
/dev/md0    /data   ext4    defaults,nofail,noatime,nobootwait  0   0

saída de cat / proc / mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid6 sda[0] sdd[10](S) sdl[9] sdk[8] sdj[7] sdi[6] sdh[5] sdg[4] sdf[3] sde[2] sdb[1]
      23441080320 blocks super 1.2 level 6, 512k chunk, algorithm 2 [10/10] [UUUUUUUUUU]

unused devices: <none>

Aqui está a saída do mdadm --detail --scan --verbose

ARRAY /dev/md0 level=raid6 num-devices=10 metadata=1.2 spares=1 name=Craggenmore:data UUID=37eea980:24df7b7a:f11a1226:afaf53ae
   devices=/dev/sda,/dev/sdb,/dev/sde,/dev/sdf,/dev/sdg,/dev/sdh,/dev/sdi,/dev/sdj,/dev/sdk,/dev/sdl,/dev/sdd

Por favor, deixe-me saber se há algo mais que você acha que pode ser útil na solução de problemas ... Eu simplesmente não consigo descobrir como alterar o processo de inicialização para que o mdadm espere até que as unidades estejam prontas para construir array. Tudo funciona muito bem se as unidades tiverem tempo suficiente para entrar online.

edit: mudou o título para refletir adequadamente a situação

    
por RaidPinata 16.11.2012 / 22:29

1 resposta

0

Ok, finalmente descobri esse problema intensamente frustrante. Acontece que existem vários bugs arquivados na área. Infelizmente, encontrar a solução foi muito difícil.

Primeiro, um pouco mais de informação:

  1. O jeito não é nada disso. O que está realmente ocorrendo é que o sistema está caindo para um shell initramfs. Infelizmente, isso é oculto pela inicialização gráfica, então tudo que vejo é uma tela em branco ligeiramente roxa. Se eu digitar exit, permitirá que o sistema inicialize.

  2. O sistema está descartando o shell initramfs porque ele pergunta se queremos inicializar degradado e, como ele não pode receber nenhuma entrada, da maneira como a inicialização é configurada, isso acaba.

  3. A última informação é que não importa quais parâmetros você passe para o kernel, você não pode passar por esse prompt. Então, estamos presos se nossos drives para nossa matriz não aparecerem rápido o suficiente para se adequar ao upstart / udev.

Os erros são arquivados no launchpad (não por mim) em todos os problemas acima e parece que eles estão sendo trabalhados (esta questão é aparentemente muito difícil de lidar devido a tocar em um monte de coisas).

Felizmente, consegui encontrar uma solução que se seguirá no final. Primeiro eu tenho que dar um aviso com um aviso strong. O que eu descrevo pode fazer com que você monte um array degradado sem estar ciente disso. Isso pode levar a uma falha total e perda de seus dados. Você foi avisado - NÃO FAÇA ISSO A MENOS QUE ESTEJA COMPLETAMENTE CERTO QUE VOCÊ ESTÁ DISPONÍVEL PARA ASSUMIR ESTES RISCOS!

O que eu fiz para que o Ubuntu permitisse que o sistema passasse por essa condição de corrida era realmente muito simples:

sudo dpkg-reconfigure mdadm

Em seguida, reconfigure o mdadm para permitir que o sistema inicie a matriz degradada. Como mencionei anteriormente, isso pode ser arriscado, portanto, certifique-se de ter seu mdadm configurado para notificá-lo se o array estiver degradado e monitorar seu array. Também recomendo que você configure notificações por email. Eu também tenho o sistema me enviando um resumo do meu ataque toda vez que eu reinicio. Espero que isso tenha sido útil para alguém; Eu certamente gostaria de ter encontrado esta resposta!

Felicidades!

    
por RaidPinata 19.11.2012 / 23:30