因为系统不支持直接做raid,所以需要使用storcli这个工具来操作。首先把工具上传到服务器任意目录,并使用命令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控制器所有物理槽位和和所有槽位中的物理磁盘信息。

创建RAID

步骤 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,并分别命名。

更换硬盘,重建RAID

实际使用过程中,遇到比较多的就是硬盘故障。介于手头资源有限,一共是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测试,RAID5只能接受一块硬盘故障,如果再拔一块盘,则会进入到Failed(故障)状态。

此时,再把备用的6号硬盘作为新盘插到5号槽位,可以看到新插入的磁盘状态为Rbld,正在恢复数据,重建RAID。

可以通过命令storcli /c0/e252/sall show rebuild 来查看rebuild的进展,不过时间也是真的长,RAID没有数据信息,重建仍然需要4个半小时以上。

删除外部RAID配置

比如在上面的操作中,因为操作顺序问题,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状态,之后才可以将原故障硬盘拔出,换上新的硬盘。

引入外部RAID配置

上面提到了手工指定硬盘状态,对于处于”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

如前面操作过程,正常插入新的硬盘之后会自动重建RAID,如果没有自动重建,则需要执行以下操作。

首先确认磁盘位置,从硬盘状态可以看到DG组的值为A,从面板上确认硬盘在第B列、第C行,如硬盘插入到5号槽位,那就是第0列,第2行,对应命令为:storcli /c0 /e252 /s4 insert dg=1 array=0 row=0。

再通过命令storcli /c0/e252/s4 start rebuild来手动触发数据重建,也可以使用pause、resume命令来暂停、继续重建任务。

可以使用命令storcli64 /c0/e252/s4 show rebuild来单独查看4槽位的rebuild进度。

欢迎访问guotiejun.com获取更多信息,个人黄页地址为i.guotiejun.com。

也可以扫码关注公众号“铁军哥”,感谢您的支持!

我还拉个微信群吧,方便和粉丝们一起交流网络、安全、云计算之类的问题,也可以关注公众号后选择“补充能量”→“加入交流群”获取最新加群二维码。

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览13329 人正在系统学习中

[转帖]一问带你掌握通过storcli做RAID的更多相关文章

  1. 一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token

    上周写了一个 适合初学者入门 Spring Security With JWT 的 Demo .Demo 地址:https://github.com/Snailclimb/spring-securit ...

  2. [转帖]vagrant 添加带版本号的 box

    vagrant 添加带版本号的 box https://www.jianshu.com/p/12cf1ecb224b 第三种好用 lnmpcomposerphp  阅读约 8 分钟 前言 众所周知,v ...

  3. 每日一帖示例程序(使用TWebBrowser基于HTML做)

    最近在程序中增加了每日一帖的功能,搜索一下网站的程序,发现大部分是用Memo实现,而我用的是TWebBrowser基于HTML做,故帖出来共享一下. PAS源码: unit Unit1; interf ...

  4. Casting a Classifier into a Fully Convolutional Network将带全连接的网络做成全卷积网络

    详见:http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/net_surgery.ipynb 假设使用标准的caffe ...

  5. SEO百问

    SEO 的工作过程中,大家都会碰到很多这样或那样的问题,做 SEO 随着时间慢慢变长之后,知识会慢慢地积累,之前的问题也会慢慢的都被解答.这里是码动世界为大家整理的有关 SEO 百问百答. 1. 百度 ...

  6. 神奇的莫比乌斯带(mobius)

    1.禅师和青年之间的对话 2.制作一个莫比乌斯带 3.神奇的莫比乌斯带 4.对莫比乌斯带进行简单的数学建模 1.禅师和青年之间的对话 青年问禅师:“大师,我很爱我的女朋友,她也有很多优点,但是总有几个 ...

  7. iphone 3gs 美版,6.1.3+降基带+越狱+解锁。成功分享(转)

    本人参照这个帖子成功把一个白苹果的机器救活了 2014年1月26日 13点 转自:http://bbs.app111.com/thread-510632-1-1.html 时间:2013年5月31日  ...

  8. 面试--hr常问的问题

    程序员换工作,会有技术面试(可能不止一轮的技术面),还会有hr的面试,技术面主要是偏向于技术问题,hr面试主要问的一些问题,下面做下汇总: 1.你换工作的原因,你为何辞职 必问的问题,送分题或者送命题 ...

  9. 硬盘网盘U盘全部可以丢掉了,这个设备可以让你享受随身带着几个T的感受

    前言 有小伙伴问我,你怎么老写技术类文章,能不能写点别的. 其实我兴趣挺广泛的,早年还有机会做个游戏博主,可惜最近2年金盆洗手了.戒了手游,ns和ps4都在吃灰.能完整玩完的游戏屈指可数.但是对于折腾 ...

  10. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

随机推荐

  1. LeetCode刷题(不断更新)

    冲冲冲 125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: "A m ...

  2. Java 在PDF中绘制形状(基于Spire.Cloud.SDK for Java)

    Spire.Cloud.SDK for Java提供了pdfPathApi接口可用于在PDF文档中绘制形状(或图形),如绘制线条形状drawLine().绘制矩形形状drawRectanglef(), ...

  3. 教你几个部署多个nginx-ingress的注意事项

    本文分享自华为云社区<nginx-ingress工作原理以及多nginx-ingress部署注意事项>,作者: 可以交个朋友. 一.nginx-ingress工作原理 nginx-ingr ...

  4. 基于LiteOS Studio零成本学习LiteOS物联网操作系统

    摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资.LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开 ...

  5. 华为云Classroom聚焦人才数字化转型,引领智慧教育改革新模式

    随着教育行业数字化转型进程加快,利用现代化云端技术手段,线上线下相结合方式建立的全新OMO产教融合一体化已成为行业趋势.华为云Classroom平台沉淀了华为多年研发实践经验和多种前沿技术,以赋能伙伴 ...

  6. 这是你没见过的MindSpore 2.0.0 for Windows GPU版

    摘要:一文带你看看MindSpore 2.0.0 for Windows GPU版. 本文分享自华为云社区<MindSpore 2.0.0 for Windows GPU泄漏版尝鲜>,作者 ...

  7. 详解MRS CDL整体架构设计

    摘要:MRS CDL是FusionInsight MRS推出的一种数据实时同步服务,旨在将传统OLTP数据库中的事件信息捕捉并实时推送到大数据产品中去,本文档会详细为大家介绍CDL的整体架构以及关键技 ...

  8. 数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B 实验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)2023 数据飞轮汽车行业研讨会在上海举办,活动聚焦汽车行业数字化转型痛点,从字 ...

  9. 愉快的了解Charles

    charles是PC端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.除了在做移动开发中调式端口外,charles也可以用于分析第三方应用的通 ...

  10. Python网络编程:ZeroMQ

    大家好,我是老胡.最近在和小伙伴们一起搞事情,我是学统计出身,编程能力其实很差,有点拖后腿了.所以需要恶补基础,这个系列会更新几篇,感兴趣的同学可以一起学习交流. ZeroMQ概述 ZeroMQ(又名 ...