Como Prever Falhas de Discos com smartctl e nvme-cli em Servidores Linux

Como Prever Falhas de Discos com smartctl e nvme-cli em Servidores Linux

A Falsa Ilusão da Falha Repentina de Hardware

Se perguntares a um administrador de sistemas inexperiente como é que um disco avaria, ele costuma descrever um acontecimento imprevisto e sem aviso prévio: “O servidor estava a funcionar perfeitamente e, de repente, às três da manhã, o disco entrou em modo de só-leitura e a base de dados caiu!”

Mas na prática da engenharia de sistemas, os discos de armazenamento quase nunca morrem de um segundo para o outro. Semanas antes de um SSD NVMe bloquear ou de um disco mecânico sofrer uma colisão de cabeças, o equipamento físico emite dezenas de sinais microscópicos de alerta:

  • O motor interno de correção de erros (ECC) luta para corrigir bits corrompidos.
  • O contador de setores pendentes começa a acumular erros temporários.
  • A área de células de reserva da memória flash começa a esgotar-se rapidamente.
  • O disco entra em estrangulamento térmico repetido devido a picos anormais de calor.

Se os teus servidores estiverem sob planos proativos de manutenção, sabes que estes dados são analisados de forma contínua. Esperar que o kernel Linux comece a despejar erros de I/O error no terminal significa que já chegaste tarde e que estás a entrar em pânico de recuperação de desastres.

CICLO DE DEGRADAÇÃO FÍSICA: A JANELA DE AVISO

  • Disco Saudável → Bits Corrompidos (ECC) → Primeiros Setores Realocados (Semana 1: aviso smartctl)
  • Avaria Catastrófica → Erros de Leitura I/O → Células de Reserva no Fim (Servidor Offline) (Kernel monta Read-Only) (Semana 3: alerta smartd)

Ao aprenderes a dominar as ferramentas smartctl e nvme-cli no Debian, prevês falhas com semanas de antecedência e substituis o hardware com calma durante uma janela programada sem que os teus clientes sintam qualquer interrupção.

Dominar o smartctl: Diagnóstico Rápido de Discos SATA e SSDs Clássicos

No ecossistema Debian e Ubuntu, o pacote oficial para aceder aos registos de telemetria dos discos é o smartmontools. Instalas a ferramenta através da consola:

sudo apt-get update
sudo apt-get install -y smartmontools nvme-cli

Para inspecionares a saúde de um disco SATA (por exemplo /dev/sda), executas a leitura dos atributos:

sudo smartctl -A /dev/sda

O comando apresenta uma tabela detalhada com os registos internos do controlador. Quando estiveres a avaliar a fiabilidade do equipamento, ignora atributos inofensivos como as horas de funcionamento e foca-te exclusivamente nos Cinco Críticos:

OS CINCO ATRIBUTOS S.M.A.R.T. CRÍTICOS

  • ID# NOME_ATRIBUTO
  • FLAG VALOR_RAW GRAVIDADE
  • 5 Reallocated_Sector_Ct 0x0033 0
  • CRÍTICO: Qualquer valor > 0 significa setores mortos!
  • 187 Reported_Uncorrect 0x0032 0
  • CRÍTICO: Erros que o hardware não conseguiu corrigir.
  • 196 Reallocated_Event_Count 0x0032 0: 197 Current_Pending_Sector 0x0012 0
  • ALTO: Tentativas de remapeamento.: CRÍTICO: Setores instáveis que aguardam confirmação de falha.
  • 198 Offline_Uncorrectable 0x0010 0
  • CRÍTICO: Setores danificados de forma permanente. Troca o disco!

Se o atributo Current_Pending_Sector ou Reallocated_Sector_Ct mostrar qualquer valor superior a zero, o disco começou a degradar-se fisicamente. Planeia a substituição do hardware de imediato.

Podes ainda disparar um autoteste de diagnóstico de hardware sem desligar o servidor:

# Executa um teste rápido em segundo plano (~2 minutos)
sudo smartctl -t short /dev/sda

# Consulta o resultado do teste
sudo smartctl -l selftest /dev/sda

Numa infraestrutura de alojamento gerido, a execução periódica destes testes impede perdas silenciosas de dados.

Avaliar a Saúde de SSDs NVMe com o Utilitário nvme-cli

Os discos NVMe ligam-se diretamente ao barramento PCI Express e não usam a interface clássica dos discos SATA. Para obteres leituras detalhadas e fiáveis, deves recorrer ao comando nativo nvme-cli.

Corre o comando contra o teu disco NVMe:

sudo nvme smart-log /dev/nvme0n1

O terminal mostra os dados de desgaste das memórias flash:

Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 318 K (45 Celsius)
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 12%
data_units_read                     : 34,120,400 (17.46 TB)
data_units_written                  : 29,840,110 (15.27 TB)
power_cycles                        : 14
power_on_hours                      : 3,890
unsafe_shutdowns                    : 2
media_errors                        : 0
num_err_log_entries                 : 0
  • ANÁLISE DE SAÚDE DO TEU DISCO NVMe
  1. percentage_used: 12%
  • Gastaste 12% do limite de escrita em garantia de fábrica (TBW).
  1. available_spare: 100%
  • As células de reserva de fábrica estão intactas a 100%.
  1. critical_warning: 0
  • Zero indica que o controlador e a temperatura estão saudáveis.
  1. media_errors: 0
  • Zero erros físicos irrecuperáveis. O disco está em perfeito estado!

Se o valor de percentage_used se aproximar dos 90% ou se o available_spare cair abaixo do limite recomendado, o disco está a ficar sem células de reserva para distribuir o desgaste e deves substituí-lo rapidamente.

Automatizar Alertas com o Daemon smartd no Linux

Fazer verificações manuais no terminal todos os dias não é prático. O daemon smartd corre em segundo plano através do systemd, executa testes regulares e avisa-te por email ou webhook no minuto exato em que um disco reporta um problema.

Configura o ficheiro /etc/smartd.conf:

# /etc/smartd.conf - Monitorização Automática

# Monitoriza todos os discos SATA do servidor:
# -a: Monitoriza todos os atributos SMART
# -o on: Ativa testes automáticos regulares
# -s: Teste curto diário às 02:00, teste longo aos domingos às 03:00
# -m: Envia email para o administrador
# -M exec: Executa um script de notificação personalizado
DEVICESCAN -d removable -n standby -a -o on -S on \
  -s (S/../.././02|L/../../7/03) \
  -m noc-alertas@webxtek.com \
  -M exec /usr/local/bin/notificar-avaria-disco.sh

# Monitoriza explicitamente o disco NVMe:
/dev/nvme0n1 -d nvme -a -m noc-alertas@webxtek.com -M exec /usr/local/bin/notificar-avaria-disco.sh

Cria um script simples para enviar o alerta diretamente para um canal interno da tua equipa:

#!/bin/bash
# /usr/local/bin/notificar-avaria-disco.sh
DISCO="$SMARTD_DEVICE"
MENSAGEM="$SMARTD_MESSAGE"
TIPO_FALHA="$SMARTD_FAILTYPE"

curl -s -X POST -H 'Content-type: application/json' \
  --data "{\"text\":\"🚨 *Alerta de Falha de Disco em $(hostname)*\\n*Dispositivo:* \`$DISCO\`\\n*Gravidade:* \`$TIPO_FALHA\`\\n*Detalhes:* $MENSAGEM\"}" \
  https://webhook.interna.rede/alertas/hardware

Ativa o serviço no sistema operativo:

sudo systemctl enable --now smartd
sudo systemctl status smartd

Podes consultar outros modelos de automação e scripts no repositório do GitHub.

Boas Práticas de Engenharia: Scrubbing de RAID e Limpeza Criptográfica

Para assegurares que a infraestrutura dos teus servidores cumpre os padrões rigorosos da WebXtek, segue estas três regras essenciais:

  1. Agenda Verificações Mensais de RAID (Scrubbing): Mesmo que os discos pareçam saudáveis, podem ocorrer alterações silenciosas de bits (bit rot) em ficheiros antigos. Força uma leitura completa de todos os blocos do teu array RAID com este comando:
    echo check > /sys/block/md0/md/sync_action
  2. Monitoriza a Temperatura dos Discos: SSDs NVMe que trabalhem continuamente acima dos 70°C degradam as células de memória muito mais depressa. Garante que os dissipadores estão bem fixos e que o fluxo de ar no chassis é suficiente.
  3. Limpeza Segura Antes da Devolução em Garantia: Se precisares de enviar um disco avariado para substituição pela garantia, executa uma limpeza criptográfica instantânea para que ninguém consiga recuperar os teus dados:
    sudo nvme format /dev/nvme0n1 --namespace-id=1 --ses=2

Se precisas de rever a fiabilidade dos teus servidores e garantir que os dados da tua empresa estão protegidos contra qualquer falha física, os nossos especialistas de consultoria técnica ajudam a desenhar rotinas de monitorização sem falhas.

Na prática, aplicas exatamente estes padrões operacionais em setores exigentes como provedores de cloud computing e iaas e especialistas em devops e arquitetura cloud. Quando alinhas a tua estrutura através de alojamento gerido para websites e aplicações e consultoria técnica antes de construir, transformas boas práticas técnicas numa vantagem competitiva real e mensurável para o teu negócio.

[+] [ INDEX_DIRECTORY ] 13 tópicos ▼
[ SYSTEM.FAQ ]

Perguntas Frequentes

O que é a tecnologia S.M.A.R.T. e como deteta a degradação de um disco?

A tecnologia S.M.A.R.T. é um subsistema interno de diagnóstico presente nos discos modernos. Monitoriza continuamente o desgaste mecânico, setores realocados, a integridade da memória flash e erros de leitura não corrigidos antes de o disco falhar por completo.

Qual é a métrica S.M.A.R.T. mais perigosa num disco SATA?

O Reallocated Sector Count (Atributo 5) e o Current Pending Sector Count (Atributo 197). Quando o disco começa a mover setores danificados para a área de reserva, significa que o prato magnético ou a memória flash estão a degradar-se fisicamente e que a avaria total é iminente.

Como se avalia a saúde de um SSD NVMe com o nvme-cli?

Os discos NVMe não usam os atributos clássicos dos discos SATA. Através do utilitário nvme-cli e smartctl, consultas o log nativo do protocolo NVMe, que mostra o Percentage Used (desgaste face à vida útil declarada), Available Spare e Media Errors.

O daemon smartd consegue enviar alertas automáticos sem instalar agentes externos pesados?

Sim. O smartd corre nativamente em segundo plano no Debian através do systemd. Executa testes curtos e longos agendados e envia um email ou notificação por webhook no exato instante em que um disco regista o primeiro erro físico.

> INICIAR_PROJETO

Precisa de um website que transmita confiança, apareça na pesquisa e dê mais força à sua presença digital? Comece a conversa aqui.