【硬件相关】LSI MegaRAID阵列卡配置管理
一、前言
官方手册说明:StorCLI Reference Manual
华为服务器操作维护说明:华为服务器 RAID控制卡 用户指南(x86) 02
目前市面常见的RAID卡主要是LSI MegaRAID和PMC Adaptec,前者使用命令行工具为storcli,后者使用命令行工具为arcconf
示例使用的RAID卡为LSI MegaRAID,基于storcli工具介绍raid卡配置管理实践过程。
注:如不清楚RAID卡类型,可通过lspci |grep -i "SAS"
查询
[root@test ~]# lspci | grep "SAS"
c5:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] (rev 02)
二、软件安装
由于LSI于2013年被Broadcom(博通)收购,相关软件下载可从Broadcom官网产品支持页面搜索下载
示例使用Latest StorCLI MR7.20软件版本,压缩包包含了Storcli所支持的所有系统软件包
- 下载storcli软件包
wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/007.2007.0000.0000_Unified_StorCLI.zip
unzip 007.2007.0000.0000_Unified_StorCLI.zip
- 根据当前使用的操作系统(示例使用CentOS7.6),安装对应软件包
cd Unified_storcli_all_os/
rpm -ivh Linux/storcli-007.2007.0000.0000-1.noarch.rpm
ln -s /opt/MegaRAID/storcli/storcli64 /usr/bin/storcli
- 查看storcli版本号
[root@node127 ~]# storcli -v
StorCli SAS Customization Utility Ver 007.2007.0000.0000 Feb 11, 2022
(c)Copyright 2022, Broadcom Inc. All Rights Reserved.
三、部署使用
1、基础语法
storcli基础语法为:storcli <[object identifier]> <verb><[adverb | attributes | properties] > <[key=value]></verb>
- 参数表1(object identifier)
object identifier | description |
---|---|
当参数为空时,该命令为系统命令 | |
/cx | 控制器(RAID卡)特定指令(/controller x),当服务器存在多张raid卡时,可通过指定不同控制器ID切换不同raid卡配置 |
/cx/vx | 虚拟磁盘特定指令(/controller x/virtual driver x),可以选择指定控制器下的指定虚拟磁盘 |
/cx/ex | 机箱面板特定指令(/controller x/enclosure x),可以选择指定控制器下的指定机箱面板 如36盘位服务通常有两个机箱面板,前面板一根SAS线拖24块盘,后面板一根SAS线拖12块盘 |
/cx/ex/sx | 插槽/物理磁盘特定指令(/controller x/enclosure x/slot x),可以选择指定控制器下的指定机箱面板的指定磁盘 |
/cx/fx | 外部配置特定指令(/controller x/foreign configuration x),可以选择指定控制器下的指定外部配置 如磁盘残留有之前的RAID配置信息,可以选择对应磁盘进行配置清理或者导入操作 |
注:x
代表数字编号,当x为all时表示所有,如/c0/vall
表示控制器0下所有的虚拟磁盘
- 参数表2(verb)
verb | description |
---|---|
add | 增加配置,如虚拟磁盘(VD)、热备盘(spare)等 |
del | 删除配置,如虚拟磁盘(VD)、热备盘(spare)等 |
set | 为属性设置特定值 |
show | 查看选定对象所有的属性信息 |
start | 开始一个操作 |
pause | 暂停正在进行的操作 |
resume | 恢复已暂停的操作 |
suspend | 中止正在进行的操作,已中止的操作不能恢复 |
compare | 比较输入值与系统值差异 |
flush | 下刷控制器或者磁盘缓存 |
import | 将外部配置导入到驱动器 |
expand | 扩展虚拟磁盘容量 |
2、系统查看命令
- storcli show help
查看命令帮助信息 - storcli show [all]
该命令显示系统的控制器以及控制器相关摘要信息,包括控制器个数、主机名、操作系统信息和现有配置概述
[root@node174 ~]# storcli show
Status Code = 0
Status = Success
Description = None
Number of Controllers = 2
Host Name = node174
Operating System = Linux3.10.0-1160.62.1.el7.x86_64
System Overview :
===============
-------------------------------------------------------------------------------------
Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
-------------------------------------------------------------------------------------
0 AVAGOMegaRAIDSAS9361-8i 8 36 6 0 6 0 Msng On 1&2 Y 3 Opt
1 AVAGOMegaRAIDSAS9361-8i 8 36 6 0 6 0 Msng On 1&2 Y 3 Opt
-------------------------------------------------------------------------------------
输出信息对照表
参数 | 解释 |
---|---|
Ctrl | 控制器索引,一个编号对应一个RAID卡,编号从0开始 |
Model | RAID卡型号 |
PDs | 物理驱动器,表示当前RAID卡连接硬盘个数 |
DGs | 驱动器组,表示当前驱动器组个数,一般与VDs个数一致 |
VDs | 虚拟驱动器,表示当前虚拟驱动器个数 |
- storcli /cx show [all]
查看控制器相关配置信息
注:x为控制器索引,如需查看第一个控制器配置信息,可执行命令storcli /c0 show
;当x为all时表示为所有,如查看所有控制器配置信息,则执行命令storcli /call show
- storcli /cx/vx show [all]
查看/指定控制器/指定虚拟驱动器配置信息
[root@node174 ~]# storcli /c0/vall show
Controller = 0
Status = Success
Description = None
Virtual Drives :
==============
--------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
--------------------------------------------------------------
0/0 RAID6 Optl RW No RWTD - OFF 21.830 TB
1/1 RAID6 Optl RW No RWTD - OFF 21.830 TB
2/2 RAID6 Optl RW No RWTD - OFF 21.830 TB
3/3 RAID6 Optl RW No RWTD - OFF 21.830 TB
4/4 RAID6 Optl RW No RWTD - OFF 21.830 TB
5/5 RAID6 Optl RW No RWTD - OFF 21.830 TB
--------------------------------------------------------------
输出信息对照表
参数 | 解释 |
---|---|
DG/VD | 磁盘组编号/虚拟驱动器编号 |
TYPE | 虚拟驱动器类型,可选参数为JBOD 、RAID0 、RAID1 、RAID5 、RAID6 等 |
State | 虚拟驱动器状态,可选参数为Optl (Optimal,表示正常状态)、Dgrd (Degraded,表示降低状态,如虚拟驱动器出现磁盘损坏) |
- storcli /cx/ex/sx show [all]
查看/指定控制器/指定机箱面板/指定磁盘插槽配置信息
[root@node174 ~]# storcli /c0/eall/sall show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.
Drive Information :
=================
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
6:1 21 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:2 104 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
10:1 231 Onln 2 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
10:2 158 Onln 2 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
输出信息对照表
参数 | 解释 |
---|---|
EID:Slt | 机箱面板编号:磁盘插槽编号 |
State | 磁盘状态,可选参数为Onln (磁盘上线,即加入RAID组)、Offln (磁盘离线,即脱离RAID组)、JBOD (磁盘直通)、UGood (此状态下可用于创建RAID或热备盘) 、UBad (磁盘存在其他RAID配置,需手动设置为UGood状态)、Rbld (此状态下磁盘处于重建状态) |
DG | 磁盘组编号,表示哪些磁盘属于同一组RAID |
Size | 磁盘容量大小 |
Intf | 磁盘接口类型,可选参数为SATA 、SAS |
Med | 磁盘存储介质类型,可选参数为HDD 、SSD |
SeSz | 磁盘扇区大小 |
Model | 磁盘型号 |
3、RAID配置
3.1、处理异常状态
RAID配置之前,涉及磁盘需还原为初始状态(State为UGood,DG为-)
- 磁盘State为RAIDx
手动删除所有的虚拟驱动器:storcli /cx/vx del
- 磁盘State为Ubad
手动更改指定磁盘状态为UGood:storcli /cx/ex/sx set good
storcli /c0/e10/s14 set good
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
10:14 233 UGood F 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
-------------------------------------------------------------------------------
- 磁盘State为UGood,DG为F
手动删除所有磁盘外部配置:storcli /cx/fall del
storcli /c0/fall del
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
10:14 233 UGood - 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
-------------------------------------------------------------------------------
3.2、配置RAID模式
- 手动创建RAID:
storcli /cx add vd type=raid[0|1|5|6|10|50|60][size=,,..|*all][name=,..] drives=e:s|e:s-x|e:s-x,y;e:s-x,y,z [PDperArray=x|auto]
storcli /c0 add vd type=raid5 size=all name=vd1 drives=6:11-12,10:1-3
注:如需创建raid10、raid50、raid60,需要指定pdperarray=x
参数,如使用4块硬盘创建一个raid10(横跨两个raid1子卷做raid0),则使用storcli /c0 add vd type=raid10 size=all name=vd9 drives=0:32-35 pdperarray=2
3.2.1、逻辑磁盘管理
- 显示逻辑磁盘信息:
storcli /cx/vx show
- 显示更详细的逻辑磁盘信息:
storcli /cx/vx show all
- 手动删除逻辑磁盘:
storcli /cx/vx del
- 设置逻辑磁盘写策略:
storcli /cx/vx set wrcache=wt/wb/awb
注:默认为RWTD模式,参考华为文档:开启RAID卡Cache
3.2.2、热备盘管理
- 设置磁盘为全局热备盘:
storcli /cx/ex/sx add hotsparedrive
- 删除某块全局热备盘:
storcli /cx/ex/sx del hostsparedrive
- 设置磁盘为某个磁盘组的局部热备盘:
storcli /cx/ex/sx add hotsparedrive dgs=x
- 删除某个磁盘组的某块局部热备盘:
storcli /cx/ex/sx del hostsparedrive dgs=x
3.3、配置JBOD模式
- 开启RAID卡直通功能:
storcli /cx set jbod=on
storcli /cx set personality=JBOD
查看配置是否设置成功:storcli /c0 show jbod
- 手动设置控制器所有磁盘为JBOD模式:
storcli /cx/eall/sall set jbod
- 取消JBOD模式设置:
storcli /cx/eall/sall set good force
4、RAID重构
- 设置RAID重构速率:
storcli /cx set rebuildrate=x
注:以百分比为单位,取值范围为0~100 - 查看RAID重构速率:
storcli /cx show rebuildrate
- 查看某块磁盘的重构情况:
storcli /cx/ex/sx show rebuild
注:当RAID降级,对应RAID组冗余磁盘会启动数据重构操作,可通过storcli /c0/eall/sall show | grep -i Rbld
查找处于重构状态磁盘的插槽ID - 暂停某块磁盘的重构任务:
storcli /cx/ex/sx pause rebuild
5、硬盘定位
点亮硬盘定位指示灯:storcli /cx/ex/sx start locate
关闭硬盘定位指示灯:storcli /cx/ex/sx stop locate
注:执行以上操作,需要先找到磁盘对应插槽位置ID,可通过以下方式查找
5.1、RAID模式
- 查找磁盘对应scsi_id
可通过lsscsi --scsi_id -g
查找磁盘对应scsi_id
,如示例sda磁盘scsi_id为600062b007a78de229f4c51c4adff9b7
[root@node174 ~]# lsscsi --scsi_id -g | grep sda
[0:2:0:0] disk AVAGO MR9361-8i 4.68 /dev/sda 3600062b007a78de229f4c51c4adff9b7 /dev/sg2
- 查找scsi_id对应RAID组及所属磁盘列表
可通过storcli /call/vall show all
查看所有RAID组的SCSI NAA Id
,如示例sda磁盘scsi_id为600062b007a78de229f4c51c4adff9b7,所属raid组为/c0/v0,所属磁盘插槽为6:1-6
[root@node174 ~]# storcli /call/vall show all
/c0/v0 :
======
--------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
--------------------------------------------------------------
0/0 RAID6 Optl RW No RWTD - OFF 21.830 TB
--------------------------------------------------------------
PDs for VD 0 :
============
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
6:1 21 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:2 104 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:3 20 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:4 123 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:5 23 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
6:6 84 Onln 0 5.457 TB SATA HDD N N 512B ST6000NM0115-1YZ110 U -
-------------------------------------------------------------------------------
VD0 Properties :
==============
Strip Size = 256 KB
Number of Blocks = 46879735808
VD has Emulated PD = Yes
Span Depth = 1
Number of Drives Per Span = 6
Write Cache(initial setting) = WriteBack
Disk Cache Policy = Disk's Default
Encryption = None
Data Protection = Disabled
Active Operations = None
Exposed to OS = Yes
Creation Date = 22-04-2022
Creation Time = 01:45:00 AM
Emulation type = default
Cachebypass size = Cachebypass-64k
Cachebypass Mode = Cachebypass Intelligent
Is LD Ready for OS Requests = Yes
SCSI NAA Id = 600062b007a78de229f4c51c4adff9b7
5.2、JBOD模式
- 查看磁盘对应SN号
可通过smartctl -a /dev/sdx | grep -i "Serial Number"
查找磁盘对应SN号,如示例磁盘SN号为ZAD1C133
[root@node174 ~]# smartctl -a /dev/sda | grep -i "Serial Number"
Serial Number: ZAD1C133
- 查看SN号对应磁盘插槽ID
可通过storcli /call/eall/sall show all | grep -B 2 '{Serial Number}'
查找对应SN号所属磁盘插槽ID,如示例磁盘SN号ZAD1C133所属插槽ID为6:3
[root@node174 ~]# storcli /call/eall/sall show all | grep -B 2 'ZAD1C133'
Drive /c0/e6/s3 Device attributes :
=================================
SN = ZAD1C133
6、运行状态
可以通过storcli /c0 show all | grep -i "ROC temperature"
查询raid卡温度,一般来说,正常温度值在55°以内,在机房散热条件不好情况下可能会涨到60-80°左右
注:当raid卡温度持续在100°~110°左右时,有可能影响磁盘读写性能,实验环境中小压力情况下也会出现短时间内磁盘负载100%(同硬件同压力情况下,温度处于正常阈值的服务器未出现此问题),视频写入丢帧问题
[root@node58 ~]# storcli /c0 show all | grep -i "ROC temperature"
ROC temperature(Degree Celsius) = 99
7、蜂鸣报警
- 设置raid卡蜂鸣器状态
raid卡具有蜂鸣器管理功能,可通过storcli /cx set alarm=<on|off|silence>
设置蜂鸣器状态
当参数值为on
时,表示开启蜂鸣器,当出现严重错误时,发出告警声音(如磁盘离线、数据重建等)
当参数值为off
时,表示关闭蜂鸣器,当出现任何错误时,警报都不会发出声音
当参数值为silence
时,表示设置蜂鸣器静音,当前任何错误警报将停止,但重启服务器后,警报会继续发出声音 - 查看raid卡蜂鸣器状态
可通过storcli /cx show alarm
命令查看当前开关状态