Ubuntu Server 12.04, o número do dispositivo MDADM muda de repente?

2

Estou enfrentando um bug realmente chato, configurei um Software RAID1 com mdadm e a configuração correu bem com esses resultados

  

/dev/md/lucas.mgscreativa.com.ar:0

Eu também configurei o mdadm.conf assim

DEVICE /dev/sda /dev/sdb

# 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 ARRAY /dev/md/lucas.mgscreativa.com.ar:0 metadata=1.2
name=lucas.mgscreativa.com.ar:0
UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62

E fstab configurado assim

/dev/md/lucas.mgscreativa.com.ar:0 /media/data     ext4
defaults,noatime      0       0

Mas, algum dia, o nome da minha matriz mudou de repente de /dev/md/lucas.mgscreativa.com.ar:0 para / dev / md0, por isso fiz algumas alterações no fstab e mdadm.conf (claro, depois de horas e horas de tentativa e erro) e tudo deu certo, mas hoje, novamente, o número do MD mudou de / dev / md0 para / dev / md127 !!!

O que está acontecendo aqui? isso é um bug, eu acho.

Existe alguma maneira de corrigir o número MD para que meu servidor possa funcionar como deveria, sem falhas?

Obrigado!

    
por razor7 03.11.2012 / 00:28

2 respostas

3

Primeiro: você provavelmente está tendo erros em sua matriz. Você precisa verificar seu status imediatamente.

Exemplo:

root@locutus:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jun  1 15:30:31 2012
     Raid Level : raid10
     Array Size : 1953119232 (1862.64 GiB 1999.99 GB)
  Used Dev Size : 976559616 (931.32 GiB 1000.00 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun Nov 25 21:39:44 2012
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : locutus:0  (local to host locutus)
           UUID : b81ac63a:51a9b01c:c01812ec:86c534c4
         Events : 182

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       49        1      active sync   /dev/sdd1
       2       8       17        2      active sync   /dev/sdb1
       3       8       33        3      active sync   /dev/sdc1

Você provavelmente encontrará erros ... eles precisarão ser abordados.

Seguindo em frente, você deve alterar a maneira como seu fstab está configurado, para usar o UUID em vez de usar o devicename. Use o comando blkid em sua matriz (ou uma partição em sua matriz) para obter seu UUID e use esse UUID para montá-lo em / etc / fstab.

Exemplo:

root@locutus:~# blkid /dev/mapper/vg0-root
/dev/mapper/vg0-root: UUID="61998221-7b39-49cd-83f7-62fda973218c" TYPE="ext4" 

Com essa informação, eu configuraria minha entrada do / etc / fstab para o root:

UUID=61998221-7b39-49cd-83f7-62fda973218c    /    ext4    defaults,errors=remount-ro    0    1

Depois de fazer isso, o sistema encontrará suas partições, independentemente de os nomes dos dispositivos mudarem ou não (por exemplo, se os cabos da unidade forem trocados).

Você também deve configurar seu /etc/mdadm/mdadm.conf para encontrar coisas automaticamente sem precisar de nenhuma unidade específica para estar em um local específico:

# 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
ARRAY /dev/md/0 metadata=1.2 UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62 name=lucas.mgscreativa.com.ar:0

OBSERVE QUE NÃO EXISTEM DISPOSITIVOS ESPECIFICADOS NESTE ARQUIVO CONF. Este é um recurso, não um bug. Com o mdadm.conf configurado dessa maneira, seu sistema irá verificar automaticamente todas as unidades conectadas procurando por algo que pertence a sua matriz, e irá montá-las todas como / dev / md0.

    
por Jim Salter 26.11.2012 / 03:50
3

Para esta resposta, estou assumindo que a matriz está intacta - sem falhas nos discos, não em outras condições de erro, apenas na alteração do "número do dispositivo".

O que normalmente deve funcionar é parar o array:

# mdadm --verbose --misc --stop /dev/md127

... corrija a linha referente ao array em /etc/mdadm/mdadm.conf (ou seja, ajuste o nome do dispositivo). Em seguida, monte da seguinte maneira:

# mdadm --verbose --assemble --update=super-minor --run /dev/md0 /dev/sdaX /dev/sdbX

(ajuste as referências aos dispositivos físicos ao seu caso).

Você deve ver uma saída assim:

mdadm: looking for devices for /dev/md0
mdadm: updating superblock of /dev/sdaX with minor number 0
mdadm: /dev/sdaX is identified as a member of /dev/md0, slot 0.
mdadm: updating superblock of /dev/sdbX with minor number 0
mdadm: /dev/sdbX is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdbX to /dev/md0 as 1
mdadm: added /dev/sdaX to /dev/md0 as 0
mdadm: /dev/md0 has been started with 2 drives.

E, se você consultar os detalhes, deverá ver um campo "Preferred Minor" atualizado. Verifique com:

# mdadm -Q -D /dev/md0|grep "Preferred"
Preferred Minor : 0

Advertências: também, certifique-se de montar o dispositivo e escrever nele. Caso contrário, a alteração pode não ter efeito. Além disso, super-minor parece ser específico para o antigo formato de metadados.

NB: Eu não sei se você pode afetar o "nome" no sentido original com isso. Eu sei que você pode afetar o X nos nomes /dev/mdX criados.

    
por 0xC0000022L 21.02.2013 / 04:12