Reconstruindo uma matriz RAID 1 em um servidor de produção (Ubuntu 12.04.2 LTS)

0

Eu gerencio um servidor de produção que possui um array RAID 1 com dois discos rígidos idênticos. Desculpas antecipadas, li muitos tópicos sobre isso, mas devido à natureza crítica do servidor, ele salvará meu trabalho se alguém puder me fornecer instruções passo a passo precisas. Como afirmado, o servidor é 12.04.2 LTS. Uma das unidades falhou e foi automaticamente removida da matriz. A empresa de hospedagem substituiu a unidade defeituosa, mas não recriou a matriz RAID. Aqui está o que eu acredito das informações relevantes do servidor:

**df -h**
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        909G  775G   88G  90% /
udev            3.8G  4.0K  3.8G   1% /dev
tmpfs           1.6G  352K  1.6G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.8G     0  3.8G   0% /run/shm
/dev/md0        458M   25M  409M   6% /boot

**cat /etc/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>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/md2 during installation
UUID=2d22fd63-9d2e-494c-92d9-89f411fb1b5d /               ext4    errors=remount-ro,usrquota 0       1
# /boot was on /dev/md0 during installation
UUID=b99dbfa5-fad2-4ba0-b741-70bd8ddff90e /boot           ext2    defaults        0       2
# swap was on /dev/md1 during installation
UUID=2d72a698-9c6c-4d81-9ed9-3d7ebe544e45 none            swap    sw              0       0

**cat /proc/mdstat** 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sda2[0]
      499712 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sda3[0]
      7995840 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sda4[0]
      968130304 blocks super 1.2 [2/1] [U_]

**mdadm -D /dev/md0**
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jun 19 12:04:15 2013
     Raid Level : raid1
     Array Size : 499712 (488.08 MiB 511.71 MB)
  Used Dev Size : 499712 (488.08 MiB 511.71 MB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Thu Apr 30 06:29:27 2015
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : paris086:0  (local to host paris086)
           UUID : ceba0bd5:ffa466c8:7e950165:71dc000d
         Events : 118

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       0        0        1      removed

**mdadm -D /dev/md1**
/dev/md1:
        Version : 1.2
  Creation Time : Wed Jun 19 12:04:15 2013
     Raid Level : raid1
     Array Size : 7995840 (7.63 GiB 8.19 GB)
  Used Dev Size : 7995840 (7.63 GiB 8.19 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Thu Apr 30 13:04:46 2015
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : paris086:1  (local to host paris086)
           UUID : dd350924:63d6b46f:4cb885f3:11f2b430
         Events : 791

    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       0        0        1      removed

**mdadm -D /dev/md2**
/dev/md2:
        Version : 1.2
  Creation Time : Wed Jun 19 12:04:15 2013
     Raid Level : raid1
     Array Size : 968130304 (923.28 GiB 991.37 GB)
  Used Dev Size : 968130304 (923.28 GiB 991.37 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Thu Apr 30 13:35:25 2015
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : paris086:2  (local to host paris086)
           UUID : 2b8bd77e:7fc2806b:56ae349f:01473330
         Events : 539748

    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       1       0        0        1      removed

O primeiro alerta de falha do mdadm enviado para mim via e-mail é:

A Fail event had been detected on md device /dev/md/2.

It could be related to component device /dev/sdb4.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb2[1] sda2[0]
      499712 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb3[1](F) sda3[0]
      7995840 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sdb4[1](F) sda4[0]
      968130304 blocks super 1.2 [2/1] [U_]

O segundo email de evento com falha é lido:

A Fail event had been detected on md device /dev/md/1.

It could be related to component device /dev/sdb3.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb2[1] sda2[0]
      499712 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb3[1](F) sda3[0]
      7995840 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sdb4[1](F) sda4[0]
      968130304 blocks super 1.2 [2/1] [U_]

O terceiro email de evento com falha é lido:

A Fail event had been detected on md device /dev/md/0.

It could be related to component device /dev/sdb2.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb2[1](F) sda2[0]
      499712 blocks super 1.2 [2/1] [U_]

md1 : active raid1 sdb3[1](F) sda3[0]
      7995840 blocks super 1.2 [2/1] [U_]

md2 : active raid1 sdb4[1](F) sda4[0]
      968130304 blocks super 1.2 [2/1] [U_]

unused devices: <none>

E a partir daí ele acaba de me enviar diariamente alertas "Um evento DegradedArray foi detectado no dispositivo md" para todos os três com o status [U_] em cada um.

Obrigado por passar por tudo isso, qualquer ajuda seria muito, muito apreciada.

Mais algumas informações, do fdisk -l

AVISO: GPT (GUID Partition Table) detectado em '/ dev / sda'! O fdisk de utilitários não suporta o GPT. Use o GNU Parted.

Disco / dev / sda: 1000,2 GB, 1000204886016 bytes 255 cabeças, 63 setores / trilha, 121601 cilindros, total 1953525168 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 512 bytes Tamanho de E / S (mínimo / ótimo): 512 bytes / 512 bytes Identificador de disco: 0x00000000

Sistema de identificação de blocos de fim de inicialização de dispositivos / dev / sda1 1 1953525167 976762583+ ee GPT

Disco / dev / sdb: 1000,2 GB, 1000204886016 bytes 255 cabeças, 63 setores / trilha, 121601 cilindros, total 1953525168 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 4096 bytes Tamanho de E / S (mínimo / ótimo): 4096 bytes / 4096 bytes Identificador de disco: 0x00000000

O disco / dev / sdb não contém uma tabela de partições válida

Disco / dev / md2: 991,4 GB, 991365431296 bytes 2 cabeças, 4 setores / trilha, 242032576 cilindros, total 1936260608 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 512 bytes Tamanho de E / S (mínimo / ótimo): 512 bytes / 512 bytes Identificador de disco: 0x00000000

O disco / dev / md2 não contém uma tabela de partições válida

Disco / dev / md1: 8187 MB, 8187740160 bytes 2 cabeças, 4 setores / pista, 1998960 cilindros, total 15991680 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 512 bytes Tamanho de E / S (mínimo / ótimo): 512 bytes / 512 bytes Identificador de disco: 0x00000000

O disco / dev / md1 não contém uma tabela de partições válida

Disco / dev / md0: 511 MB, 511705088 bytes 2 cabeças, 4 setores / trilha, 124928 cilindros, total 999424 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 512 bytes Tamanho de E / S (mínimo / ótimo): 512 bytes / 512 bytes Identificador de disco: 0x00000000

E de parted -l

Model: ATA ST31000528AS (scsi)

Disco / dev / sda: 1000 GB Tamanho do setor (lógico / físico): 512B / 512B Tabela de Partição: gpt

Number Start End Size Nome do sistema de arquivos Sinalizadores  1 17.4kB 1018kB 1000kB bios_grub  2 1018kB 513MB de raid de 512MB  3 513MB 8705MB 8192MB raid  4 8705MB 1000GB 991GB raid

Erro: / dev / sdb: rótulo de disco não reconhecido

Modelo: Linux RAID Array (md) Disco / dev / md2: 991 GB Tamanho do setor (lógico / físico): 512B / 512B Tabela de Partição: loop

Sinalizadores de sistema de arquivo de tamanho de início de número  1 0.00B 991GB 991GB ext4

Modelo: Linux RAID Array (md) Disco / dev / md1: 8188MB Tamanho do setor (lógico / físico): 512B / 512B Tabela de Partição: loop

Sinalizadores de sistema de arquivo de tamanho de início de número  1 0.00B 8188MB 8188MB de troca de linux (v1)

Modelo: Linux RAID Array (md) Disco / dev / md0: 512MB Tamanho do setor (lógico / físico): 512B / 512B Tabela de Partição: loop

Sinalizadores de sistema de arquivo de tamanho de início de número  1 0.00B 512MB 512MB ext2

    
por Frederik Jacobs 30.04.2015 / 14:10

1 resposta

0

eu usaria

sudo sgdisk /dev/sda -R /dev/sdb

para clonar a tabela de partições de / dev / sda para / dev / sdb.

Então,

sudo sgdisk /dev/sdb -G

para re-randomizar os UUIDs no novo disco e evitar UUIDs duplicados.

Por fim, adicione as novas partições aos seus dispositivos RAID (acho que a etapa --remove é necessária, pois as partições são listadas como partes com falha dos dispositivos atuais):

sudo mdadm --remove /dev/md0 /dev/sdb2
sudo mdadm --add /dev/md0 /dev/sdb2

Repita para os outros dispositivos:

sudo mdadm --remove /dev/md1 /dev/sdb3
sudo mdadm --add /dev/md1 /dev/sdb3
sudo mdadm --remove /dev/md2 /dev/sdb4
sudo mdadm --add /dev/md2 /dev/sdb4
    
por Niclas Börlin 13.08.2015 / 23:14