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
官方资料:
PERC H800(6Gb/秒),配备512 MB非易失性高速缓存
PERC H800(6Gb/秒),配备512 MB电池后备高速缓存;512 MB、1 G非易失性电池后备高速缓存
PERC 6/E,配备256 MB或512 MB电池后备高速缓存
Stripe size 默认64KB。
在每个磁盘上连续写入数据的总量,也称作“条带深度”。你可以指定每个逻辑驱动器的条带容量从2KB,4KB,8KB一直到128KB。为了获得更高的性能,要选择条带的容量等于或小于操作系统的簇的大小。大容量的条带会产生更高的读取性能,尤其在读取连续数据的时候。而读取随机数据的时候,最好设定条带的容量小一点。如果指定128KB的条带将需要8MB内存。
不同Stripe size的选择直接影响性能,如IOPS和吞吐量。
Stripe size值小,通过多块磁盘响应多个I/O请求,可以增加I/O访问速率(IOPS)
Stripe size值大,通过多块磁盘响应一个I/O请求,可以增加数据传输速率(Mbps)
我们知道顺序和随机对于带宽和iops的需求成反比,即顺序的读写比较消耗带宽,随机的读写比较消耗iops;
通常,小Stripe size适用于数据库,一般Stripe size适用于文件服务器,大Stripe size适用于多煤体应用。实际应用stripe size大小应在效率测试后具体设置。
数据库一般4-16KB
web服务器默认即可,16-64KB
流媒体等大文件建议128KB以上
查看RAID信息的工具有mpt-status、megarc、dell OpenManage。经测试只有megacli可以实现目标,dell OpenManage由于较大90M左右没有安装。
megacli工具非常强大,不仅能查看RAID卡信息,而且还能设置RAID卡,但是不支持SAS 6/iR的RAID卡,不推荐采用megacli在线设置RAID卡,本文也仅用于监控挂接在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)
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
术语: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 �CaALL 显示适配器时间
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}"
[email protected] < ${DATE}_${IP}.log -- -f [email protected]
else
echo
"Disk is health!"
mail -s
"Disk is health! @${HOSTNAME}_${IP}"
[email protected] < ${DATE}_${IP}.log -- -f [email protected]
exit
1
fi