🛠️问题描述

最近有一台服务器操作时一直报IO错误,怀疑硬盘故障,但本人不在现场,看不到哪块磁盘故障,我们可以借助megacli工具去查看。

megacli 工具是由 Broadcom(原 LSI)提供的专有 RAID 管理工具,通常需要手动下载并安装。

LSI(现在属于 Broadcom)确实只提供 RPM 格式的 MegaCLI 安装包,而 Debian/Ubuntu(包括 Proxmox)默认不支持 RPM。所以我们需要借助 alien 工具将其转换为 .deb 格式。

下面是完整的操作流程:

🛠️ 在 Debian/Ubuntu/Proxmox 上安装 MegaCLI 的步骤

1. 安装转换工具 alien

apt update
apt install alien

2. 下载 MegaCLI 的 RPM 包

你可以从 Broadcom 官方网站下载,例如:

下载后假设文件名为:MegaCLI-8.07.14-1.noarch.rpm

3. 使用 alien 转换为 .deb

alien -k --scripts MegaCLI-8.07.14-1.noarch.rpm

这会生成一个 .deb 文件,例如:megacli_8.07.14-1_all.deb

4. 安装 .deb

dpkg -i megacli_8.07.14-1_all.deb

5. 运行 MegaCLI

cd /opt/megaraid
./MegaCli64 -AdpAllInfo -aAll

你也可以将它软链接到系统路径,方便调用:

ln -s /opt/megaraid/MegaCli64 /usr/local/bin/megacli

✅ 安装成功后可以执行的常用命令

功能 命令
查看所有 RAID 控制器信息 megacli -AdpAllInfo -aAll
查看所有物理磁盘状态 megacli -PDList -aAll
查看逻辑磁盘信息 megacli -LDInfo -Lall -aAll
查看阵列是否降级 megacli -LDGetProp -Degraded -aAll

✅遇到的问题

root@pve:/opt/MegaRAID/MegaCli# ./MegaCli64 -AdpAllInfo -aAll ./MegaCli64: 

error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

root@pve:/opt/MegaRAID/MegaCli# apt install libncurses5 

Error: Unable to locate package libncurses5

出现这个错误是因为在较新的 Debian 或 Proxmox 系统中,libncurses5 已被移除或替换为更新版本(如 libncurses6),而 MegaCLI 仍然依赖旧的 libncurses.so.5。我们可以通过以下几种方式解决这个兼容性问题:

备注:我使用下面方法二临时解决

✅ 方法一:安装兼容库 libncurses5(来自旧版本)

你可以手动下载旧版本的 .deb 包并安装:

  1. 下载适用于你的架构的 libncurses5 包(通常是 amd64):

    wget http://ftp.us.debian.org/debian/pool/main/n/ncurses/libncurses5_6.1+20181013-2+deb10u2_amd64.deb
    
  2. 安装该包:

    dpkg -i libncurses5_6.1+20181013-2+deb10u2_amd64.deb
    
  3. 验证是否成功:

    ldconfig -p | grep libncurses.so.5
    

✅ 方法二:使用软链接“欺骗” MegaCLI(仅限临时解决)

如果你已经有 libncurses.so.6,可以创建一个软链接:

ln -s /lib/x86_64-linux-gnu/libncurses.so.6 /lib/x86_64-linux-gnu/libncurses.so.5

⚠️ 注意:这种方式不保证稳定性,但在很多情况下可以让 MegaCLI 正常运行。


🛠️实际运行结果展示

root@pve:/opt/MegaRAID/MegaCli# ./MegaCli64 -AdpAllInfo -aAll

MegaCLI 输出非常关键,它揭示了你当前 RAID 控制器(PERC 6/i Integrated)和磁盘阵列的健康状况

⚠️ RAID 状态摘要

项目 状态
虚拟磁盘(VD)数量 1
虚拟磁盘状态 Degraded(降级)
物理磁盘数量 4
Critical(临界)磁盘 3 块
Failed(故障)磁盘 1 块

这意味着你的 RAID 阵列已经失去了冗余保护,处于高风险状态。如果再有一块磁盘彻底损坏,整个阵列可能会崩溃,导致数据不可恢复。

🛠️ 建议操作步骤

✅ 1. 立即备份数据

  • RAID 已降级,数据安全性极低。
  • 使用 rsyncscp 或挂载外部存储进行完整备份。

✅ 2. 确认故障磁盘编号

运行以下命令查看具体哪块磁盘失败:

./MegaCli64 -PDList -aAll | grep -E 'Slot|Firmware state|Media Error Count|Predictive Failure Count'

运行以上命令后,以下是输出结果分析

🔍 磁盘状态分析

插槽 状态 媒体错误计数 预测故障计数 固件状态
Slot 0 临界(Critical) 1 7 Online, Spun Up
Slot 1 故障(Failed) 0 0 Failed
Slot 2 临界(Critical) 3 6 Online, Spun Up
Slot 3 临界(Critical) 125 8 Online, Spun Up

⚠️ 当前 RAID 状态总结

  • Slot 1 已完全故障,无法参与阵列。
  • Slot 0、2、3 都处于临界状态,SMART 预测它们即将发生硬件故障。
  • RAID 虚拟磁盘已处于 Degraded(降级) 状态。
  • 如果再有一块磁盘彻底失败,整个阵列将崩溃,数据可能无法恢复。

✅ 3. 更换故障磁盘

  • 将故障磁盘替换为相同容量和接口的硬盘(建议 SAS)。
  • 插入后,RAID 控制器应自动开始重建(Auto Rebuild 已启用)。

✅ 4. 监控重建进度

./MegaCli64 -LDInfo -Lall -aAll

✅ 查看当前 RAID 类型的命令

运行以下命令可以查看虚拟磁盘(VD)的详细信息,包括 RAID 级别:

./MegaCli64 -LDInfo -Lall -aAll

在输出中你会看到类似这样的字段:

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3

这个表示的是 RAID 5。不同的组合含义如下:

显示内容 实际 RAID 类型
Primary-0, Secondary-0 RAID 0
Primary-1, Secondary-0 RAID 1
Primary-5, Secondary-0 RAID 5
Primary-6, Secondary-0 RAID 6
Primary-1, Secondary-3 RAID 10
Primary-5, Secondary-3 RAID 50

🧠 RAID 类型快速判断技巧

  • RAID 0:无冗余,性能高,风险高
  • RAID 1:镜像,安全性高,容量减半
  • RAID 5:至少 3 块盘,可容忍 1 块故障
  • RAID 6:至少 4 块盘,可容忍 2 块故障
  • RAID 10:镜像+条带,至少 4 块盘,性能与安全兼顾

🧾 实际环境中运行后结果如下

项目
RAID 类型 RAID 5(Primary-5, Secondary-0, Qualifier-3)
虚拟磁盘数量 1
磁盘数量 4 块
阵列状态 ⚠️ Degraded(降级)
总容量 2.727 TB
校验盘大小 931 GB(用于 RAID 5 的冗余)
条带大小(Strip Size) 64 KB
缓存策略 WriteBack(写入缓存)、ReadAheadNone(无预读)
加密 未启用
是否缓存虚拟磁盘

🔍 RAID 5 简要说明

RAID 5 是一种常见的冗余方案,特点如下:

  • 至少需要 3 块硬盘
  • 可容忍 1 块硬盘故障
  • 使用 条带 + 校验 实现冗余
  • 性能适中,容量利用率较高

我的阵列使用了 4 块盘,其中 1 块已故障(Slot 1),所以当前处于 降级状态。如果再有一块盘挂掉,整个阵列将无法恢复。


🛠️最终结果

这台服务器跑的不是什么重要业务,且已采购13年之久,后续挂了就直接报废了。

我这台服务器的RAID 阵列现在就像一辆高速行驶但轮胎已经磨损严重的车——还能跑,但随时可能爆胎。我们来快速梳理一下:

📊 RAID 磁盘健康状态一览

插槽 媒体错误数 预测故障数 固件状态 状态评估
Slot 0 1 7 Online, Spun Up ⚠️ 临界(高风险)
Slot 1 0 0 Failed ❌ 已故障
Slot 2 3 6 Online, Spun Up ⚠️ 临界(高风险)
Slot 3 125 8 Online, Spun Up 🔥 极度危险

🚨 关键问题

  • Slot 1 已完全故障,不参与 RAID。
  • Slot 0、2、3 都有明显的 SMART 故障预测,尤其是 Slot 3,媒体错误高达 125 次,几乎是“爆炸边缘”。
  • 如果再有一块盘彻底挂掉,整个 RAID 阵列可能会崩溃,数据将面临不可恢复的风险。
Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2025-08-20 10:01:34

results matching ""

    No results matching ""