Instale o ssacli no Debian 12/13 e no Proxmox, veja o estado do RAID da HPE Smart Array, ache o disco com falha, acompanhe o rebuild e crie alertas.

Para que serve

Na maioria dos servidores da E-Consulters, os SSDs de sistema ficam em RAID por hardware, montado pela controladora HPE Smart Array. O sistema operacional enxerga só um disco lógico (por exemplo, /dev/sda), e quem cuida do espelho é a controladora. Por isso cat /proc/mdstat e zpool status não mostram nada sobre esses discos. Este artigo ensina a verificar o RAID da HPE Smart Array com o ssacli no Debian 12/13 e no Proxmox VE: instalar a ferramenta, ler o estado da controladora e dos discos, achar o disco com falha, acompanhar a reconstrução e receber alertas.

Os NVMe não passam pela controladora. Eles ficam sempre em RAID por software (mdadm ou ZFS espelhado) e não aparecem no ssacli. Para eles, veja os artigos "RAID por software com mdadm" e "Armazenamento no Proxmox: ZFS espelhado nos NVMe ou LVM-thin?".

Pré-requisitos

  • Acesso root ao Debian 12/13 ou ao host Proxmox VE 8.x/9.x (se o Windows ou outro sistema roda em VM, a verificação é feita no host).
  • Acesso ao console remoto: Central do Cliente → Serviços → clique no servidor → Console.
  • Backup recente fora do servidor. RAID protege contra falha de disco, não contra exclusão, ransomware ou erro de comando.

1. Instalar o ssacli pelo repositório oficial da HPE

O ssacli faz parte do Management Component Pack (MCP), publicado pela HPE no seu Software Delivery Repository (SDR). Use o nome da versão do Debian: bookworm para Debian 12 e Proxmox VE 8, trixie para Debian 13 e Proxmox VE 9 (confira com cat /etc/os-release).

apt install -y curl gnupg
curl -fsSL https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub | gpg --dearmor > /tmp/hpe1.gpg
curl -fsSL https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key2.pub | gpg --dearmor > /tmp/hpe2.gpg
cat /tmp/hpe1.gpg /tmp/hpe2.gpg > /usr/share/keyrings/hpePublicKey.gpg

# troque trixie por bookworm no Debian 12 / Proxmox VE 8
echo "deb [signed-by=/usr/share/keyrings/hpePublicKey.gpg] https://downloads.linux.hpe.com/SDR/repo/mcp trixie/current non-free" \
  > /etc/apt/sources.list.d/hpe-mcp.list

apt update
apt install -y ssacli ssaducli smartmontools

O pacote ssa (interface web) também existe no repositório, mas não é necessário. Confirme a instalação com ssacli version.

2. Ver o status da controladora HPE Smart Array

ssacli ctrl all show status

Saída esperada (o modelo varia):

Smart Array P408i-a SR Gen10 in Slot 0 (Embedded)
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK

Anote o número do slot (aqui, 0): ele é usado nos próximos comandos. Se o servidor não tiver módulo de cache, aparece Not Configured no cache, o que é normal.

3. Ver discos lógicos e físicos

ssacli ctrl all show config
Smart Array P408i-a SR Gen10 in Slot 0 (Embedded)
   Array A (Solid State SATA, Unused Space: 0 MB)
      logicaldrive 1 (223.54 GB, RAID 1, OK)
      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SATA SSD, 240 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SATA SSD, 240 GB, OK)

Cada logicaldrive é um volume RAID; cada physicaldrive é um SSD, identificado por porta:caixa:baía. Para ver só o estado:

ssacli ctrl slot=0 ld all show status
ssacli ctrl slot=0 pd all show status
EstadoO que significa
OKNormal.
Interim Recovery Mode (disco lógico)O RAID perdeu um disco e está funcionando sem redundância.
Recovering, NN% complete (disco lógico)Reconstrução (rebuild) em andamento.
Failed (disco físico)O disco saiu do RAID.
Predictive Failure (disco físico)O disco ainda funciona, mas a controladora prevê falha. Trate como disco a trocar.
Rebuilding (disco físico)Disco novo recebendo os dados.

4. Identificar o disco com falha (baía e número de série)

ssacli ctrl slot=0 pd all show detail | grep -E 'physicaldrive|Status|Serial Number|Model|Usage remaining|Current Temperature'
ssacli ctrl slot=0 pd 1I:1:2 show detail

Anote, para o disco com problema, o identificador da baía (ex.: 1I:1:2, baía 2), o número de série e o modelo. Se o disco morreu de vez e não informa o número de série, anote a baía dele e o número de série do disco que continua bom. Para SSDs, o campo Usage remaining mostra a vida útil restante.

No Linux, o disco lógico aparece com o modelo LOGICAL VOLUME: confira com lsblk -d -o NAME,MODEL,SIZE. No Proxmox, em Node → Disks, esse volume costuma aparecer com SMART "UNKNOWN": isso é esperado, porque a leitura SMART precisa passar pela controladora (passo 6).

5. Acompanhar o rebuild

Com a recuperação automática (padrão nas controladoras HPE), a reconstrução começa sozinha quando o disco substituto é instalado. Acompanhe:

watch -n 30 'ssacli ctrl slot=0 ld all show status'

O servidor continua em uso durante o rebuild, mas o desempenho de disco pode cair. Para dar prioridade ao rebuild fora do horário de pico: ssacli ctrl slot=0 modify rebuildpriority=high (volte para medium depois, se preferir).

Não use comandos de alteração (delete, create, modify em discos lógicos) para "consertar" o RAID: eles podem apagar o volume. Para diagnosticar, bastam os comandos show.

6. Ler o SMART dos discos atrás da controladora

O smartctl acessa cada disco físico pela opção -d cciss,N, em que N é o índice do disco na controladora (0, 1, 2...). A documentação do smartmontools indica usar o nó genérico da controladora (/dev/sgN); em muitos servidores o próprio /dev/sda também funciona.

apt install -y lsscsi
lsscsi -g                      # a linha da controladora (RAID/storage) mostra o /dev/sgN
smartctl -a -d cciss,0 /dev/sg0
smartctl -a -d cciss,1 /dev/sg0

O índice N nem sempre corresponde ao número da baía. Compare o Serial Number do smartctl -i com o do ssacli antes de concluir qual disco é qual.

7. Receber alertas: script com systemd timer ou cron

Crie /usr/local/sbin/verifica-raid-hpe:

#!/bin/sh
# Verifica a HPE Smart Array e avisa se algo não estiver OK
ESTADO=/var/lib/hpe-raid
mkdir -p "$ESTADO"
CONFIG=$(/usr/sbin/ssacli ctrl all show config 2>&1)
STATUS=$(/usr/sbin/ssacli ctrl all show status 2>&1)

PROBLEMAS=$( { printf '%s\n' "$CONFIG" | grep -E 'logicaldrive|physicaldrive' | grep -vE 'OK\)[[:space:]]*$'
               printf '%s\n' "$STATUS" | grep 'Status:' | grep -vE 'Status: (OK|Not Configured)'; } )
printf '%s' "$CONFIG" | grep -q logicaldrive || PROBLEMAS="ssacli não listou discos: $CONFIG"

QTD=$(printf '%s' "$PROBLEMAS" | grep -c .)
echo "$QTD" > "$ESTADO/problemas"
if [ "$QTD" -gt 0 ]; then
  MSG="RAID HPE com problema em $(hostname):
$PROBLEMAS"
  logger -t raid-hpe "$MSG"
  printf '%s\n' "$MSG" | mail -s "RAID HPE com problema em $(hostname)" root 2>/dev/null
  [ -x /usr/local/bin/alerta-telegram ] && /usr/local/bin/alerta-telegram "$MSG"
fi
exit 0
chmod 700 /usr/local/sbin/verifica-raid-hpe

Crie /etc/systemd/system/verifica-raid-hpe.service:

[Unit]
Description=Verifica o RAID da HPE Smart Array

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/verifica-raid-hpe

E /etc/systemd/system/verifica-raid-hpe.timer:

[Unit]
Description=Verifica o RAID HPE a cada hora

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now verifica-raid-hpe.timer
systemctl start verifica-raid-hpe.service
cat /var/lib/hpe-raid/problemas     # 0 = tudo OK

Prefere cron? Use /etc/cron.d/verifica-raid-hpe com a linha 0 * * * * root /usr/local/sbin/verifica-raid-hpe. O envio usa o mail (no Proxmox VE 8.1+, e-mail para root vai para Datacenter → Notifications) e, se existir, o script de Telegram do artigo de alertas. Veja também o artigo "Como agendar tarefas no Linux com cron e com systemd timers".

Zabbix

Com o Zabbix Agent 2 instalado (veja o artigo próprio), o agente lê o arquivo gerado pelo script, sem precisar rodar o ssacli como root. No host, crie um item do tipo Zabbix agent, tipo de informação numérico, com a chave:

vfs.file.contents[/var/lib/hpe-raid/problemas]

Depois crie um trigger como last(/SEU-HOST/vfs.file.contents[/var/lib/hpe-raid/problemas])>0. Para saber se o script parou de rodar, crie um segundo item com a chave vfs.file.time[/var/lib/hpe-raid/problemas,modify] e um trigger que dispare quando now()-last(...) passar de 10800 (3 horas). Se o agente não tiver permissão de leitura, rode chmod 755 /var/lib/hpe-raid.

8. Quando o sistema não sobe

O console da Central do Cliente (Serviços → clique no servidor → Console) mostra só a tela remota do servidor, não as páginas de status de storage do iLO. Mesmo assim ele ajuda quando o sistema não inicializa:

  • Reinicie pelo menu de energia da janela do console e observe a tela de inicialização: a controladora Smart Array exibe ali avisos sobre discos com falha ou volume degradado.
  • Se o sistema chegar a subir, rode os comandos ssacli dos passos 2 a 4 pelo próprio console.
  • Se não subir, anote (ou fotografe) a mensagem da tela e abra um ticket: o suporte da E-Consulters consulta o estado da controladora e dos discos pelo lado do hardware.

Como saber se funcionou

  • ssacli ctrl all show status mostra OK na controladora e no cache.
  • ssacli ctrl all show config mostra OK em todos os logicaldrive e physicaldrive.
  • systemctl list-timers verifica-raid-hpe.timer mostra a próxima execução e o arquivo /var/lib/hpe-raid/problemas contém 0.

Problemas comuns

  • No controllers detected: o servidor pode ter uma controladora da linha MR (Gen10 Plus/Gen11), que usa o storcli (também disponível no repositório MCP), ou os SSDs estão ligados direto, sem RAID por hardware. Nesse último caso, confira cat /proc/mdstat.
  • Erro de assinatura no apt update: a chave não foi gravada em /usr/share/keyrings/hpePublicKey.gpg. Repita os comandos do passo 1.
  • smartctl não lê o disco: teste outro nó (/dev/sda ou outro /dev/sgN) e confira se o índice N existe.
  • Disco em Predictive Failure com o RAID OK: o espelho ainda está íntegro, mas o disco deve ser trocado. Garanta o backup.

Perguntas frequentes

Por que o mdadm não mostra o RAID dos SSDs?

Porque o RAID é feito pela controladora HPE Smart Array. O Linux só vê o volume pronto; o estado do espelho é consultado com o ssacli.

Os NVMe aparecem no ssacli?

Não. Os NVMe ficam fora da controladora e são espelhados por software (mdadm ou ZFS).

Consigo ver o RAID pela interface web do iLO?

Não. O console da Central do Cliente dá acesso só à tela remota, sem as páginas de storage e de log do iLO. Use o ssacli no sistema ou abra um ticket se o servidor não subir.

Preciso fazer algo depois da troca do disco?

Normalmente não: o rebuild começa sozinho. Acompanhe até o disco lógico voltar a OK.

Posso colocar ZFS sobre o disco lógico da controladora?

Não é recomendado. O ZFS precisa de acesso direto aos discos para detectar e corrigir erros.

Leitura complementar

Precisa de ajuda?

Para a troca física de um disco, abra um ticket informando a baía (ex.: 1I:1:2) e o número de série do disco com falha, junto com a saída de ssacli ctrl all show config. Se puder, anexe o relatório de diagnóstico gerado com ssaducli -f /root/adu-report.zip. Com RAID por hardware redundante (RAID 1, 5, 6 ou 10), a troca é feita a quente, sem desligar o servidor, e a controladora reconstrói o volume sozinha. Em RAID 0 não há redundância: o disco com falha leva junto os dados do volume, que precisam ser restaurados do backup.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também