前几天安装了megaraid-storage-manager_17.05.02-2_all,用以前megacli的命令测试了一下就以为可以了。
今天在在网上搜了下storcli的命令发现不是这么回事,这里有华为官网的:
https://support.huawei.com/enterprise/en/doc/EDOC1000004186/77ee8d37/common-storcli-commands
仔细测试了下,发现这个版本(17.05.02-2)有问题,很多命令没法得到完整的输出。
我的服务器是RH2288 V3
# dmidecode -t 1
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x001E, DMI type 1, 27 bytes
System Information
Manufacturer: Huawei
Product Name: RH2288 V3
Version: V100R003
......应该使用的是另一个版本的storcli:
下载地址:
https://docs.broadcom.com/docs-and-downloads/docs-and-downloads/raid-controllers/raid-controllers-common-files/007.1410.0000.0000_Unified_StorCLI%20-%20PUL.zip
解压后里面有个Ubuntu目录,下面有个storcli_007.1410.0000.0000_all.deb,直接安装就可以了。
dpkg -i storcli_007.1410.0000.0000_all.deb他的默认安装目录在/opt/MegaRAID/storcli/
测试
# /opt/MegaRAID/storcli/storcli64 -v
StorCli SAS Customization Utility Ver 007.1410.0000.0000 May 19, 2020
(c)Copyright 2020, Broadcom Inc. All Rights Reserved.
# /opt/MegaRAID/storcli/storcli64 show
CLI Version = 007.1410.0000.0000 May 19, 2020
Operating system = Linux 4.13.16-1-pve
Status Code = 0
Status = Success
Description = None
Number of Controllers = 1
......
System Overview :
===============
-------------------------------------------------------------------
Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth
-------------------------------------------------------------------
0 SAS3108 8 2 1 0 1 0 N/A On - Y 3 Opt
-------------------------------------------------------------------
......注意上面的Number of Controllers = 1
这表示只有一个阵列控制器,在下面的命令中,这个控制器的编号从0开始,下面的c0表示第一个控制器
# /opt/MegaRAID/storcli/storcli64 /c0 /vall show
CLI Version = 007.1410.0000.0000 May 19, 2020
Operating system = Linux 4.13.16-1-pve
Controller = 0
Status = Success
Description = None
Virtual Drives :
==============
---------------------------------------------------------------
DG/VD TYPE State Access Consist Cache Cac sCC Size Name
---------------------------------------------------------------
0/0 RAID1 Optl RW Yes RWTD - ON 278.464 GB
---------------------------------------------------------------
......可以看到只创建了一个虚拟磁盘磁盘组(上面的编号0),很就方便提取它的状态:
# /opt/MegaRAID/storcli/storcli64 /c0 /vall show | grep RAID | tr -s ' ' | cut -d ' ' -f-3 | awk '{print $3}'
Optl最后拼凑一个简单脚本:
#! /bin/bash
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
PRESENT=$(/opt/MegaRAID/storcli/storcli64 /c0 /vall show | grep RAID | tr -s ' ' | cut -d ' ' -f-3 | awk '{print $3}')
if [[ ! $PRESENT = "Optl" ]]; then
echo 'RAID is CRITICAL' && exit $STATE_CRITICAL
else
echo 'All are OK' && exit $STATE_OK
fi使用storcli命令也可以新建配置,修改阵列,但是不建议这么做,毕竟没有可视化工具来的方便和安全,容易出错。通常还是用来检测卡和磁盘的硬件状态。
如下面检测磁盘:
# ./storcli64 /c0 /eALL/sALL show all|grep -e '^Drive.*State :' | awk {'print $2'}
````
/c0/e252/s0
/c0/e252/s1
````
# ./storcli64 /c0/e252/s0 show all