【硬件相关】LSI MegaRAID阵列卡配置管理

发布时间 2023-08-15 10:53:35作者: Luxf0

一、前言

官方手册说明: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 虚拟驱动器类型,可选参数为JBODRAID0RAID1RAID5RAID6
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 磁盘接口类型,可选参数为SATASAS
Med 磁盘存储介质类型,可选参数为HDDSSD
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模式

参考链接: how-to-create-a-raid-10-50-or-60

  • 手动创建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命令查看当前开关状态