一、服务器 RAID卡介绍

1、内部RAID控制器

使用megacli命令查看得到的RAID卡数据:

SAS 6/iR :只支持2块硬盘做 raid0,或者raid1,或者不做阵列卡  (Dell硬件聊天室获得)

PERC 6/i Integrated

Memory Size: 256MB

RAID Level Supported: RAID0, RAID1, RAID5, RAID6, RAID10, RAID50, RAID60, PRL 11, PRL 11 with spanning, SRL 3 supported

Supported Drives: SAS, SATA

Min Stripe Size: 8 KB

Max Stripe Size: 1.0 MB

接口速度Link Speed: 3.0Gb/s


PERC H700 Integrated

Memory Size: 512MB

RAID Level Supported: RAID0, RAID1, RAID5, RAID6, RAID10, RAID50, RAID60, PRL 11, PRL 11 with spanning

Supported Drives: SAS, SATA

Min Stripe Size: 8 KB

Max Stripe Size: 1.0 MB

接口速度Link Speed: 6.0Gb/s


2、外部RAID控制器

官方资料:

PERC H800(6Gb/秒),配备512 MB非易失性高速缓存

PERC H800(6Gb/秒),配备512 MB电池后备高速缓存;512 MB、1 G非易失性电池后备高速缓存

PERC 6/E,配备256 MB或512 MB电池后备高速缓存



二、阵列卡的Stripe size介绍

Stripe size 默认64KB。

1、Stripe size百科介绍

在每个磁盘上连续写入数据的总量,也称作“条带深度”。你可以指定每个逻辑驱动器的条带容量从2KB,4KB,8KB一直到128KB。为了获得更高的性能,要选择条带的容量等于或小于操作系统的簇的大小。大容量的条带会产生更高的读取性能,尤其在读取连续数据的时候。而读取随机数据的时候,最好设定条带的容量小一点。如果指定128KB的条带将需要8MB内存。


不同Stripe size的选择直接影响性能,如IOPS和吞吐量。

Stripe size值小,通过多块磁盘响应多个I/O请求,可以增加I/O访问速率(IOPS)

Stripe size值大,通过多块磁盘响应一个I/O请求,可以增加数据传输速率(Mbps)

我们知道顺序和随机对于带宽和iops的需求成反比,即顺序的读写比较消耗带宽,随机的读写比较消耗iops;


2、Stripe size一般设置

通常,小Stripe size适用于数据库,一般Stripe size适用于文件服务器,大Stripe size适用于多煤体应用。实际应用stripe size大小应在效率测试后具体设置。


数据库一般4-16KB

web服务器默认即可,16-64KB

流媒体等大文件建议128KB以上



三、megacli介绍、安装、使用、crontab监控脚本

查看RAID信息的工具有mpt-status、megarc、dell OpenManage。经测试只有megacli可以实现目标,dell OpenManage由于较大90M左右没有安装。


megacli工具非常强大,不仅能查看RAID卡信息,而且还能设置RAID卡,但是不支持SAS 6/iR的RAID卡,不推荐采用megacli在线设置RAID卡,本文也仅用于监控挂接在RAID上的硬盘状态。


1、查看raid卡的型号:

root@3:~# lspci |grep RAID  H700

02:00.0 RAID bus controller: LSI Logic / Symbios Logic Device 0079 (rev 04)

root@3:~# lspci  |grep RAID  PERC 6/i

03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)

root@k:~# lspci|grep SAS     SAS 6/iR

03:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08)


2、安装megacli

root@3:~# more /etc/apt/sources.list

增加如下源:

##add monitor dell perc 6/i raidcontroller’s source

deb http://hwraid.le-vert.net/debian lenny main


root@3:~# apt-get update

root@3:~# apt-get install megacli


3、使用megacli查看RAID卡信息

术语:BBU 电池备份单元(Battery Backup Unit)

常用查看命令:

megacli -LDInfo -Lall -aALL   查raid级别

megacli -AdpAllInfo -aALL     查raid卡信息

megacli -PDList -aALL         查看硬盘信息

megacli -AdpBbuCmd -aAll      查看电池信息

megacli -FwTermLog -Dsply -aALL 查看raid卡日志

megacli -adpCount             显示适配器个数

megacli -AdpGetTime –aALL    显示适配器时间

megacli -AdpAllInfo -aAll     显示所有适配器信息

megacli -LDInfo -LALL -aAll   显示所有逻辑磁盘组信息

megacli -PDList -aAll         显示所有的物理信息

megacli -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 查看充电状态

megacli -AdpBbuCmd -GetBbuStatus -aALL 显示BBU状态信息

megacli -AdpBbuCmd -GetBbuCapacityInfo -aALL  显示BBU容量信息

megacli -AdpBbuCmd -GetBbuDesignInfo -aALL    显示BBU设计参数

megacli -AdpBbuCmd -GetBbuProperties -aALL    显示当前BBU属性

megacli -cfgdsply -aALL       显示Raid卡型号,Raid设置,Disk相关信息


#!/bin/bash
DATE=` date + "%Y%m%d" `
MegaCli= "/opt/MegaRAID/MegaCli/MegaCli64"
IP=` /sbin/ifconfig | grep "inet addr" | awk -F ":" '{print $2}' | awk '{print $1}' | head -n1`
me=`$MegaCli -PDList -aALL | grep "Media Error Count" | sort | uniq -c | wc -l`
oe=`$MegaCli -PDList -aALL | grep "Other Error Count" | sort | uniq -c | wc -l`
fs=`$MegaCli -PDList -aALL | grep "Firmware state" | sort | uniq -c | wc -l`
sum =$me+$oe+$fs
$MegaCli -PDList -aALL > ${DATE}_${IP}.log
if [[ $ sum - ne 3 ]]
then
mail -s "Disk is error! @${HOSTNAME}_${IP}" itdsupport@jiezinet.com < ${DATE}_${IP}.log -- -f $HOSTNAME@chowsangsang.com
else
echo "Disk is health!"
mail -s "Disk is health! @${HOSTNAME}_${IP}" itdsupport@jiezinet.com < ${DATE}_${IP}.log -- -f $HOSTNAME@chowsangsang.com
exit 1
fi