Veja como verificar o RAID por software com mdadm, receber alertas por e-mail e trocar um disco com defeito no Debian e no Proxmox sem perder dados.
Para que serve
O RAID por software com mdadm, nativo do Linux, espelha os dados entre dois ou mais discos. Em RAID 1, se um disco falhar, o servidor continua funcionando com o outro, mas sem proteção até que o disco seja trocado e o espelho reconstruído. Este artigo mostra como conferir o estado do RAID, receber aviso por e-mail quando algo der errado e conduzir a troca de um disco.
zpool replace (veja "Armazenamento no Proxmox: ZFS espelhado nos NVMe ou LVM-thin?"). Para descobrir qual é o seu caso, rode cat /proc/mdstat, zpool status e lsblk -d -o NAME,MODEL (um disco com modelo LOGICAL VOLUME é da controladora).Pré-requisitos
- Acesso root (SSH ou console IPMI/iLO).
- Pacotes
mdadm,smartmontoolsegdiskinstalados (apt install smartmontools gdisk). - Backup recente e testado. RAID protege contra falha de disco, não contra exclusão acidental, ransomware ou erro de comando.
Verificar o estado do RAID por software com mdadm
cat /proc/mdstat
mdadm --detail /dev/md0
Em /proc/mdstat, cada array mostra algo como [2/2] [UU]. Cada U é um disco ativo. [2/1] [U_] ou [_U] significa que um membro está faltando ou falhou; um (F) ao lado do nome do disco indica falha. No mdadm --detail, o campo State deve ser clean ou active; degraded pede ação.
Confira também a saúde de cada disco físico, antes que ele saia do RAID:
smartctl -H /dev/sda
smartctl -a /dev/sda | grep -iE 'realloc|pending|uncorrect|wear|media'
smartctl -a /dev/nvme0n1
Receber alertas por e-mail
O Debian já roda o monitor do mdadm (mdmonitor.service) e uma verificação mensal dos arrays. Para receber os avisos, defina o destinatário em /etc/mdadm/mdadm.conf:
MAILADDR voce@suaempresa.com.br
O servidor precisa conseguir enviar e-mail (por exemplo, com postfix ou msmtp configurado com um relay autenticado; veja também o artigo «Como receber alertas do servidor no Telegram, e-mail ou WhatsApp»). Teste com:
mdadm --monitor --scan --test --oneshot
Passo a passo: trocar um disco com defeito
Nos exemplos, /dev/sda é o disco bom e /dev/sdb é o que falhou (em um par de NVMe, os nomes seriam algo como /dev/nvme0n1 e /dev/nvme1n1, com partições nvme1n1p1, p2...), com as partições sdb1 (EFI), sdb2 (em md0) e sdb3 (em md1). Confirme os nomes no seu servidor: trocar as letras pode destruir o disco bom.
1. Identificar o disco pelo número de série
lsblk -o NAME,SIZE,MODEL,SERIAL
ls -l /dev/disk/by-id/ | grep -v part
Anote o modelo e o número de série do disco com defeito e também do disco bom.
2. Retirar o disco dos arrays
Marque como falho cada partição que ainda aparece ativa e remova-as:
mdadm --manage /dev/md0 --fail /dev/sdb2
mdadm --manage /dev/md0 --remove /dev/sdb2
mdadm --manage /dev/md1 --fail /dev/sdb3
mdadm --manage /dev/md1 --remove /dev/sdb3
3. Solicitar a troca física
Abra um ticket informando o servidor, o número de série do disco com defeito, o número de série do disco que deve permanecer e a saída de cat /proc/mdstat. O suporte combina com você os próximos passos da troca.
4. Copiar a tabela de partições para o disco novo
Depois da troca, confirme com lsblk qual é o disco novo (sem partições). Para tabelas GPT, copie a tabela do disco bom para o novo e gere identificadores únicos:
sgdisk /dev/sda --replicate=/dev/sdb
sgdisk --randomize-guids /dev/sdb
Atenção à ordem: o disco ao final do comando (/dev/sda) é a origem; o que vem depois de --replicate= é o destino, que será sobrescrito. Para tabelas MBR (antigas), use sfdisk -d /dev/sda | sfdisk /dev/sdb.
5. Adicionar as partições ao RAID
mdadm --manage /dev/md0 --add /dev/sdb2
mdadm --manage /dev/md1 --add /dev/sdb3
watch -n 5 cat /proc/mdstat
A reconstrução (resync/recovery) roda em segundo plano, com o servidor em uso. Em discos grandes pode levar horas. O kernel limita a velocidade para não prejudicar a produção; se quiser acelerar fora do horário de pico:
sysctl -w dev.raid.speed_limit_min=100000
6. Tornar o disco novo inicializável
- Boot BIOS (legado):
grub-install /dev/sdb - Boot UEFI: a partição EFI normalmente não fica dentro do RAID. Copie a do disco bom para a do disco novo e reinstale o GRUB:
Confira nodd if=/dev/sda1 of=/dev/sdb1 bs=4M grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian /dev/sdb efibootmgr -vefibootmgrse há entradas de boot para os dois discos.
Como saber se funcionou
cat /proc/mdstatvolta a mostrar[UU]em todos os arrays.mdadm --detail /dev/md0mostraState : cleane os dois discos comoactive sync.- Opcional, em janela de manutenção: desative temporariamente o disco antigo no BIOS ou na ordem de boot e confirme que o servidor sobe pelo disco novo.
Problemas comuns
mdadm: Cannot open /dev/sdb2: Device or resource busy: a partição ainda pertence a outro array ou ao LVM. Confira comlsblkecat /proc/mdstat.- Disco novo maior que o antigo: não tem problema; a cópia de partições usa o tamanho do disco bom e o espaço extra fica livre.
- Disco novo menor (mesmo nominalmente igual): a cópia da tabela falha ou a partição não cabe. Informe no ticket para que seja usado um disco de capacidade igual ou maior.
- Array aparece como
md127após o reinício: atualize omdadm.confcommdadm --detail --scane rodeupdate-initramfs -u. - Reconstrução parou com erro de leitura no disco bom: pare imediatamente e garanta o backup. O disco que restou também pode estar falhando.
Para entender os níveis de RAID, veja também o artigo «RAID 0, 1, 5 e 10: o que é cada um e onde entra o ZFS». Para acompanhar o desgaste dos discos antes da falha, veja «Como monitorar a saúde do disco e a temperatura do servidor (smartd, NVMe e IPMI)».
Perguntas frequentes
Como saber se o RAID mdadm está degradado?
Rode cat /proc/mdstat. Se aparecer [U_] ou [_U], ou um (F) ao lado de um disco, o array está degradado. O mdadm --detail mostra degraded no campo State.
O servidor continua funcionando com um disco só?
Sim, em RAID 1 o servidor segue no ar com o disco que restou, mas sem nenhuma proteção. Troque o disco com defeito o quanto antes e confira o backup enquanto isso.
Quanto tempo demora a reconstrução do RAID?
Depende do tamanho dos discos e do uso do servidor; em discos grandes pode levar horas. Acompanhe com watch cat /proc/mdstat e, fora do horário de pico, aumente dev.raid.speed_limit_min.
Os SSDs de sistema também usam mdadm?
Na maioria dos servidores da E-Consulters, não: os SSDs de sistema ficam no RAID por hardware da controladora HPE Smart Array e são verificados com o ssacli. Os NVMe é que ficam sempre em RAID por software.
RAID substitui backup?
Não. O RAID protege contra a falha de um disco, mas copia para o espelho, na hora, qualquer exclusão, corrupção ou criptografia por ransomware.
Leitura complementar
Precisa de ajuda?
Para a troca física de um disco, abra um ticket com o número de série do disco com defeito e a saída de cat /proc/mdstat e smartctl -a.
