在Ubuntu下安装使用MegaCli来管理磁盘,磁盘


 MegaCli这个命令可以用来监控raid状态、磁盘状况等,最近上了一批ubuntu系统跑openstack,问题是MegaCli在官网上只有rpm格式的包,没有deb的包,但是还是有办法解决的,rpm包也是可以在debian&&ubuntu上安装的。

      可以到下列连接下载最新的zip文件包:

http://www.lsi.com/Search/Pages/results.aspx?k=MegaCLI&r=productfacet%3D%22AQxNZWdhUkFJRCBTQVMMcHJvZHVjdGZhY2V0AQJeIgIiJA%3D%3D%22%20os%3D%22AQVMaW51eAJvcwEBXgEk%22
       我下载的是8.00.48_Linux_MegaCLI.zip

       预先安装需要的其他包:

代码如下:
apt-get -y install rpm2cpio libsysfs2 libsysfs-dev unzip

       安装完成后执行如下命令:

代码如下:
cd /lib/x86_64-linux-gnu/
ln -s libsysfs.so.2.0.1 libsysfs.so.2.0.2

       进入 8.00.48_Linux_MegaCLI.zip包所在的目录,执行如下命令:

代码如下:
unzip 8.00.48_Linux_MegaCLI.zip
unzip MegaCliLin.zip
rpm2cpio Lib_Utils-1.00-09.noarch.rpm | cpio -idmv
rpm2cpio MegaCli-8.00.48-1.i386.rpm | cpio -idmv
cp opt/MegaRAID/MegaCli/MegaCli64 /sbin/
cp opt/MegaRAID/MegaCli/MegaCli /sbin/

     MegaCli不但能查询raid的状态,还能设置raid的状态,所以还是由管理员掌握比较好,这样就安装完毕了。

下面来列举几个常用的用法:

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</p> <p>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
</p> <p>MegaCli -PDOnline -PhysDrv [1:4] -a0

9、查看物理磁盘重建进度

代码如下:
MegaCli -PDRbld -ShowProg -PhysDrv [1:5] -a0

或者以动态可视化文字界面显示

代码如下:
MegaCli -PDRbld -ProgDsply -PhysDrv [1:5] -a0

相关内容