当前位置:网站首页>使用storcli工具配置RAID,收藏这一篇就够了
使用storcli工具配置RAID,收藏这一篇就够了
2022-06-27 18:55:00 【墨天轮】
正文共:3141字 28图,预估阅读时间:6分钟
前文(怎么把银河麒麟装进U盘?)提到,因为国产服务器固件暂不支持直接配置RAID,所以需要使用storcli这个工具来操作。今天就从RAID配置和维护两个方面来简单介绍一下这个工具的使用,同时也可以方便大家了解RAID的配置原理。
首先把工具上传到服务器任意目录,并使用命令chmod +x storcli64修改文件权限为可执行。
另外可通过命令ln -s root/storcli64 usr/bin/storcli来设置软链接,这样后续可以在任意目录下输入storcli执行./ storcli64,和系统命令一样。
首先使用storcli c0 show命令查看 RAID 控制器信息,其中包含磁盘的拓扑结构、RAID信息、物理磁盘配置状态等信息。(注释:c即Controller,控制器,也就是阵列卡;e即Enclosure,附件,一般来讲也就是硬盘背板“硬盘笼”;s即Slot,物理硬盘槽位;v即Virtual Drive,虚拟硬盘,也就是逻辑卷;d即Disk Group,硬盘组;f即Foreign configuration file,外部阵列配置。)
还能看到阵列卡的温度。
上面是硬盘插槽全空时的回显,在1、2槽位插上两块960G的SSD之后,回显中增加了PD LIST物理磁盘列表,显示如下:
通过命令storcli c0/vall show来查看RAID逻辑卷的配置情况,当前为未配置RAID。
通过命令storcli c0/eall/sall show来查看c0控制器所有物理槽位和所有槽位中的物理磁盘信息。

步骤 1:如果原磁盘存在 RAID,需要将 RAID 删除
使用storcli c0 vall show命令查看已有的阵列配置信息,如果存在,需要使用storcli c0 v0 delete删除相关配置。如果 vd 包含 MBR 或者用户信息数据,需要加 force 参数强制删除。
步骤 2:创建 RAID
storcli64工具创建RAID的具体使用方法如下:
storcli cx add vd r[0|1|5|6|00|10|50|60][Size=<VD1_Sz>,<VD2_Sz>,..|all]
[name=<VDNAME1>,..] drives=e:s|e:s-x|e:s-x,y [PDperArray=x|auto]
[SED] [pdcache=on|off|default][pi] [DimmerSwitch(ds)=default|automatic(auto)|
none|maximum(max)|MaximumWithoutCaching(maxnocache)] [WT|WB|AWB][nora|ra]
[direct|cached] [cachevd]
[Strip=<8|16|32|64|128|256|512|1024>] [AfterVd=X]
[Spares = [e:]s|[e:]s-x|[e:]s-x,y][force]
[Cbsize=0|1|2 Cbmode=0|1|2|3|4|7]

本例中,对1、2操作两个硬盘创建RAID0的操作命令如下:
storcli c0 add VD r0 drives=252:0,252:1
可以使用该命令直接新建RAID0。
对于一些场景,可能需要使用“Size=all”的配置参数,用于增加磁盘的所有空间到逻辑卷。
还可以通过参数“name=raid0”来指定RAID名称,会在Virtual Drives的Name处显示。
如果配置不想要了,就可以通过storcli c0/v0 delete force来删除RAID配置。
再新建两组RAID,两块SSD做RAID0,4块SATA盘做raid0,并分别命名。

实际使用过程中,遇到比较多的就是硬盘故障。介于手头资源有限,一共是2块960G的固态盘,加上4块4T的SATA盘,所以用3块SATA盘做RAID5,另外1块模拟新盘来操作。
首先创建一个3块硬盘的RAID5阵列。
通过命令storcli c0 /eall /sall show来查看物理磁盘信息。

磁盘状态描述:
UGood(Unconfigured Good,未配置正常),硬盘状态正常,但还未划分给任何逻辑卷;
UBad(Unconfigured Bad,未配置异常),UGood状态的硬盘出现无法恢复的错误;
Onln(Online,在线),已经设置为某个虚拟硬盘的成员盘,并且处于在线正常可用状态;
Offln(Offline,离线),某个虚拟硬盘的成员盘离线;
Missing,Online状态的硬盘脱离RAID组的状态;
Rbld(Rebuild,重建),硬盘正在重建数据。
拔掉5槽位编号为252:4的硬盘,操作之后使用命令storcli /c0 /vall show来查看阵列信息。发现RAID5阵列状态为Dgrd(degreed,降级),临近故障,参考之前做的硬件RAID测试(硬件RAID横评(上)、硬件RAID横评(下)),RAID5只能接受一块硬盘故障,如果再拔一块盘,则会进入到Failed(故障)状态。
此时,再把备用的6号硬盘作为新盘插到5号槽位,可以看到新插入的磁盘状态为Rbld,正在恢复数据,重建RAID。
可以通过命令storcli /c0/e252/sall show rebuild 来查看rebuild的进展,不过时间也是真的长,RAID没有数据信息,重建仍然需要4个半小时以上。

比如在上面的操作中,因为操作顺序问题,5号槽位硬盘曾作为RAID5成员, 6号槽位硬盘曾作为RAID0成员,拔出后保留了之前的RAID相关配置,这部分配置会导致这两块硬盘的DG状态为F(Foreign),无法加入新的虚拟硬盘。
此时,可以使用命令storcli /c0/fall delete删除掉控制器c0的所有外部配置信息,删除后DG状态为空,可以正常使用。

上面操作的是直接替换的场景,如果硬盘仍在使用中,需要使用命令storcli /c0/e252/s4 set offline将5槽位硬盘设置为离线Offline,再使用命令storcli /c0/e252/s4 set missing将硬盘设置为missing状态,之后才可以将原故障硬盘拔出,换上新的硬盘。

上面提到了手工指定硬盘状态,对于处于”UBad“状态的硬盘,可以通过命令storcli /c0 /e252 /s2 set good将其设置为“UGood”状态,方便后续使用。
设置好之后,可以看到硬盘的DG状态显示为F,说明有外部RAID配置。
可以使用命令storcli /c0 show查看外部RAID的详细信息。
此时可以尝试通过命令storcli /c0 /fall import将原有的RAID配置恢复。
再次使用命令storcli /c0 /eall /sall show查看磁盘状态。

如前面操作过程,正常插入新的硬盘之后会自动重建RAID,如果没有自动重建,则需要执行以下操作。
首先确认磁盘位置,从硬盘状态可以看到DG组的值为A,从面板上确认硬盘在第B列、第C行,如硬盘插入到5号槽位,那就是第0列,第2行,对应命令为:storcli /c0 /e252 /s4 insert dg=1 array=0 row=2。
再通过命令storcli /c0/e252/s4 start rebuild来手动触发数据重建,也可以使用pause、resume命令来暂停、继续重建任务。
可以使用命令storcli64 /c0/e252/s4 show rebuild来单独查看4槽位的rebuild进度。

灵明无着,物来顺应,未来不迎,当时不杂,既往不恋
--曾国藩

长按二维码
关注我们吧

边栏推荐
- 大促场景下,如何做好网关高可用防护
- Abap-sm30 check before deletion
- Graduation design of police report convenience service platform based on wechat applet
- Sharing | intelligent environmental protection - ecological civilization informatization solution (PDF attached)
- Record a failure caused by a custom redis distributed lock
- openssl客户端编程:一个不起眼的函数导致的SSL会话失败问题
- SQL审核平台权限模块介绍和账号创建教程
- 一场分销裂变活动,不止是发发朋友圈这么简单
- Paste source layer and history layer of data warehouse system
- Leetcode 989. Integer addition in array form (simple)
猜你喜欢
随机推荐
使用MySqlBulkLoader批量插入数据
Cortical traceability analysis of ERP
爱数课实验 | 第五期-基于机器学习方法的商品评论情感判定
Question brushing notes - tree (easy) - updating
基于微信小程序的高校毕业论文管理系统#毕业设计
分享|智慧环保-生态文明信息化解决方案(附PDF)
基于微信小程序的警局报案便民服务平台#毕业设计
After kotlin wechat payment callback, the interface is stuck and uipagefragmentactivity windowleft is thrown
本周二晚19:00战码先锋第8期直播丨如何多方位参与OpenHarmony开源贡献
Implementation string mystring
爱数课实验 | 第九期-利用机器学习方法进行健康智能诊断
Massive data attended the Lanzhou opengauss meetup (ECOLOGICAL NATIONAL trip) activity, enabling users to upgrade their applications with enterprise level databases
Redis cluster
如何降低用户关注的非必要页面的权重传递?
308. 2D area and retrieval - variable segment tree / hash
Flood fighting and disaster relief, overcoming difficulties, and City United premium products rushed to the aid of Yingde to donate loving materials
What is a low code development platform? Why is it so hot now?
Installing services for NFS
Graduation design of police report convenience service platform based on wechat applet
Paste source layer and history layer of data warehouse system