Raid卡管理
一、Raid简介
RAID(Redundant Array of Independent Disks),即独立磁盘冗余阵列,其前身为Redundant Array of Inexpensive Disks,即廉价磁盘冗余阵列。
其主要是用来将多个相对廉价的磁盘组合成一个磁盘阵列组,使其性能达到甚至超过一个价格昂贵的、容量巨大的硬盘。它可以增强数据集成度,增强容错功能,增加处理量和容量。
二、Raid种类
根据实现模式,分为软件和硬件两种:
软件磁盘阵列(Software RAID),主要由电脑主板CPU处理数组存储作业,缺点为耗损较多CPU资源运算RAID,优点则是价格偏低。分类有二种:纯软件磁盘阵列(Pure Software RAID):只需要主板支持即可,不需要任何磁盘阵列卡。若主板损坏,可能难以购买同款主板重建RAID。硬件辅助磁盘阵列(Hardware-Assisted RAID):需要一张RAID卡,以及厂商所提供的驱动程序。这款RAID较易迁移到其他电脑。
硬件磁盘阵列(Hardware RAID)RAID卡上内置处理器,不需要服务器的CPU运算。优点是读写性能最快,不占用服务器资源,可用于任何操作系统,也能在系统断电后,通过备份电池模块(BBU, Backup Battery Unit)以及非易失性存储器 (NVRAM)将硬盘读写日志档(Journal)包含的剩余读写作业先纪录在存储器中,等待电力供应撤消后,再由NVRAM取回日志档数据,接着再完成读写作业,将剩余读写作业安全完成以确保读写完整性。备份电池模块通常会配合数组卡的Write-Back缓存模式,借由此存储器缓存读写作业以得到更高的读写性能;但是没有备份电池模块的硬件磁盘阵列卡,切勿使用Write-Back缓存模式以免遭遇断电情形导致读写数据流失。此外,因为硬件磁盘阵列卡搭载CPU处理器,所以可以与系统分离出来,对硬盘进行各种作业,还原作业的速度也比软件磁盘阵列快。缺点是其售价很高,通常只用于RAID 5和RAID 6。
其中标准的Raid有Raid-0,Raid-1,Raid-2,Raid-3,Raid-4,Raid-5,Raid-6。扩展的Raid有Raid7,Raid-10,Raid-01,Raid-50,Raid-53,Raid-60。
l RAID 0
Raid0亦称为带区集。它将两个以上的磁盘并联起来,成为一个大容量的磁盘。在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,危险程度与JBOD相当。
l RAID 1
两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一半磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。
如果用两个不同大小的磁盘建RAID 1,可用空间为较小的那个磁盘,较大的磁盘多出来的空间也可以分区成一个区来使用,不会造成浪费。
l RAID 2
这是RAID 0的改进版,以汉明码(Hamming Code)的方式将数据进行编码后分区为独立的比特,并将数据分别写入硬盘中。因在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,磁盘空间利用率下降,RAID2最少要三台磁盘驱动器方能运作。
l RAID 3
采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据比特分割后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。
l RAID 4
它与RAID 3不同的是它在分区时是以区块为单位分别存在硬盘中,但每次的数据访问都必须从同比特检查的那个硬盘中取出对应的同比特数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。(块交织技术,Block interleaving)
l RAID 5
RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5至少需要三块硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
Size=(N-1) * Min(S1,S2,S3…Sn)
l RAID 6
与RAID 5相比,RAID 6增加第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,任意两块磁盘同时失效时不会影响数据完整性。RAID 6需要分配给奇偶校验信息更大的磁盘空间和额外的校验计算,相对于RAID 5有更大的IO操作量和计算量,其“写性能”强烈取决于具体的实现方案,因此RAID6通常不会通过软件方式来实现,而更可能通过硬件/固件方式实现。
同一数组中最多容许两个磁盘损坏。更换新磁盘后,数据将会重新算出并写入新的磁盘中。依照设计理论,RAID 6必须具备四个以上的磁盘才能生效。
Size=(N-2) * Min(S1,S2,S3…Sn )
l RAID 7
RAID 7并非公开的RAID标准,而是Storage
Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实现中使用大量的高速缓存以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实做产品。但也因为如此,在价格方面非常的高昂
l RAID 10
RAID 10是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作
l RAID 01
RAID 01则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。
当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜射再用三个建RAID 0,那么坏一个硬盘便会有三个硬盘脱机。因此,RAID 10远较RAID 01常用,零售主板绝大部分支持RAID 0/1/5/10,但不支持RAID 01。
l RAID 50

l RAID 53
它拥有一个镜射条带数组,硬盘里其中一个条带就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。
l RAID 60

三、 Raid对比表
RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID5为主。
RAID4有应用在某些商用机器上,像是NetApp公司设计的NAS系统就是使用RAID4的设计概念。
|
RAID等级 |
最少硬盘 |
最大容错 |
可用容量 |
读取性能 |
写入性能 |
安全性 |
目的 |
应用产业 |
|
0 |
1*n |
0 |
n |
n |
n |
平行存储(条带)一个硬盘异常,全部硬盘都会异常 |
追求最大容量、速度 |
影片剪接缓存用途 |
|
1 |
2*n |
n-1 |
n/2 |
n |
n/2 |
镜像存储,最高,一个正常即可 |
追求最大安全性,随机写性能低 |
个人、企业备份 |
|
10 |
4*n |
n/2 |
n/2 |
n |
n/2 |
安全性高 |
综合RAID 0/1优点,理论速度较快 |
大型数据库、服务器 |
|
5 |
3 |
1 |
n-1 |
n-1 |
n-1 |
高 |
随机和连续写性能低,追求最大容量、最小预算 |
个人、企业备份 |
|
6 |
4 |
2 |
n-2 |
n-2 |
n-2 |
安全性较RAID 5高 |
同RAID 5,但较安全 |
个人、企业备份 |
|
JBOD |
1 |
0 |
n |
1 |
1 |
无(同RAID 0) |
增加容量 |
个人(暂时)存储备份 |
|
单一硬盘 |
(参考) |
0 |
1 |
1 |
1 |
无 |
|
|
四、 Raid信息查看
本手册采用的是Megcli工具查看raid阵列信息,基本的软raid可以通过cat /proc/mdstat查看,基于硬raid可以通过dmesg |grep -i raid或者cat /proc/scsi/scsi或者/usr/dpt/raidutil -L all查看,也可以在服务器启动的时候Ctrl+R查看raid信息。lspci可以看到RAID卡的型号。
l 安装MegaCli软件
rpm -ivh MegaCli-8.07.07-1.noarch.rpm
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli
l 常用命令
查看Raid卡级别,显示所有逻辑磁盘组信息:MegaCli -LDInfo -LALL -aAll
显示Raid卡型号,Raid设置,Disk相关信息(坏块检查):MegaCli -cfgdsply -aALL
显示所有的物理信息,查看硬盘信息(硬盘状态) :MegaCli -PDList -aAll
显示所有适配器信息,支持的Raid卡种类:MegaCli -AdpAllInfo –aAll
查看Raid卡电池信息MegaCli -AdpBbuCmd –aAll
其他命令
显示适配器个数 MegaCli –adpCount
显示适配器时间 MegaCli -AdpGetTime –aALL
查看raid卡日志 MegaCli -FwTermLog -Dsply –aALL
查看充电状态 MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep 'Charger Status'
显示BBU状态信息 MegaCli -AdpBbuCmd -GetBbuStatus –aALL
显示BBU容量信息 MegaCli -AdpBbuCmd -GetBbuCapacityInfo –aALL
显示BBU设计参数 MegaCli -AdpBbuCmd -GetBbuDesignInfo -aALL
显示当前BBU属性 MegaCli -AdpBbuCmd -GetBbuProperties -aALL
显示硬盘重构进度:MegaCli -PDRbld -ShowProg -PhysDrv [32:3] -a0
l Raid级别信息
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0" #代表Raid 1
RAID Level : Primary-0, Secondary-0, RAID Level Qualifier-0" #代表Raid 0
RAID Level : Primary-5, Secondary-0, RAID Level Qualifier-3" #代表Raid 5
RAID Level : Primary-1, Secondary-3, RAID Level Qualifier-0" #代表Raid10
五、附录
相关Raid的详细介绍信息可以通过维基百科查看
https://zh.wikipedia.org/wiki/RAID