硬RAID管理(一)
一、开发理由:
公司开发新的存储平台管理系统需要实现很多功能,硬RAID管理便是其一。
二、开发环境:
并行存储系统采用的是GPFS、操作系统采用的是CentOS7.4、硬RAID管理采用的是Storcli
三、开发目标:
实现各种RAID的新建、删除
四、知识储备:
在这里介绍一下需要用到的各种知识:
(一)、各种RAID:
1 、raid0:RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能
2、raid1:RAID 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据
3、raid2:RAID 2是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些。
4、raid3:RAID 3是把数据分成多个“块”,按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据 是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的
5、raid4:RAID是英文Redundant Array of IndependentDisks的缩写,中文简称为独立磁盘冗余阵列。RAID就是一种由多块硬盘构成的冗余阵列。虽然RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。RAID4即带奇偶校验码的独立磁盘结构,RAID4和RAID3很象。在独立访问阵列中,每个磁盘都是独立运转的,因此不同的I/O请求可以并行地满足
6、raid5:RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。
7、RAID6:带有两种分布存储的奇偶校验码的独立磁盘结构。名字很长,但是如果看到图,大家立刻会明白是为什么,请注意p0代表第0带区的奇偶校验值,而pA代表数据块A的奇偶校验值。它是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合。当然了,由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必须的负载。我想除了军队没有人用得起这种东西。
8、RAID7:优化的高速数据传送磁盘结构。RAID7所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问数据的速度;每个磁盘都带有高速缓冲存储器,实时操作系统可以使用任何实时操作芯片,达到不同实时系统的需要。允许使用SNMP协议进行管理和监视,可以对校验区指定独立的传送信道以提高效率。可以连接多台主机,因为加入高速缓冲存储器,当多用户访问系统时,访问时间几乎接近于0。由于采用并行结构,因此数据访问效率大大提高。需要注意的是 它引入了一个高速缓冲存储器,这有利有弊,因为一旦系统断电,在高速缓冲存储器内的数据就会全部丢失,因此需要和UPS一起工作。当然了,这么快的东西,价格也非常昂贵。
9、RAID10:高可靠性与高效磁盘结构。这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速的目的。大家可以结合两种结构的优点 和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于数据容量不大,但要求速度和差错控制的数据库中。
10、RAID53:高效数据传送磁盘结构。越到后面的结构就是对前面结构的一种重复和再利用,这种结构就是RAID3和带区结构的统一,因此它速度比较快,也有容错功能。但价格十分高,不易 于实现。这是因为所有的数据必须经过带区和按位存储两种方法,在考虑到效率的情况下,要求这些磁盘同步真是不容易。
(二)、热备盘
热备盘相当于帮Raid阵列多做多个备份,如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。这样一来就等于Raid没受到损坏,然后你再找个一个同样的盘把坏盘替换掉,Raid和热备盘的状态又正常了!
(三)、外部配置
外部配置的来源是因为在创建了raid之后系统会在raid卡和硬盘中都保存raid信息,但是当raid卡中信息丢失,或者设备更换了新的raid卡,再或者在没有删除raid情况下将硬盘更换了设备,这是在raid卡中的raid信息和硬盘的raid信息是不匹配的,这种情况硬盘中的raid信息被称为外部配置
(四)、预留缓存管理
在新建完raid后需要对raid进行读写,这些读写都是通过raid卡进行读写,所有信息都要经过raid处理,所以raid卡中会缓存数据的,当raid卡在对某个raid进行读写的时候该raid突然损坏无法使用,raid卡中的缓存信息就没有办法写入raid中,这是这些缓存信息便留在了raid卡中,被称为预留缓存
五、Storcli命令介绍:
大部分命令可以在一下几个地方找到:
http://blog.51cto.com/mofesi/1309251
https://wenku.baidu.com/view/033080ca03d276a20029bd64783e0912a2167c1e.html
接下来介绍用到的常用命令:
storcli64 show:查看raid卡的信息
storcli64 /c0/eall/sall show 查看所有的硬盘信息 (c0:第一个raid卡、eall:raid卡上连接的所有面板、sall:面板上所有的硬盘)
storcli64 /c0/eall/sall show rebuild 查看所有的重构(rebuild)信息
设置磁盘状态
storcli64 /c0/ex/sx set good force 设置0:x:x硬盘状态为good
storcli64 /c0/ex/sx set online 设置0:x:x硬盘状态为online
storcli64 /c0/ex/sx set offline 设置0:x:x硬盘状态为offline
storcli64 /c0/ex/sx set missing 设置0:x:x硬盘状态为missing
storcli64 /c0/ex/sx set add hotsparedrive 设置0:x:x硬盘为热备盘
storcli64 /c0/ex/sx set delete hotsparedrive 设置0:x:x硬盘解除热备
磁盘定位
storcli64 /c0/ex/sx start locate
storcli64 /c0/ex/sx stop locate
读取raid列表
storcli64 /c0/vall show all
storcli64 /c0/vall show init
创建raid
storcli64 /c0 add vd type=raid[0|1|5|6|10|50|60] size=all drives=133:0-1|drives=133:0,133:1 pdperarray=2
storcli64 /c0/vx start init[full] force
删除raid
storcli64 /c0/v0 del force
读取外部配置列表
storcli64 /c0/fall show
导入外部配置
storcli64 /c0/fall show
删除外部配置
storcli64 /c0/fall delete
读取预留缓存列表
storcli64 /c0 show preservedcache
删除预留缓存
storcli64 /c0/vx delete preservedcache force