Estendendo a matriz RAID 1 com discos de tamanhos diferentes

1

Por favor, note a seguinte configuração é Centos 6.6.

Eu tenho uma configuração existente do RAID 1 usando SSDs de 2x480 GB. Acabei de ter dois novos SSD de 800GB instalados no servidor. A configuração existente do RAID 1 que desejo estender é mapeada para /dev/md2 . /dev/md2 aponta para meu diretório /home no momento. Meu diretório /home existente está ficando cheio. Desejo estender o tamanho dele de 460 GB (existente /dev/md2 ) para 1260 GB (existindo /dev/md2 + duas novas unidades)

Os novos discos são configurados como /dev/sdc e /dev/sdd . Os discos antigos são /dev/sda e /dev/sdb .

Encontrei alguns guias diferentes sobre a extensão de configurações de RAID, mas estou confuso se isso funcionar, já que estou adicionando discos de tamanhos diferentes à configuração. Eu também não tenho certeza se isso vai funcionar legal, pois eu quero adicionar dois discos à configuração, em vez de apenas 1.

Um exemplo de um guia que encontrei: link

Eu acabei de executar:

mdadm --manage /dev/md2 --add /dev/XXX

Duas vezes para cada um dos discos antes de executar:

mdadm --grow --raid-devices=4 /dev/md2

Isso configuraria corretamente os novos SSDs de 800 GB para funcionar com as unidades de 480 GB configuradas no RAID 1? O Linux saberá duplicar corretamente os dados nas novas unidades e não interferir nas unidades existentes?

EDIT: Eu preciso fazer isso tudo ao vivo. Esqueceu de mencionar isso.

    
por MasterGberry 05.04.2016 / 07:39

1 resposta

1

Sim, você pode adicionar as duas novas unidades maiores com o mdadm como descreve, mas o processo envolve mais algumas etapas.

Nota: Depois de ter estendido a matriz, você também redimensiona sua partição ou LVM que você (pode) ter sobre a matriz de raid antes de poder expandir seu sistema de arquivos. Dependendo do sistema de arquivos que você tem, isso pode ser feito online.

Para demonstrar os passos, eu primeiro criei um dispositivo raid com dois arquivos de 100Mbyte:

# mdadm --create --level=1 --raid-devices=2 --metadata=1.2 /dev/md2 /dev/loop0 /dev/loop1
mdadm: array /dev/md2 started.

# cat /proc/mdstat
md2 : active raid1 loop1[1] loop0[0]
      102272 blocks super 1.2 [2/2] [UU]

Então eu adiciono dois dispositivos de 200Mbyte ao array, eles aparecerão como sobressalentes:

# mdadm --manage /dev/md2 --add /dev/loop2 /dev/loop3
mdadm: added /dev/loop2
mdadm: added /dev/loop3

# cat /proc/mdstat
md2 : active raid1 loop3[3](S) loop2[2](S) loop1[1] loop0[0]
      102272 blocks super 1.2 [2/2] [UU]

Aumente o ataque para 4 discos. Após a conclusão da sincronização, o array agora tem 4 espelhos:

# mdadm --grow --raid-devices=4 /dev/md2
raid_disks for /dev/md2 set to 4

# cat /proc/mdstat
md2 : active raid1 loop3[3] loop2[2] loop1[1] loop0[0]
      102272 blocks super 1.2 [4/4] [UUUU]

Falha nos dois dispositivos menores e remova-os e mude o número de dispositivos actice para dois:

# mdadm --manage --fail /dev/md2 /dev/loop0 /dev/loop1
mdadm: set /dev/loop0 faulty in /dev/md2
mdadm: set /dev/loop1 faulty in /dev/md2

# mdadm --manage --remove /dev/md2 /dev/loop0 /dev/loop1
mdadm: hot removed /dev/loop0 from /dev/md2
mdadm: hot removed /dev/loop1 from /dev/md2

# mdadm --grow --raid-devices=2 /dev/md2
raid_disks for /dev/md2 set to 2

A etapa final para o dispositivo de invasão é aumentar a matriz para abranger todo o tamanho dos dois discos maiores:

# mdadm --grow --size=max /dev/md2
mdadm: component size of /dev/md2 has been set to 204720K

dmesg dirá:

md2: detected capacity change from 104726528 to 209633280

.. e o dispositivo será sincronizado novamente. Agora você deve ter um dispositivo de invasão com um novo tamanho:

# cat /proc/mdstat
md2 : active raid1 loop3[3] loop2[2]
      204720 blocks super 1.2 [2/2] [UU]

Agora você precisa redimensionar qualquer partição e / ou LVM e depois disso você pode aumentar seu sistema de arquivos.

    
por 05.04.2016 / 08:25