Expanda uma matriz Linux MD RAID 10 para usar discos maiores

11

Pelo que entendi, isso é possível, mas não consigo encontrar uma resposta direta sobre como exatamente fazê-lo, e não quero arriscar perder dados experimentando com ele mesmo, então estou perguntando aqui.

Eu tenho um servidor doméstico com cinco discos executando o CentOS. Um é um SSD segurando o sistema operacional. Os quatro discos restantes são discos rígidos de 4 TB configurados no RAID10 com mdraid. O sistema de arquivos em uso é xfs.

Estou pensando em tentar substituir os discos de 4 TB por 8 TB. O que exatamente precisa ser feito para que essa substituição ocorra sem precisar reconfigurar um RAID novo e perder dados?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1
Kefka
fonte

Respostas:

14

Conclua as etapas a seguir para cada disco; substitua /dev/sda1por outros discos, conforme necessário. Você deve concluir todas essas etapas para um disco antes de prosseguir para o próximo disco.

  • Marque o disco como com falha para que o MD pare de usá-lo: mdadm --manage /dev/md127 --fail /dev/sda1
  • Remova o disco da matriz: mdadm --manage /dev/md127 --remove /dev/sda1
  • Substitua fisicamente o disco.
  • Particione o novo disco usando o tipo 0xDAcom uma partição que abrange todo o disco.
  • Adicione o novo disco à matriz: mdadm --manage /dev/md127 --add /dev/sda1

O MD reconstruirá a matriz assim que você adicionar o disco de substituição. Verifique se a reconstrução está concluída antes de prosseguir para o próximo disco. Você pode verificar o status da matriz executando cat /proc/mdstat.

Depois que todos os discos forem substituídos e a matriz reconstruída, expanda a matriz para preencher a capacidade máxima de todos os discos mdadm --grow /dev/md127 --size=max. Você pode redimensionar o sistema de arquivos a partir daí para preencher o RAID expandido; no seu caso, use o xfs_growfscomando

Mais informações sobre como aumentar uma matriz MD estão disponíveis no wiki do Linux RAID .

Como em qualquer outra tarefa de manipulação de disco, você deve fazer um backup antes de começar.

bwDraco
fonte
1
Talvez adicionar como você verificar o progresso reconstruir ->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2kStaysInside
2

Você deseja trocar cada disco um por um primeiro.

Para fazer isso, você 'falhará' em cada disco e substituirá-o por sua nova substituição de 8Tb. De fato, se você tiver portas sobressalentes, poderá adicionar discos extras e, em seguida, colocar o mdadm 'replace' no lugar, em vez de remover um disco do disco. o ataque e com maior risco de falha.

Esta pergunta detalha a melhor maneira que posso encontrar de fazê-lo 'com segurança'

Depois de fazer isso, basta expandir o FS existente no espaço recém-criado. Parece que o comando para isso é 'xfs_growfs', mas não tenho experiência com o xfs para explicar exatamente como você faria isso.

Como sempre, tenha os backups prontos (e o raid não é um backup!).

djsmiley2kStaysInside
fonte
Sendo configurado com um raid10 e mdraid, o espaço extra seria reconhecido? Devo trocar dois de cada vez, um de cada par espelhado?
Kefka
Você só adiciona o espaço depois de trocar todos os discos e, sim, ele será reconhecido.
djsmiley2kStaysInside