服务器RAID卡是硬件级磁盘冗余阵列的核心控制器,通过Battery backup Unit和缓存策略提供数据保护和I/O加速。LSI/Broadcom系列RAID卡在数据中心使用广泛,MegaCLI(现称StorCLI)是其主要管理工具。RAID卡的阵列级别选择、缓存策略、热备盘配置直接影响存储子系统的可靠性和性能。
RAID卡管理工具安装与状态检查
LSI MegaCLI分为两个版本:MegaCli(旧版)和StorCLI(新版)。生产环境推荐StorCLI,命令更简洁。安装后通过以下命令查看RAID卡整体状态:
# StorCLI安装
rpm -ivh storcli-007.1612.0000.0000-1.noarch.rpm
ln -sf /opt/MegaRAID/storcli/storcli64 /usr/sbin/storcli
# 查看RAID卡信息
storcli /c0 show
# 查看所有物理磁盘
storcli /c0 /eall /sall show
# 查看所有虚拟磁盘(阵列)
storcli /c0 /vall show
# 查看阵列详细信息
storcli /c0 /v0 show
输出中关注几个字段:Product Name确认RAID卡型号(如MegaRAID 9560-8i),fwversion固件版本,ROC temperature芯片温度。物理磁盘状态中,状态为UGood(Unconfigured Good)表示可用但未加入阵列,Onln表示已在线,Rbld表示正在重建。
RAID级别选型与阵列创建
不同RAID级别在冗余能力、空间利用率和写性能之间有不同权衡。RAID 5适合读多写少场景,RAID 10适合高并发随机写,RAID 6在双盘容错需求下使用。创建阵列前确认磁盘状态均为UGood:
# 创建RAID 5阵列,使用槽位0-3的4块盘
storcli /c0 add vd r5 drives=0:0,0:1,0:2,0:3 name=data-vd0
# 创建RAID 10阵列
storcli /c0 add vd r10 drives=0:0,0:1,0:2,0:3 name=data-vd1
# 创建RAID 6阵列(6块盘,双冗余)
storcli /c0 add vd r6 drives=0:0,0:1,0:2,0:3,0:4,0:5 name=data-vd2
# 指定条带大小(默认64KB,SSD建议256KB)
storcli /c0 add vd r5 drives=0:0,0:1,0:2,0:3 name=ssd-vd pdperarray=3 strip=256
# 创建后查看阵列状态
storcli /c0 /v0 show
热备盘配置与自动重建
热备盘(Hot Spare)在阵列中某块磁盘故障时自动顶替,触发重建。分为全局热备(Global Hot Spare)和局部热备(Dedicated Hot Spare):
# 设置全局热备盘(槽位0:5)
storcli /c0 /e0 /s5 add hotsparedrive
# 设置局部热备盘,仅保护DG0
storcli /c0 /e0 /s5 add hotsparedrive dgs=0
# 查看热备盘状态
storcli /c0 /eall /sall show | grep -i spare
# 手动启动阵列重建
storcli /c0 /v0 start rebuild ss=0:5
# 查看重建进度
storcli /c0 /v0 show rebuild
重建过程中阵列性能会下降30%-50%,生产环境建议在业务低峰期处理。重建速度受RAID卡Rebuild Rate参数控制,默认30%:
# 查看当前重建速率
storcli /c0 show rebuild | grep "Rebuild Rate"
# 调整重建速率为70%
storcli /c0 set rebuildrate=70
# 调回默认30%
storcli /c0 set rebuildrate=30
缓存策略调优:WriteBack与WriteThrough
RAID卡缓存策略对写性能影响极大。WriteBack模式将数据写入缓存后立即返回ACK,由RAID卡异步刷入磁盘,延迟低但依赖BBU保护。WriteThrough模式数据同时写入缓存和磁盘,安全性高但延迟大。
# 查看当前缓存策略
storcli /c0 /v0 show | grep -i cache
# 设置WriteBack缓存(需要BBU正常)
storcli /c0 /v0 set wrcache=WB
# 设置WriteThrough缓存
storcli /c0 /v0 set wrcache=WT
# 设置Read Cache策略
storcli /c0 /v0 set rdcache=RA
# 关闭Read Cache(适合随机读场景)
storcli /c0 /v0 set rdcache=NORA
BBU(Battery Backup Unit)状态检查至关重要,BBU故障时WriteBack会自动降级为WriteThrough,写性能骤降。定期检查BBU健康状态:
# 查看BBU状态
storcli /c0 /bbu show
# BBU学习周期(容量校准,建议每3个月执行一次)
storcli /c0 /bbu start learn
# 查看BBU学习周期历史
storcli /c0 /bbu show learn
SSD阵列的特殊配置
SSD阵列的配置与HDD有所不同。SSD的垃圾回收和磨损均衡需要预留空间,RAID卡上的SSD建议关闭磁盘缓存(SSD自带缓存管理),开启RAID卡的Direct I/O模式:
# SSD阵列设置No Read Ahead
storcli /c0 /v1 set rdcache=NORA
# SSD阵列使用WriteThrough
storcli /c0 /v1 set wrcache=WT
# 设置IO策略为Direct IO
storcli /c0 /v1 set iopolicy=disk
# 查看SSD磨损信息
storcli /c0 /e0 /s0 show all | grep -i "wear"
阵列扩容与迁移
在线容量扩展(OCE)允许在不中断业务的情况下增加阵列容量。将更大容量的磁盘逐块替换阵列中的磁盘,待重建完成后扩容虚拟磁盘:
# 1. 查看当前阵列的物理磁盘
storcli /c0 /v0 show
# 2. 逐块替换磁盘
storcli /c0 /e0 /s0 set missing
# 等待重建完成
storcli /c0 /v0 show rebuild
# 重复替换所有磁盘后,扩容虚拟磁盘
storcli /c0 /v0 expand size=all
# 3. 在OS层面扩展文件系统
resize2fs /dev/sdb1
# 或 xfs:
xfs_growfs /mnt/data
告警监控与日志分析
RAID卡事件日志记录了所有硬件操作和故障信息,是排查存储问题的第一手数据:
# 查看RAID卡事件日志
storcli /c0 show events
# 过滤Critical级别事件
storcli /c0 show events filter=severity=Critical
# 查看PD错误计数
storcli /c0 /e0 /s0 show all | grep -i "error"
# 查看SMART信息
storcli /c0 /e0 /s0 show all | grep -i "smart"
关键监控指标:Media Error Count(介质错误数)持续增长表明磁盘即将故障,Predictive Failure Count(预测失败计数)大于0时应立即更换磁盘。通过Zabbix或Prometheus定时采集storcli输出,配置告警阈值即可实现RAID卡的自动化监控。
RAID卡的运维核心在于预防:定期检查BBU健康、保持热备盘就绪、关注SMART趋势。阵列故障往往伴随多块磁盘的状态变化,及时干预可以避免数据丢失。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/fu-wu-qi-raid-ka-pei-zhi-shi-zhan-megacli-zhen-lie-guan-li/