MegaCli 是管理 LSI(现为 Broadcom)MegaRAID 系列硬件 RAID 控制器的强大命令行工具,适合在缺乏图形界面的环境中进行精细的存储配置和监控。
下面为您梳理其下载安装、核心用法和典型应用场景。
🔧 工具概览与获取安装
MegaCli 是 Broadcom 提供的用于管理基于 MegaRAID 控制器的硬件 RAID 的命令行工具 。它支持在 Windows、Linux 及 VMware ESXi 等多种操作系统上运行,允许您通过命令行直接配置、监控和管理 RAID 卡及其下的物理磁盘、虚拟磁盘(RAID 阵列)等 。
- 下载地址:工具可从 Broadcom(博通)官方网站 下载。您可以通过访问 Broadcom 支持网站,搜索 "MegaCLI" 来找到对应的最新版本下载页面 。一个常见的版本是
8-07-14_MegaCLI.zip
。 - 安装示例(以 CentOS 系统为例):
- 使用
rpm -ivh MegaCli-8.07.14-1.noarch.rpm
命令安装下载的 RPM 包 。 - 安装后,主程序通常位于
/opt/MegaRAID/MegaCli/
目录下,可执行文件可能是MegaCli
或MegaCli64
。 - 为了方便使用,建议创建软链接到系统命令路径,例如:
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/megacli
。 - 对于 Ubuntu 等 Debian 系系统,可能需要先使用
alien
工具将 rpm 包转换为 deb 包后再安装 。 - 如果执行命令时报告缺少
libncurses.so.5
等库文件,需要安装相应的依赖库,例如ncurses-compat-libs
(CentOS)或libncursesw5
(Ubuntu)。
- 使用
📚 核心命令与使用方法
使用 MegaCli 前,通常需要确认操作的适配器(RAID 卡)编号,默认为 -a0
(适配器0)。使用 -aALL
可操作所有适配器。
下表汇总了最常用的一些操作命令:
操作类别 | 命令示例 | 功能说明 |
---|---|---|
信息查看 | megacli -AdpAllInfo -aALL |
查看 RAID 卡适配器的详细信息 。 |
megacli -PDList -aALL |
列出所有物理磁盘的详细信息 。 | |
megacli -LDInfo -Lall -aALL |
查看所有虚拟磁盘(RAID 阵列)的信息 。 | |
RAID配置 | megacli -CfgLdAdd -r1 [32:6,32:7] -a0 |
使用指定槽位的磁盘创建 RAID 1 。 |
megacli -CfgLdDel -L1 -a0 |
删除编号为 1 的虚拟磁盘 。 | |
磁盘管理 | megacli -PDHSP -Set -PhysDrv [32:7] -a0 |
将指定磁盘设置为全局热备盘 。 |
megacli -PDOffline -PhysDrv [32:7] -a0 |
将指定物理磁盘设置为离线状态 。 | |
megacli -PDOnline -PhysDrv [32:7] -a0 |
将指定物理磁盘设置为在线状态 。 | |
状态监控 | megacli -AdpBbuCmd -aAll |
查看 RAID 卡电池(BBU)信息 。 |
megacli -PDRbld -ShowProg -PhysDrv [32:7] -a0 |
查看物理磁盘重建进度 。 |
💡 典型应用场景举例
-
创建新的 RAID 1 阵列
假设希望用机箱(Enclosure)ID 为 32、槽位(Slot)为 6 和 7 的两块新硬盘创建一个 RAID 1(镜像)阵列 。- 步骤一:使用
megacli -PDList -aALL
确认这两块磁盘的Firmware state
为Unconfigured(good)
(未配置良好)。 - 步骤二:执行命令
megacli -CfgLdAdd -r1 [32:6,32:7] -a0
创建阵列 。 - 步骤三:创建成功后,无需重启服务器 。执行
echo "- - -" > /sys/class/scsi_host/hostX/scan
命令触发系统重新扫描 SCSI 总线(X 为具体的主机编号),之后使用lsblk
命令即可看到新出现的磁盘设备(如/dev/sdb
),之后便可对其进行分区、格式化等操作 。
- 步骤一:使用
-
快速定位并更换故障硬盘
当 RAID 阵列出现磁盘故障,状态变为 Degraded(降级)时,需要快速找到坏盘并更换 。- 步骤一:使用
megacli -PDList -aALL
查看所有物理盘,重点关注Media Error Count
(介质错误计数)和Other Error Count
(其他错误计数)非零或Firmware state
显示为Failed
(失败)的磁盘,并记录其Enclosure Device ID
和Slot Number
。 - 步骤二:更换新硬盘后,系统可能会自动开始重建。若无,可尝试手动触发重建:
megacli -PDRbld -Start -PhysDrv [EID:S] -a0
(其中EID
为机箱 ID,S
为槽位号)。使用megacli -PDRbld -ShowProg -PhysDrv [EID:S] -a0
查看重建进度 。
- 步骤一:使用
-
处理外来配置(Foreign Configuration)
当从另一台服务器拆下带有 RAID 信息的硬盘插入本机时,可能会检测到外来配置 。- 步骤一:使用
megacli -cfgforeign -scan -a0
扫描是否存在外来配置 。 - 步骤二:如果确认要清空这些配置以使用磁盘,可执行
megacli -cfgforeign -clear -a0
清除外来配置 。此操作会破坏原磁盘上的数据,请谨慎确认。
- 步骤一:使用
⚠️ 重要注意事项
- 操作风险:创建或删除 RAID、设置热备盘等操作会破坏数据。在执行前务必反复确认操作的磁盘和 RAID 卷是否正确 。
- 兼容性:MegaCli 主要适用于 LSI/Broadcom 的 MegaRAID 系列控制器。在使用前,可通过
lspci | grep -i mega
或dmesg | grep -i raid
等命令确认服务器是否使用此类 RAID 卡 。 - 状态解读:密切关注物理磁盘的
Media Error Count
和Other Error Count
,非零值可能预示磁盘潜在问题 。虚拟磁盘的State
为Optimal
表示最优,Degraded
表示降级(有磁盘故障)。