1、RAID介绍(独立磁盘冗余阵列)
RAID是一种将多个物理的硬盘组合成一个逻辑硬盘来使用的虚拟化技术。
- 高效的数据组织:条带化和并行访问;
- 数据保护:奇偶校验和热备盘
2、RAID热备盘
★当RAID中某一磁盘发生故障时,热备盘能自动取代故障磁盘,并自动将故障磁盘的数据重构在热备磁盘上;
★通过设置热备盘,可以快速的实现故障磁盘的自动化替换和数据的重构,降低了由于磁盘故障所带来的数据丢失的风险;
★热备盘类型①全局热备盘:服务于阵列中所有的RAID组;
②专用热备盘:仅服务于某一特定RAID组;
3、RAID重构、状态和使用
3.1、重构技术简介
当RAID中有磁盘故障,则通过热备盘或更换新硬盘替代故障硬盘,此时RAID会进行重构。RAID重构是在不影响系统运行的情况下进行的。
传统RAID | RAID2.0+ |
需要手动配置单独的全局或局部热备硬盘 | 分布式的热备空间,无需单独配置 |
多对一的重构,重构数据流串行写入单一的热备硬盘 | 多对多的重构,重构数据流并行写入多块硬盘 |
存储热点,重构时间长 | 负载均衡,重构时间短 |
3.2、物理卷和逻辑卷
★RAID由几个硬盘组成,从整体上看相当于一个物理卷;
★在物理卷的基础上可以按照指定容量创建一个或多个逻辑卷,通过LUN来标识;
3.3、RAID的实现方法
- 硬件RAID→使用专门的RAID适配器,硬盘控制器或存储处理器,有自己的处理器I/O处理芯片和内存,RAID控制器管理路由,缓冲区,控制主机与RAID间数据流(在服务器中使用)
- 软件RAID→没有它自己的处理器或i/o处理芯片,而是完全依赖于主机处理器,低速CPU不能满足RAID实施的要求软件RAID通常在企业级存储设备上使用。
4、RAID的数据组织形式
- 条带(strip)硬盘中单个或者多个连续的扇区构成一个条带,是一块硬盘上进一次数据读写的最小单元,它是组成分条的元素。
- 分条(stipe)同一硬盘阵列中的多个硬盘驱动器上的相同“位置”(或者说是相同编号)的条带。
- 分条宽度:指在一个分条中数据成员盘的个数;
- 分条深度:条带的容量大小;
5、RAID数据保护的方式
方法一:在另一块冗余的硬盘上保存数据的副本;方法二:奇偶校验算法(XOR)
6、RAID技术的主要功能
- 通过对硬盘上的数据进行条带化实现对数据成块存取,减少硬盘的机械寻道时间,提高了数据存取速度;
- 通过对阵列中的几块硬盘同时读取(并行访问)减少了硬盘的机械寻道时间;
- 通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护;
- 提供更大的容量的存储 ,提高硬盘访问速度;通过提供镜像或奇偶校验提供容错;
RAID级别 | 描述 | ||||||
RAID 0 | 数据条带化,无校验;具有最高的存储性能;1块硬盘故障,所有数据丢失; | ||||||
RAID 1 | 数据镜像,无校验;同时写入,同时读取,提高读取性能;不支持并行并发; | ||||||
RAID 3 | 数据条带化,校验信息单盘存放;检验冗余(RAID5同是) | ||||||
RAID 5 | 数据条带化,校验信息分布式存放;数据以分条的形式写入磁盘组中 | ||||||
RAID 6 | 数据条带化,分布式校验提供两级冗余; | ||||||
RAID 10 | 组内做RAID 1,组间做RAID 0,即采用数据镜像又做条带化; | ||||||
RAID 50 | 组内做RAID 5,组间做RAID 0,分布式校验提供两级冗余; | ||||||
RAID的作用:防止数据的丢失,提高数据存取速度, | |||||||
RAID | RAID 0 | RAID 1 | RAID 3 | RAID 5 | RAID 6 | RAID 10 | RAID 50 |
典型环境 | 迅速读写安全性要求不高,如图形工作站等 | 随机数据写入,安全性要求高,如服务器,数据库存储领域 | 连续数据传输,安全性要求高,如视频编辑、大型数据等 | 随机数据传输,安全性要求高,如邮件服务器、文件服务器等 | 数据量大,安全性要求高,如银行、金融等领域 | 随机数据传输,安全性要求高,并发能力要求高,如邮件服务器、www服务器等 | |
磁盘利用率 | 100% | 50% | 可损1 (n-1)/n | 可损2 (n-2)/n | 50% | ||
描述一 | 不带奇偶校验的条带集(大容存储设备) | 原硬盘和镜像硬盘(提高数据可靠性) | 带有专用奇偶校验的分条 | 带分布式奇偶校验码的独立硬盘结果 | 双校验位 | RAID 0和RAID 10的结合 |
7、RAID级别的比较
RAID级别 | RAID 0 | RAID1 | RAID3 | RAID5 | RAID6 | RAID10 | RAID50 |
最小硬盘数或配置 | 2块或2块以上 | 2块 | 3块 | 3块 | 4块 | 4块 | 6块 |
容错性 | 无 | 有 | 有 | 有 | 有 | 有 | 有 |
冗余类型 | 无 | 复制 镜像冗余 | 奇偶校验 | 分布式奇偶校验 | 奇偶校验 | 复制 | 奇偶校验 |
热备盘选项 | 无 | 有 | 有 | 有 | 有 | 有 | 有 |
读性能 | 高 | 低 | 高 | 高 | 高 | 一般 | 高 |
随机写性能 | 高 | 低 | 最低 | 低 | 低 | 一般 | 低 |
连续写性能 | 高 | 低 | 低 | 低 | 低 | 一般 | 低 |
可用容量 | n×单块硬盘容量 | (1/n)×单块硬盘容量 | (n-1)×单块硬盘容量 | (n-1)×单块硬盘容量 | (n-2)×单块硬盘容量 | (n/2)×单块硬盘容量 | (n-2)×单块硬盘容量 |
描述二 | RAID0即没有容错设计的条带硬盘阵列以条带形式将RAID组的数据均匀分布在各个硬盘中,以带区形式在2个或多个物理磁盘存储数据被交替平均地分配给这些磁盘并行读写在所有级别中RAID 0速度最快但不冗余 | RAID1称镜像数据同时一致写到主硬盘和镜像硬盘,将相同数据同时复制到两组物理磁盘中如果其中的一个出现故障系统能够继续使用尚未损坏的磁盘可靠性最高但磁盘利用率低 | 采用的是N+1的数据保护方法; 采用单硬盘容错和并行数据传输;以分条的方式读取数据;每块硬盘都充分利用提升了读取性能; | RAID5是把数据和其他相对应的奇偶校验信息存储到组成RAID5的各个磁盘上并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息恢复被损坏的数据至少需要3块物理驱动器 | RAID6是带有两个独立分布式奇偶校验硬盘的阵列,能够允许两个硬盘同时失效,和RAID5相似RAID 6采用了校验数据不同的是RAID6有两份校验数据可以保证同一RAID组中两块磁盘同时故障而不丢失数据 | RAID10是将镜像和条带进行两级组合的RAID级别,第一级RAID1镜像对,第二级RAID0也是一种应用比较广泛的RAID级别 |
8、RAID6的介绍
8.1、RAID6
- 具有两种校验算法的RAID类型;
- 需要至少N+2(N>2)个硬盘来构成阵列,一般用在数据可靠性、可用性要求极高的应用场合;
8.2、常用的RAID 6技术有:
- RAID 6 P+Q
- RAID 6 DP
9、RAID 2.0+技术
将物理空间和数据空间分散成块;是华为虚拟化技术,充分发挥系统的读写能力,方便扩展和空间分配;采用底层磁盘管理和上层资源管理两层虚拟化管理模式;
RAID 2.0+基于数据块构建RAID组,以数据块为单元进行资源管理,大大提高了资源管理的效率;
- RAID有效容量计算公式
:RAID0≈n×c;RAID1≈c; RAID5≈(n-1)×c;
RAID6≈(n-2)×c; RAID10≈(n/2)×c;[n硬盘数;c单个硬盘格式化后的可用容量]
11、多路径技术概述
典型的路径:主机----SAN网络----存储系统机头----存储系统磁盘
即在一台主机和存储阵列端使用多条路径连接,使主机到阵列的可见路径大于一条,其间可以跨过多个交换机,避免在交换机处形成单点故障。
12、多路径作用
- 避免了同一LUN有多路径可达导致的操作系统逻辑错误;
- 增强了链路的可靠性,避免了因为单个链路故障而导致的系统故障;
13、硬盘
Disk Domain级硬盘域,是一堆硬盘的组合(可以是整个系统所有硬盘)这些硬盘整合并预留热备盘容量后统一向存储池提供存储资源;
一个硬盘域就是一组硬盘,一个硬盘只能属于一个硬盘域;
13.1、存储池Storage Pool &存储层级Tier
- 存储池,是存放存储空间资源的容器,所有应用服务器使用的存储空间来自于存储池;
- 存储层级,存储池中性能类似的存储介质集合,用于管理不同性能的存储介质,以便不同性能要求的应用提供不同存储空间;
存储层级 | 层级名称 | 支持硬盘类型 | 应用 | RAID级别 | RAID策略 |
Tier 0 | 高性能层 | SSD | 性能和价格较高,适合存放访问频率很高的数据; | RAID 1 | 1D+1D、1D+1D+1D+1D |
RAID 10 | 系统自动选择2D+2D或4D+4D | ||||
Tier 1 | 性能层 | SAS | 性能较高,价格适中,适合存放访问频率中等的数据; | RAID 3 | 2D+1P、4D+1P、8D+1P |
RAID 5 | 2D+1P、4D+1P、8D+1P | ||||
Tier 2 | 容量层 | NL-SAS | 性能较低,价格最低且单盘容量大,适合存放大容量的数据以及访问频率较低的数据; | RAID 50 | (2D+1P)*2、 (4D+1P)*2、 (8D+1P)*2、 |
RAID 6 | 2D+2P、4D+2P、8D+2P、16D+2P |
Disk Group(DG)
即硬盘组,由硬盘域内相同类型的多个硬盘组成的集合,硬盘类型包括SSD、SAS和NL-SAS三种:Logical Drive(LD)和Chunk(CK)
- Logical Drive即逻辑硬盘,是被存储系统所管理的硬盘和物理硬盘一一对应;
- Chunk是存储池内的硬盘空间切分成若干个固定大小的物理空间组成raid的基本单位;
13.2、Chunk Group(CKG)和Extent
- CKG是由来自于同一个DG内不同硬盘的CK按照RAID算法组成的逻辑存储单元,是存储池从硬盘域上分配资源的最小单位;
- Extent是在CKG基础上划分的固定大小的逻辑存储空间,大小可调,是热点数据统计和迁移的最小单元,(数据迁移粒读)也是存储池中申请空间、释放空间的最小单位;
13.3、Grain和Volume&LUN
- 在Thin LUN模式下,Extent按照固定大小被进一步划分为更细粒度的块,这些块称之为Grain。Thin LUN以Grain为粒度进行空间分配,Grain内的LBA是连续的。
- Volume即卷,是存储系统内部管理对象。
- LUN是可以直接映射给主机读写的存储单元,是Volume对象
的对外体现。
14、RAID 的制作
前言: RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity )。镜像,将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁盘需要更多的时间消耗。 数据条带,将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的 I/O 性能提升。数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。 不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I/O 性能。至于设计何种 RAID (甚至新的等级或类型)或采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。 RAID分为不同的等级,不同等级的RAID均在数据可靠性以及读写性能上做了不同的权衡。在实际应用中,可以依据实际需求选择不同的RAID方案。 ——————————————————————————————————————— RAID 0的制作 RAID0称为条带化储存,他以连续位或字节为单位进行数据分割,将数据分段储存于各个硬盘中。
因为raid0的构成需要两个磁盘,首先我们需要在系统中添加两块磁盘并对其进行分区,同时要记得将其文件系统类型修改为raid。 在创建raid卷前我们还有一样准备工作需要做,那就是查看我们系统中创建raid卷的工具mdadm是否已经安装了,如果没有安装我们可以使用“yum install mdadm”命令从yum源中进行安装。 前面的准备工作已经完成了,现在我们就可以进行raid0的创建了。这里我们创建一个在dev目录下名为md0的raid0卷。创建raid0的命令为“mdadm -C -v /dev/mdo -l0 -n2 /dev/sd[b-c]1” 创建完成记得使用命令“mdadm -D /dec/md0”对创建结果进行查看。 命令“cat /proc/mdstat”同样可以查看创建结果,不过此命令偏向于查看磁盘状态。 raid卷已经建已完成了,但要真正使用我们还要对其进行格式化与挂载,这里我们对raid卷md0进行格式化与挂载。格式化命令“mkfs.xfs /dev/md0”,挂载命令“mount /dev/md0 /opt/md0”。 ——————————————————————————————————————— RAID 1的制作 DAID1称为镜像储存,它通过磁盘数据镜像实现数据冗余,原理是在成对的独立磁盘上产生互为备份的数据。
raid1的构成条件同样需要两块磁盘,但是这里我们考虑到实际生产情况,我们在两块盘的基础上给它再加一块备用盘,以备不时之需。所以在创建raid前我们还是需要添加两块磁盘,并对其进行分区和文件系统类型的修改。这里由于两块盘的操作一样,就只对一块盘的操作进行演示。raid1创建前同样需要查看raid创建工具mdadm是否已经安装,操作如raid0时一样。 这时前面的准备工作就已经完成了,我们可以开始创建raid1卷了。 每次操作完成一定要记得查看我们的操作结果。 raid1创建完成,我们还要记得对其进行格式化与挂载才能正常使用。 既然我们给它配了一个备用磁盘,所以还要记得对其进行验证能否正常使用。这里我们首先的md1中写入内容。 因为我们的备用磁盘就是为了在某块磁盘意外损坏时及时顶替它的工作,所以我们这里模拟两块工作的磁盘中的一块损坏,经过验证发现在其损坏之后并不影响我们数据的正常读取,而且备用磁盘sdf1也在第一时间进入了工作模式。 ——————————————————————————————————————— RAID 5的制作(1) RAID5是一种存储性能、数据安全与储存成本兼顾的储存解决方案,可以理解为RAID0与RAID1的折中方案。RAID 5的作用是为系统提供数据安全保障。把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
创建raid5需要起码三块磁盘,考虑到实际生产情况我们还需要为其配置一块备用磁盘,所以这里我们一共需要添加四块磁盘,并且对其进行分区与文件系统类型的修改。 创建完分区我们就可以利用它们来构建我们的raid5卷了。 创建完成后一定要记得查看我们的创建结果。 raid5卷也已经创建完成了,但之后如果想真正使用还需要对raid5进行格式化与挂载。 RAID 5的制作(2) 打开虚拟机,做 RAID 5 条 需四块磁盘 ,按图示步骤可以添加多块磁盘以备后续实验使用,之后重启虚拟机。 使用fdisk工具在硬盘中建立分区。先用" fdisk -l "命令查看磁盘是否添加成功,再用“ fdisk /dev/sd* “命令 分别对sdb,sdc,sdd,sde 四块磁盘 进行磁盘分区的创建,按图示进行创建n ,t 更改文件类型,w保存。具体操作命令如下: 再用” fdisk -l "命令查看磁盘分区详细信息,具体操作命令如下: 用mdadm 工具创建 RAID 5, "-C“是创建,”-v"是显示详细过程,“-l”是类别,“-n"是指几块磁盘,“x"是指备用保留几块磁盘。创建完,用“cat”命令查看,或者用“mdadm -D ”命令查看更为详细。 对名为md1的 RAID5 进行格式化,即创建文件系统的过程。并创建一个目录名为raid5 作为挂载点。 把 md1 挂载到raid5上。并用”df -hT“命令查看是否挂载成功。 用” mdadm -f "命令 把其中的sdb1磁盘移除,再用 “ mdadm -D ”命令查看备用磁盘是否正常替换。 raid5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不是很好,而且控制器的设计也相当困难。对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 ——————————————————————————————————————— RAID6采用双重校验技术,在RAID5的技术上增加了第二个独立的奇偶校验信息块,两个独立的奇偶系统使用不同的算法使得数据的可靠性非常高。
raid6的创建步骤其实与raid5十分相似,只不过因为原理所以需要的磁盘数量会比raid5多一块,创建raid6前我们需要把它们添加进来并对其进行分区与文件系统类型的修改。 接下来就是我们创建raid6的步骤了。 创建完raid6后同样需要我们验证创建结果。 在raid6创建完成后我们要经过格式化与挂载才能真正被使用。 ——————————————————————————————————————— RAID10是RAID1和RAID0的结合,先做镜像再做条带,兼容了RAID1的容错能力与RAID0的条带化读写数据的优点,性能好,可靠性高。
raid10的构成需要四块磁盘,我们先添加四块磁盘进去,并对其进行分区和修改文件系统类型。 根据raid10的原理,我们下一步就需要把四块硬盘两两创建两对raid1。 创建完raid1之后我们再利用raid1创建raid0。到此时我们的raid10就创建完成了。 创建完成后同样需要我们对创建结果进行查看。 raid10要正式开始使用还需要对其进行格式化与挂载。 raid10要正式开始使用还需要对其进行格式化与挂载。 ——————————————————————————————————————— |