Ubuntu 下通过安装 LSI megaraid megacli 命令行工具可以用来管理硬件磁盘阵列。具体安装步骤如下。

1. 添加 megaraid 源:

修改 /etc/apt/sources.list 在末尾添加

deb http://hwraid.le-vert.net/ubuntu precise main

然后执行:

apt-get update

apt-get install megacli megactl megaraid-status

如果执行提示 GPG 错误,需要执行如下命令添加证书:

wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | sudo apt-key add -

然后再次执行:

apt-get install megacli megactl megaraid-status

这时候基本都能安装成功,下面是一些基本的命令:

查看虚拟驱动器的信息: 

megacli -LDInfo -Lall -aALL 

查看物理磁盘信息: 

megacli -PDList -aALL 

将所有事件写到指定文件: 

megacli -AdpEventLog -GetEvents -f logfile -aALL

相关命令及其解析: 
查看机器型号    # dmidecode | grep "Product" 
查看厂商    # dmidecode| grep  "Manufacturer" 
查看序列号    # dmidecode | grep  "Serial Number" 
查看CPU信息    # dmidecode | grep  "CPU" 
查看CPU个数    # dmidecode | grep  "Socket Designation: CPU" |wc –l 
查看出厂日期    # dmidecode | grep "Date" 
查看充电状态    # megacli -AdpBbuCmd -GetBbuStatus -aALL |grep "Charger Status" 
显示BBU状态信息    # megacli -AdpBbuCmd -GetBbuStatus –aALL 
显示BBU容量信息    # megacli -AdpBbuCmd -GetBbuCapacityInfo –aALL 
显示BBU设计参数    # megacli -AdpBbuCmd -GetBbuDesignInfo –aALL 
显示当前BBU属性    # megacli -AdpBbuCmd -GetBbuProperties –aALL 
查看充电进度百分比    # megacli -AdpBbuCmd -GetBbuStatus -aALL |grep "Relative State of Charge" 
查询Raid阵列数    # megacli -cfgdsply -aALL |grep "Number of DISK GROUPS:" 
显示Raid卡型号,Raid设置,Disk相关信息      # megacli -cfgdsply –aALL 
显示所有物理信息    # megacli -PDList -aALL 
显示所有逻辑磁盘组信息    # megacli -LDInfo -LALL –aAll 
查看物理磁盘重建进度(重要)    # megacli -PDRbld -ShowProg -PhysDrv [1:5] -a0 
查看适配器个数    #megacli –adpCount 
查看适配器时间    #megacli -AdpGetTime –aALL 
显示所有适配器信息    #megacli -AdpAllInfo –aAll 
查看Cache 策略设置    # megacli -cfgdsply -aALL |grep Polic

硬盘方面:

1、查看所有物理磁盘信息 
megacli -PDList -aALL

Adapter #0

Enclosure Number: 1 
Slot Number: 5 
Device Id: 5 
Sequence Number: 2 
Media Error Count: 0 
Other Error Count: 0 
Predictive Failure Count: 0 
Last Predictive Failure Event Seq Number: 0 
Raw Size: 140014MB [0x11177328 Sectors] 
Non Coerced Size: 139502MB [0x11077328 Sectors] 
Coerced Size: 139392MB [0x11040000 Sectors] 
Firmware state: Hotspare 
SAS Address(0): 0x5000c50008e5cca9 
SAS Address(1): 0x0 
Inquiry Data: SEAGATE ST3146855SS     S5273LN4Y1X0 
..... 
2、查看磁盘缓存策略 
megacli -LDGetProp -Cache -L0 -a0

Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct 
or 
megacli -LDGetProp -Cache -L1 -a0

Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct 
or 
megacli -LDGetProp -Cache -LALL -a0

Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct 
Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct 
or 
megacli -LDGetProp -Cache -LALL -aALL

Adapter 0-VD 0: Cache Policy:WriteBack, ReadAheadNone, Direct 
Adapter 0-VD 1: Cache Policy:WriteBack, ReadAheadNone, Direct 
or 
megacli -LDGetProp -DskCache -LALL -aALL

Adapter 0-VD 0: Disk Write Cache : Disk's Default 
Adapter 0-VD 1: Disk Write Cache : Disk's Default 
3、设置磁盘缓存策略 
缓存策略解释: 
WT    (Write through 
WB    (Write back) 
NORA  (No read ahead) 
RA    (Read ahead) 
ADRA  (Adaptive read ahead) 
Cached 
Direct 
例子: 
megacli -LDSetProp WT|WB|NORA|RA|ADRA -L0 -a0 
or 
megacli -LDSetProp -Cached|-Direct -L0 -a0 
or 
enable / disable disk cache 
megacli -LDSetProp -EnDskCache|-DisDskCache -L0 -a0 
4、创建/删除 阵列 
    4.1 创建一个 raid5 阵列,由物理盘 2,3,4 构成,该阵列的热备盘是物理盘 5 
megacli -CfgLdAdd -r5 [1:2,1:3,1:4] WB Direct -Hsp[1:5] –a0 
    4.2 创建阵列,不指定热备 
megacli -CfgLdAdd -r5 [1:2,1:3,1:4] WB Direct –a0 
    4.3 删除阵列 
megacli -CfgLdDel -L1 –a0 
    4.4 在线添加磁盘 
megacli -LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1 -a0 
意思是,重建逻辑磁盘组1,raid级别是5,添加物理磁盘号:1:4。重建完后,新添加的物理磁盘会自动处于重建(同步)状态,这个 时候 fdisk -l是看不到阵列的空间变大的,只有在系统重启后才能看见。 
5、查看阵列初始化信息 
    5.1 阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。 
megacli -LDInit -ShowProg -LALL -aALL 
或者以动态可视化文字界面显示 
megacli -LDInit -ProgDsply -LALL –aALL 
    5.2 查看阵列后台初始化进度 
megacli -LDBI -ShowProg -LALL -aALL 
或者以动态可视化文字界面显示 
megacli -LDBI -ProgDsply -LALL -aALL 
6、创建全局热备 
指定第 5 块盘作为全局热备 
megacli -PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0 
也可以指定为某个阵列的专用热备 
megacli -PDHSP -Set [-Dedicated [-Array1]] [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0 
7、删除全局热备 
megacli -PDHSP -Rmv -PhysDrv[1:5] -a0 
8、将某块物理盘下线/上线 
megacli -PDOffline -PhysDrv [1:4] -a0 
megacli -PDOnline -PhysDrv [1:4] -a0 
9、查看物理磁盘重建进度 
megacli -PDRbld -ShowProg -PhysDrv [1:5] -a0