substituindo discos rígidos raid antes da falha (3 anos de idade!)

5

Estou pensando que a melhor coisa a fazer com a instalação do meu raid é substituir as unidades antes que elas comecem a falhar e, à medida que elas começam a ficar antigas ... não consigo arcar com muito espaço de backup na nuvem e Eu quero dar um salto na falha eventual garantida dos meus drives devido ao desgaste.

Eu tenho 3 drives de 2TB com GPT, grub, uma pequena partição de sistema raid1 e uma grande partição home de raid5. Estou usando o Arch Linux.

Eu ia substituir as unidades uma por vez. Eu queria postar meu plano de ação e ver se alguém poderia pensar em uma razão pela qual não funcionaria ou se havia uma maneira melhor de fazê-lo.

passo um:

descubra qual dispositivo (ou seja, /dev/sda ) estou substituindo desconectando-o fisicamente e verificando /proc/mdstat para descobrir o /dev/sdx que falha.

etapa dois:

Conecte-o novamente e use o sfdisk para copiar a tabela de partições

sfdisk -d /dev/sdx > partition.layout

etapa três:

Coloque uma nova unidade física do mesmo tamanho

passo quatro:

sfdisk /dev/sdx < partition.layout

etapa cinco:

Use mdadm para adicionar a nova unidade à matriz com base nas instruções no wiki do arco.

mdadm --add /dev/md0 /dev/sdx1
mdadm --add /dev/md1 /dev/sdx2

sexto passo:

Reinstale o grub? espera que a ressincronização seja concluída e repita todo o processo com as outras 2 unidades?

Acho que a minha pergunta é mais ou menos como isso funcionará? há algo que eu esteja perdendo? Não quero perder algo óbvio e perder todos os meus dados.

Muito obrigado por qualquer assistência / insight.

Editar:

Apenas para obter os resultados da discussão no mesmo lugar, eu queria dizer que descobri como ter o mdadm e o smartmontools (smartd) montior e me notificar via e-mail se as coisas começam a ficar ruins com meus discos rígidos. Eu configuro o ssmtp com uma conta do Gmail que sincronizei com meu telefone.

Desde que eu já comprei as novas unidades, vou mantê-las por perto e trocá-las quando as coisas correm mal. É meu entendimento que, eventualmente, todos os discos rígidos falham. Obrigado pelas sugestões e protips sobre como fazer isso (sem degradar o array). Uma vez que posso pagar uma atualização, vou usar o ZFS com uma placa-mãe / memória / etc do ECC. e obrigado pelas dicas nessa direção. Muito obrigado vocês realmente ajudaram: D

    
por Eveready 07.08.2016 / 19:45

3 respostas

11

Essa é uma má ideia porque você está deliberadamente degradando seu RAID e o Resyncs pode falhar inesperadamente. É melhor conectar o novo disco ao sistema (então você tem n+1 disks) e então usar mdadm --replace para sincronizá-lo. Dessa forma, o RAID nunca se degrada no meio.

Você não precisa falhar / remover unidades para descobrir qual é qual. Você pode ver o número da função de um dispositivo em mdadm --examine , na saída mdstat [UUU] em números de função é [012] ; e você pode verificar o número de série da unidade com hdparm ou smartctl e comparar com o adesivo na própria unidade.

Para partições, talvez seja melhor usar o GPT atualmente em vez do MSDOS. Se você não estiver apenas substituindo discos, mas também atualizando-os em tamanho, talvez não tenha outra escolha, pois as partições MSDOS praticamente param em 2TB.

Pessoalmente, não faço isso. Então, e se os discos tiverem 3 anos de idade? Discos vivem muito mais do que isso, e novos discos morrem do mesmo jeito.

É muito mais importante testar seus discos regularmente (automatizados) e substituir discos assim que eles tiverem seu primeiro setor pendente / incorrigível / realocado, ler erros no autoteste ou outros problemas.

Ainda mais importante é ter backups de todos os dados que você não deseja perder.

Você também pode alternar para o RAID6 para obter mais redundância, mas o caso de dois discos que morrem ao mesmo tempo é altamente improvável, desde que você verifique se há erros ativamente. Não deixe sua reconstrução ser seu primeiro teste de leitura em anos.

    
por 07.08.2016 / 20:22
5

O primeiro passo é desnecessário e ainda não garante que o /dev/sdX permaneça estável o tempo todo (ou seja, que ele aponte para o mesmo dispositivo). Na pior das hipóteses, conectá-lo novamente aciona uma operação de sincronização de longa duração.

A abordagem melhor e confiável é trabalhar com números de série (S / N, SN) das unidades. Eles são impressos nas unidades e podem ser consultados no sistema.

Por exemplo, olhando para um sistema aleatório:

# cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sda2[0] sdb2[2]
      976245464 blocks super 1.2 [2/2] [UU]
      bitmap: 1/8 pages [4KB], 65536KB chunk

Então eu posso obter o número de série de - digamos - sda via:

# hdparm -i /dev/sda

/dev/sda:

 Model=SAMSUNG HD103UJ, FwRev=1AA01113, SerialNo=S13PJ0123456789

(eu editei o número de série real)

Também posso obter o número de série consultando os links simbólicos em /dev/disk/by-id :

# ls -l /dev/disk/by-id | grep 'sda$'
lrwxrwxrwx. 1 root root  9 2016-08-05 09:49 ata-SAMSUNG_HD103UJ_S13PJ0123456789 \
  -> ../../sda

Assim, posso anotar o número de série da unidade que quero substituir, desligar o sistema e substituir a unidade pelo número de série correspondente (que está impresso na etiqueta da unidade).

ProTip # 1: Ao adicionar uma nova unidade, escreva o número de série em uma etiqueta extra e coloque essa etiqueta naquele lado que esteja diretamente visível (por exemplo, o lado do conector).

Os links /dev/disk/by-id/... também são úteis ao adicionar o novo dispositivo ao RAID.

ProTip # 2: escolha as unidades de maneira heterogênea, ou seja, use modelos de fabricantes independentes , unidades que já possuem diferentes power-on -horas etc. Assim, você diminui a probabilidade de várias falhas devido a problemas sistemáticos.

ProTip # 3: Use um sistema de arquivos de soma de verificação como BTRFS ou ZFS. Além dos benefícios da soma de verificação, eles também suportam a substituição de uma unidade sem precisar removê-la primeiro.

    
por 07.08.2016 / 20:24
1

Não, eu não substituiria preventivamente os HDDs.

No seu caso, sugiro mudar para um sistema de arquivos RAID dedicado; minha queridinha pessoal é o ZFS, mas acho que o BTRFS também funcionaria.

Com o ZFS, você instalaria o novo HDD, o adicionaria ao seu pool como hot spare, deixaria o ZFS "scrub" (verificar automaticamente se havia erros) em seus HDDs regularmente e ativaria o hot spare quando você vir erros no scrub . Em seguida, o ZFS inicializará automaticamente e, quando isso for feito, você poderá extrair o defeito. Contanto que os HDs em seu pool não sejam o mesmo make / run, você pode ter certeza de que eles não falharão ao mesmo tempo (dependendo do seu nível de paranóia, é claro).

Da próxima vez, não é preciso dizer que você deve rotular os HDDs ao instalá-los para que eles possam ser encontrados sem removê-los ...;)

Se você fizer tudo isso em paralelo à sua solução existente (desde que seu caso tenha espaço suficiente para dois HDDs adicionais), você estará pronto para o futuro. Você pode migrar todos os seus dados para novos discos e usar seus discos antigos como sobressalentes para o futuro.

(N.B .: se você for ao ZFS, que foi usado apenas como exemplo aqui, por favor, procure no google "zfs ecc" e escolha sabiamente).

    
por 08.08.2016 / 10:46