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.
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
| Estado | O que significa |
|---|---|
OK | Normal. |
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).
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
ssaclidos 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 statusmostraOKna controladora e no cache.ssacli ctrl all show configmostraOKem todos oslogicaldriveephysicaldrive.systemctl list-timers verifica-raid-hpe.timermostra a próxima execução e o arquivo/var/lib/hpe-raid/problemascontém0.
Problemas comuns
No controllers detected: o servidor pode ter uma controladora da linha MR (Gen10 Plus/Gen11), que usa ostorcli(também disponível no repositório MCP), ou os SSDs estão ligados direto, sem RAID por hardware. Nesse último caso, confiracat /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. smartctlnão lê o disco: teste outro nó (/dev/sdaou outro/dev/sgN) e confira se o índiceNexiste.- Disco em
Predictive Failurecom o RAIDOK: 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.
