序言

在使用惠普(HPE)服务器运行 Proxmox VE 时,硬件阵列卡(Smart Array Controller)通常会屏蔽底层的物理磁盘信息。 为了监控磁盘健康状态和配置阵列,我们需要安装 HPE 官方的 ssacli (Smart Storage Admin CLI) 工具。

此外,在不安装官方工具的情况下,我们也可以通过特定参数让 smartctl 穿透阵列卡直接读取物理硬盘的 SMART 信息。

bash
smartctl -a -d cciss,<N> /dev/sg<M>

方法一:Smartctl 穿透读取 SMART 信息

如果你只想查看硬盘的健康状况(如温度、通电时间、错误计数),而不需要配置阵列,通过 smartctl 穿透查询是最简单的方法,无需安装任何额外的驱动或工具。

命令格式

bash
smartctl -a -d cciss,<N> /dev/sg<M>
# 或者直接对逻辑卷对应的设备节点(视驱动模式而定)
smartctl -a -d cciss,<N> /dev/sda
  • -d cciss,<N>: 关键参数。告诉 smartctl 设备是 CCISS 类型(惠普阵列卡旧称),<N> 代表物理磁盘的索引号,从 0 开始。
  • /dev/sda: 你的阵列卡逻辑卷设备路径。

实际操作示例

假设系统识别到的阵列盘是 /dev/sda,你想查看第 5 块物理硬盘的信息:

bash
smartctl -a -d cciss,4 /dev/sda

TIP

提示:你可以写一个简单的循环脚本来扫描所有可能的 ID,找出所有物理盘:

bash
for i in {0..10}; do echo "=== Disk $i ==="; smartctl -i -d cciss,$i /dev/sda; done

方法二:安装 HPE ssacli 管理工具

ssacli 是惠普官方提供的命令行配置工具,功能非常强大,支持查看详细的阵列卡状态、电池状态、配置 RAID、扩容等操作。

1. 添加 HPE 软件源

导入其 GPG 公钥并创建源文件 /etc/apt/sources.list.d/hp-mcp.list

bash
curl -fsSL https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub | gpg --dearmor > /etc/apt/keyrings/hpePublicKey2048_key1.gpg
chmod 0644 /etc/apt/keyrings/hpePublicKey2048_key1.gpg

echo "deb [signed-by=/etc/apt/keyrings/hpePublicKey2048_key1.gpg] https://downloads.linux.hpe.com/SDR/repo/mcp $(grep -Po '^VERSION_CODENAME=\K.*' /etc/os-release)/current non-free" > /etc/apt/sources.list.d/hp-mcp.list

2. 更新并安装

bash
apt update && apt install -y ssacli

TIP

注意:运行 apt update 时可能会看到关于 non-free-firmware 的提示(Debian 12 的新策略),这对 ssacli 的安装没有影响,可以忽略。


ssacli 常用命令指南

安装完成后,可以直接在终端输入 ssacli 进入交互模式,或者直接在命令行执行。

1. 查看整体状态

这是最常用的命令,用于列出所有控制器、阵列和逻辑卷的概览。

bash
ssacli ctrl all show config

2. 查看详细信息

  • 列出所有控制器

    bash
    ssacli ctrl all show
  • 查看特定插槽(Slot)控制器的详细配置(假设控制器在 Slot 0):

    bash
    ssacli ctrl slot=0 show config detail
  • 查看所有物理硬盘状态

    bash
    ssacli ctrl slot=0 physicaldrive all show

    输出示例:

    text
    physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SATA HDD, 10 TB, OK)
    physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SATA HDD, 10 TB, OK)
  • 查看逻辑卷(RAID)状态

    bash
    ssacli ctrl slot=0 logicaldrive all show

3. 阵列卡缓存与电池状态

检查缓存模块是否有电,以及电池(超级电容)是否健康。

bash
ssacli ctrl slot=0 show status

4. 常用简写语法

ssacli 的命令结构通常为:<目标> <命令> [参数]

  • 目标 (Target)

    • ctrl all / ctrl slot=0 (控制器)
    • physicaldrive all / pd 1I:1:1 (物理盘)
    • logicaldrive all / ld 1 (逻辑盘)
  • 命令 (Command)

    • show: 显示信息
    • modify: 修改配置(如开启 / 关闭缓存)
    • rescan: 重新扫描设备

5. 高级操作示例

  • 开启 SSD 智能路径 (SSD Smart Path)(适用于 SSD 阵列):

    bash
    ssacli ctrl slot=0 array A modify ssdsmartpath=enable
  • 点亮硬盘指示灯(定位物理硬盘时非常有用):

    bash
    ssacli ctrl slot=0 pd 1I:1:1 modify led=on
    # 关闭
    ssacli ctrl slot=0 pd 1I:1:1 modify led=off

参考资料

//posts/pve/Proxmox(PVE)_安装HP_ssacli.html