说明:
这可能是全网最全面、最详细、最实用、最权威的服务器raid卡与raid级别科普文章了,并且总结了各raid级别允许坏盘数量、可靠性、读性能、写性能、磁盘利用率、应用场景等。
一、相关概念
RAID:Redundant Arrays of Independent Disks
意为“独立磁盘构成的具有冗余能力的阵列”
目的:在存储技术还未普及时,大容量硬盘比较昂贵,为了将多个容量较小、相对廉价的硬盘进行有机组合,以较低的成本获得与昂贵大容量硬盘相当的容量、性能、可靠性,RAID技术应运而生。
现如今,各行各业有对于数据处理、存储能力的要求越来越高,单一硬盘早已经不能满足需要,因此,RAID技术进一步发展。
容错(Fault Tolerance)
容错是指在子系统出现磁盘错误或磁盘故障时,可以保证数据完整性和数据处理能力。RAID卡通过冗余的磁盘组在RAID 1、5、6、10、50、60上实现此功能。
在RAID 1中,由于数据镜像存储于成对的磁盘上,因此在成对的磁盘中的一个产生错误或故障时,不会造成数据丢失。同理,在RAID 5中,允许1个磁盘故障;在RAID 6中,允许2个磁盘故障。
而对于包含多个子组的RAID,RAID 10、50允许故障盘的个数与子组数相同,但是要求每个子组只能包含1个故障盘。RAID 60允许故障盘的个数为子组数的2倍,要求每个子组最多包含2个故障盘。
数据重建(Disk Rebuilds)
当RAID组列中的硬盘发生故障或者一致性校验发现数据错误时,可以通过重新创建硬盘中之前的数据或者对数据进行修正的方式,对硬盘进行重建。
只有具有数据冗余能力的RAID组列才能执行重建,其中包括RAID 1、5、6、10、50和60。由于RAID 0不具备冗余性,因此不支持一致性校验。
硬盘直通
- 硬盘直通,即“JBOD”功能,又称指令透传,是不经过传输设备处理,仅保证传输质量的一种数据传输方式。
- 打开硬盘直通功能后,RAID控制器可对所连接的硬盘进行指令透传,在不配置虚拟磁盘的情况下,用户指令可以直接透传到硬盘,方便上层业务软件或管理软件访问控制硬盘。
校验(Parity)
校验从父数据集生成一组冗余数据。发生驱动器故障时,冗余数据可用于重建父数据集之一。
一致性校验(Consistency Check)
一致性校验是验证具有冗余能力的RAID组列(RAID1/5/6/10/50/60)中条带上的数据是否一致,如果不一致会对错误进行标记并尝试做自动修复。
该过程中RAID控制器会对成员盘中的数据进行检查和计算,生成新的校验数据与校验盘中的数据进行比对,若出现不一致,则会使用新的奇偶校验数据修正错误数据。
针对有冗余功能的RAID 1、5、6、10、50、60由于RAID 0不具备冗余性,因此不支持一致性校验
巡读(Patrol Read)
巡读功能通过对控制器下的硬盘进行巡回检查,以发现可能导致硬盘故障的潜在错误,然后采取措施纠正错误。巡读的目的是在数据损坏之前检测出硬盘故障,从而保护硬盘上数据的完整性。
巡读操作仅在控制器闲置了一段规定的时间后,并且没有其他后台任务执行时才会开始。
热备份(Hot Spares)
RAID卡的热备份特性由热备盘和紧急备份功能实现。 热备盘 •热备盘是磁盘系统中的一个独立的磁盘,当RAID中的磁盘故障时,热备盘自动补充到RAID中替代故障盘,提供系统的容错性能。 •热备盘包括全局热备盘和局部热备盘 •热备盘仅用于具有冗余功能的RAID,包括RAID 1、5、6、10、50、60 紧急热备 •紧急备份功能,是指任意一个具备冗余功能的RAID组中出现成员盘故障且没有指定热备盘时,RAID卡下属的空闲盘会自动替代故障成员盘并进行重构,避免数据丢失。硬盘条带化(Disk Striping)
硬盘条带化是指将一块连续的数据分成很多规定大小的数据块,并把它们分别存储到不同硬盘上的方法 由于数据存放在不同的硬盘上,那么在顺序访问这些数据的时候,就可以同时从多个不同的硬盘获取数据,按照并行的方式处理数据,大大提高了I/O性能。硬盘节能(Power-Save)
RAID卡具备磁盘省电功能。此功能根据磁盘配置和I/O活动允许磁盘停转。所有旋转式SAS和SATA磁盘均支持此功能。 当硬盘节能功能开启时,RAID卡下挂载的“Unconfig Good”状态的磁盘和空闲热备盘均处于节能状态。当有相关操作(例如创建RAID,创建热备盘,动态扩盘,进行热备重构)时可唤醒正处于节能状态的磁盘二、RAID级别
RAID0-Striped Disk Array without Fault Tolerance(没有容错设计的条带磁盘阵列)
•一种简单的、无数据校验的数据条带化技术。
RAID1-Mirroring and Duplexing(相互镜像)
- RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,它的磁盘空间利用率为 50% 。
- RAID1 在数据写入时,响应时间会有所影响
RAID5-Indenpent Data disks with distributed parity blocks(独立的数据磁盘与分布式校验块)
特点:
- 数据以块分段条带化存储。
- 校验信息交叉地存储在所有的数据盘上。
- 平衡性能与数据冗余
RAID6
特点:
- 双重校验:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。
- 两个独立的奇偶系统使用不同的算法
- 数据的可靠性更高,可允许两块磁盘同时失效
- 但需要分配给奇偶校验信息更大的磁盘空间,成本更高
- 写性能比RAID5差。
- 需要4盘及以上(部分算法可允许3盘)
- 校验信息交叉地存储在所有的数据盘上
高级RAID:
RAID10:先组建RAID1,再使用多组RAID1组建RAID0;
RAID01:先组建RAID0,再使用RAID0组建RAID1;
以四块硬盘RAID10/01为例,由于RAID10冗余度高,所以优于RAID01
RAID5E:在RAID5的基础上每块盘预留一部分空间做热备空间使用;
RAID5EE:在RAID5E的基础上将预留的热备空间条带化;
RAID50:先组建RAID5,再使用多组RAID5组建RAID0;
RAID60:先组建RAID6,再使用多组RAID6组建RAID0;
RAID1E:将数据条带化后任一份数据在不同的磁盘上写两次,至少需要3块硬盘才能实现;
JBOD(Just a Bunch of Drives):磁盘控制器把每个磁盘看做独立的磁盘;不提供数据冗余。
三、RAID实现形式
软件RAID(software-basedRAID)是基于软件的RAID
- 很不少服务器操作系统都集成了RAID功能,但是它的CPU占用率非常高,并且只有非常有限的阵列操作功能。
- 软件RAID是在操作系统下实现RAID,软件RAID不能保护系统盘。
- 部分操作系统,RAID的配置信息存在系统信息中,而不是存在硬盘上;当系统崩溃需要重新安装时,RAID信息也会丢失。
- 软件RAID5对CPU的消耗较大,会导致I/O功能的降低,所以不建议使用软件RAID5。
硬件RAID主要通过外插卡来实现,部分主板固化RAID芯片支持硬RAID功能
- 支持较高的RAID级别,如RAID5/6/50/60等;
- 较高的稳定性、可靠性;
- 支持更多高级功能,如:
- Online Capacity Expansion(OCE);
- Online RAID Level Migration(RLM);
- S.M.A.R.T support;
- Configurable stripe size up to 1MB;
- Global and dedicated Hot Spare with Revertible Hot Spare support.
Host RAID是基于硬和软RAID之间的一种产品
- Host RAID把软件RAID的功能集成到产品的固件上,从而提高了产品的功能和容错能力。
- 能够实现简单的RAID功能,如RAID0/1/10。
- 部分主板集成了IO控制芯片,如LSI SAS2008/SAS3008,也可以实现一定的Host RAID功能。
四、服务器SAS卡分类
五、服务器RAID卡介绍
SAS卡/RAID卡本质上也是一台计算机
六、服务器RAID卡存储链路拓扑图
七、服务器RAID卡芯片与板卡
RAID-on-Chip ICs (ROCs)
SAS/SATA Storage I/O Controllers (IOCs)
八、服务器RAID卡命名规范
[厂商]|[产品型号]|[接口类型]|[端口数量][端口类型][端口数量][端口类型]|[端口方向][扩展类型]|[端口传输率]|[类型]
当前主流速率为PCIe4.0
PCIe 5.0将PCIe 4.0的每通道16GT/s(~2GB/s)带宽翻倍,提供32GT/s的传输速率,此外还提供更灵活的通道数配置,将存储,网络和AI应用的I/O性能显著提升。
九、服务器RAID卡技术趋势
接口规格
Tri-Mode=SATA+SAS+NVMe
LSI3516 Tri-Mode
十、服务器RAID卡FW
- IT/IR/iMR/MR代表LSI不同的FW系列
- IT: Initiator-Target, LSI使用的FW,不支持任何级别的RAID;
- IR: Integrated RAID,集成RAID,支持RAID0/1/10/1E;
- (SAS3008以后的芯片不再支持IR)
- iMR: Integrated MegaRAID,使用MegaRAID架构,但是没有缓存,只支持RAID0/1/5/10/50;
- (Broadcom官方8端口以上的产品不支持iMR)
- MR: MegaRAID软件内核,有缓存,为硬件RAID
十一、服务器RAID卡驱动类型
驱动类型
- HBA卡:mpt3sas
- RAID卡:megaraid_sas
linux系统安装驱动
- 系统安装界面,进入安装选项时点ESC取消加载,出现boot命令行,输入linux dd
- 选择driver所在的U盘,加载dd.iso文件
Linux系统升级驱动
- RHEL/CentOS
- rpm -ivh kmod_xxx.rpm
- Debian系
- dpkg –i kmod_xxx.deb
十二、服务器RAID卡工具使用与RAID配置
- Ctrl R图形界面
- HII图形界面
1、启动系统进入BIOS,进入Advanced菜单,选中“PCIe Devices List”选项并进入:
2、将LSI Tri-Mode SAS3508-Option ROM P0设置为UEFI,按下F4后保存,重启服务器:
3、进入BIOS中,进入Advanced菜单,选中“AVAGO MegaRAID<AVAGO MegaRAID SAS 9460-8i>Configuration Utility”,即可进入LSI 3508 HII界面:
- 命令行工具Storcli
- Megacli官方已经不再更新
- StorCli基本能够实现megacli的全部功能
- StorCli输出格式更为标准,有利于字段处理
RAID卡(如3108、3316)管理通用工具,最新版本加入了对HBA卡(如3008)的支持
64位系统命令的绝对路径为:/opt/MegaRAID/storcli/storcli64;32位系统命令的绝对路径为:/opt/MegaRAID/storcli/storcli。
/opt/MegaRAID/storcli/storcli64 -v 显示软件版本信息
/opt/MegaRAID/storcli/storcli64 -h 查看帮助信息
/opt/MegaRAID/storcli/storcli64 show 查看RAID卡、系统内核、主机名等信息
i. /opt/MegaRAID/storcli/storcli64 /c0 show all
查看第一块RAID卡版本、功能、状态、以及raid卡下的物理磁、逻辑盘信息。c0代表第一块raid卡,如果有多块则命令以此类推。ii. /opt/MegaRAID/storcli/storcli64 /c0 /cv show all
显示supercap信息
i. /opt/MegaRAID/storcli/storcli64 /c0 flushcache 清除第一块RAID卡缓存
ii. /opt/MegaRAID/storcli/storcli64 /c0 add vd type=raid5 size=all names=tmp1 drives=252:2-4 由第3、4、5块物理磁盘来构建RAID5,分配所有空间的逻辑磁盘命名tmp1
iii. /opt/MegaRAID/storcli/storcli64 /c0 add vd each type=raid0 drives=252:0,1,2,3 单独为每一块物理磁盘创建raid0
iv. /opt/MegaRAID/storcli/storcli64 /c0 /v0 del force 强制删除某个逻辑磁盘
v. /opt/MegaRAID/storcli/storcli64 /c0 /v0 set wrcache=wt/wb/awb 设置写策略 wt:write through;wb:write back; awb:always write back
vi. /opt/MegaRAID/storcli/storcli64 /c0 /v0 set rdcache=nora 设置读策略 ra:read ahead;nora:no read ahead
i./opt/MegaRAID/storcli/storcli64 /c0 /fall show 查看所有的foreign信息
ii. /opt/MegaRAID/storcli/storcli64 /c0 /fall import 导入所有的foreign
i. /opt/MegaRAID/storcli/storcli64 /c0 show rebuildrate 查看第一块RAID卡rebuildrate速度
ii. /opt/MegaRAID/storcli/storcli64 /c0 /e252 /sall show rebuild 查看磁盘重建进度
iii. /opt/MegaRAID/storcli/storcli64 /c0 /ex /sx start rebuild 开始重建
iv. /opt/MegaRAID/storcli/storcli64 /c0 /ex /sx stop rebuild 停止重建
v. /opt/MegaRAID/storcli/storcli64 /c0 set autorebuild=off 关闭自动重建
/opt/MegaRAID/storcli/storcli64 /c0 /eall /sall show all 查看第一块RAID卡上物理磁盘详细信息
/opt/MegaRAID/storcli/storcli64 /c0 /eall /s1 show all 查看第一块RAID卡上第二块物理磁盘详细信息
十三、服务器RAID性能分析
影响因素
- Hardware:Host System Bus、SAS/SATA Bus、Disk Performance、Host CPU、Host Chipset
- Host System:Operating System、Driver Parameters、Storage Monitoring、NUMA、Hyper-Threading
- BenchMark:Queue Depth、Workload Characteristic、Efficiency
基本结论
- PCIe 3.0 x8理论8000 MB/s(实际效率 6400 MB/s )
- RAID卡/Expander背板损耗,10~20%
- JBOD模式更有助于发挥Drive的最大带宽
- RAID cache(write back)有效提升写性能
- RAID1 写性能低于单盘
- Write through模式下RAID5/6随机写性能接近单盘(RAID5为例,因为校验盘的存在,每次写伴随着数据盘的读写和校验盘的读写,至少两次读+两次写)
常见性能下降案例
- SSD与HDD混插,会严重降低SSD性能(等同HDD)
- 使用过旧的FW或driver
- RAID卡的后台初始化等任务后降低IO性能