Remova a unidade do RAID flexível

11

Eu tenho um servidor dedicado com 3 unidades SSD em RAID 1. Saída de cat / proc / mdstat:

    Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md4 : active raid1 sdc4[2] sdb4[1] sda4[0]
      106738624 blocks [3/3] [UUU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md2 : active raid1 sdc2[2] sda2[0] sdb2[1]
      5497792 blocks [3/3] [UUU]

md1 : active raid1 sda1[0] sdc1[2] sdb1[1]
      259008 blocks [3/3] [UUU]

unused devices: <none>

Como uma unidade pode ser removida com segurança do ataque suave sem perder nenhum dado? Gostaria de remover uma unidade da matriz para reformatá-la e usá-la de forma independente, mantendo os dados mais importantes espelhados.

desde já, obrigado

Raul
fonte

Respostas:

19

Você tem um espelho de três vias: cada unidade possui uma cópia completa de todos os dados. Supondo que a unidade que deseja remover é /dev/sdc, e você quiser removê-lo de todas as três matrizes, você execute os seguintes passos para /dev/sdc1, /dev/sdc2, e /dev/sdc4.

Etapa 1: Remova a unidade da matriz. Você não pode remover um dispositivo ativo de uma matriz, portanto, é necessário marcá-lo como com falha primeiro.

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

Etapa 2: Apague os metadados RAID para que o kernel não tente adicioná-los novamente:

wipefs -a /dev/sdc1

Etapa 3: reduza a matriz para que seja apenas um espelho de duas vias, não um espelho de três vias com uma unidade ausente:

mdadm --grow /dev/md1 --raid-devices=2

Pode ser necessário remover o bitmap com intenção de gravação /dev/md4antes de reduzi-lo (o manual não está claro nisso); nesse caso, você o faria imediatamente antes da etapa 3 e mdadm --grow /dev/md4 --bitmap=none, em seguida, recolocá-lo novamente mdadm --grow /dev/md4 --bitmap=internal.

Marca
fonte
Isso preserva os dados no disco que você remove? Ou seja, você também pode acessar os dados que estavam no RAID do disco separado também?
Ninguém
1
@Ninguém, se você quiser ler os dados da unidade removida, pule a etapa 2. Praticamente todos os dados ainda estarão lá após a execução wipefs(eles apenas apagam alguns bytes importantes necessários para o reconhecimento do sistema de arquivos), mas a leitura se torna um exercício em recuperação de dados, em vez de apenas uma questão de ligar a unidade no.
Mark
0

man mdadm:

   -r, --remove
          remove listed devices.  They must  not  be  active.   i.e.  they
          should be failed or spare devices.

          As well as the name of a device file (e.g.  /dev/sda1) the words
          failed, detached and names like set-A can be given to  --remove.
          The  first  causes  all failed device to be removed.  The second
          causes any device which is no longer  connected  to  the  system
          (i.e  an  'open'  returns  ENXIO) to be removed.  The third will
          remove a set as describe below under --fail.
Ipor Sircer
fonte