学号19021210731
【嵌牛导读】我们来聊一聊Raid是怎么回事、有什么作用、有哪些优缺点、如何实现等等。
【嵌牛鼻子】 Raid、硬盘
【嵌牛提问】Raid是什么
【嵌牛正文】 何为Raid
我们首先来认识一下这个概念,Raid全称为Redundant Arrays of Independent Drives,中文名称为磁盘阵列,直译为“冗余独立驱动器阵列”。简单来说就是多个硬盘组成的逻辑阵列。组Raid就是将多块独立的硬盘组合行成单一的逻辑阵列,当做一个整体来使用,用以实现提高传输速度、安全性等功能,多用于文件服务器或NAS。
Raid的种类
下面我们依次介绍较常见的Raid0/1/10/5/6和更高级一些的Raidz/z2,并分别介绍它们的工作原理和优缺点。不常见的Raid2/3/4和各种奇奇怪怪的组合如Raid100/30/50/60等就不多说了,理解了基础的,组合自然就明白了。如果没有标注,默认不同硬盘的容量相同。
1、Raid0
Raid0需要最少两块。
以两块硬盘为例,组Raid后容量为两者之和,读写数据时,同时对两块硬盘进行读写。
优点是带宽翻倍,理论上读写速度也翻倍。但缺点也是致命的,由于是将整体数据同时分别写在两块硬盘上,读取时也要同时读出才能得到完整的数据,所以只要阵列中一块硬盘损坏,整个阵列中的所以数据全部丢失。
总结来讲,速度×N,风险×N,利用率100%。
2、Raid1
Raid1最少也需要两块硬盘。
同样以两块硬盘为例,容量相当于最小的一块,多块同理。写入数据时,同时在所有硬盘上写入相同的数据,相当于做了镜像或备份,读取时如果一块硬盘损坏,还可以从阵列中其他的硬盘中读出完整数据。
优点是冗余性和安全性翻倍,缺点是利用率低。
总结,速度×1,风险×1/N,利用率1/N。
3、Raid10
顾名思义,就是Raid1+0,是Raid1和Raid0的结合,让两者取长补短。最少需要四块硬盘,或者m×n块的灵活组合都可,正是因为其是两种Raid模式的结合。
以四块硬盘为例,其中两块用作备份盘,两块用作增速盘。
先提一下Raid10的特殊实现方式,叫Raid10而不叫Raid01是有道理的,需要先把四块硬盘分为两组,组内先进行类似Raid1的组合,互为镜像,称作“做镜像”,再对两个“Raid1阵列”进行类似Raid0的组合,称为“做条带”。所以在读写时,同时对四块硬盘进行读写,其中每组写入不同数据(原数据中不同位置的数据,有可能相同,如1101中的前两个1,下同),每组中两块硬盘写入相同的数据。
优点是兼顾传输速度与安全性,缺点是性能开销大,而且……额……贵,权且当作方案的缺点吧。
总结,以四块硬盘为例,速度×2,风险×½,利用率50%。
同理,Raid01的原理大家可以反过来理解,先做条带,再做镜像。
4、Raid5
Raid5最少需要三块硬盘,其中需要拿出相当于一块硬盘的容量来存校验码,校验码采用奇偶校验方式算出,校验码不可全部在一块硬盘,其余用来存数据。用来存校验码的容量由从所有硬盘中不同位置取出相同的容量组成,加起来等于一块硬盘的容量,以三块硬盘为例,三块硬盘中各取出⅓的容量,被取出的容量在三块硬盘中不全在同一位置。
写入数据时,同时在两块硬盘上分别写入不同数据,最后一块硬盘写入算出的校验码,下一次写入的校验码不可与上一次的校验码存于同一块硬盘。如果某一块硬盘损坏,则只需要替换掉损坏的硬盘,通过均匀分布在各硬盘中的数据和校验码,就可以恢复重建损坏硬盘中的数据。
优点是一定程度上兼顾了传输速度和安全性。缺点是现实中数据恢复速度和成功率并不十分理想。还有不得不提的局限性,不管阵列中有多少块硬盘,同时损坏两块都是无法恢复的,整个阵列中的数据全部丢失。
总结,速度×(N-1),风险不会算,改天去请教一下理学院的学长……可以肯定的是风险比Raid1大,利用率为(N-1)/N。
另外,如果硬盘容量不同,Raid5会在每块硬盘中都取容量最小的硬盘的容量来使用,其余的都不用,但群辉的SHR技术可以将浪费的容量利用起来,感兴趣的朋友可以去了解一下。
5、Raid6
Raid6可以说是Raid5的升级版,最少需要四块硬盘,其中两块硬盘的容量用以存储两位奇偶校验码,校验码分配方式与Raid5类似。
同理,同时损坏三块硬盘,整个阵列无法恢复。
总结,速度×(N-2),风险不会算但比Raid5小比Raid1大,利用率为(N-2)/N。
6、Raidz/Raidz2
这两种“Raid模式”分别可以看做Raid5和Raid6的改进,虽然名叫“Raid”但并不是同一回事。
Raidz/z2基于更先进的ZFS文件系统,拥有更加先进的冗余机制,解决了Raid5/6“全盘重写”的问题。这个不是一时半会可以讲完的,为了篇幅和不喧宾夺主的考虑,暂且留个坑吧。
实现方式
Raid阵列的实现分为硬实现和软实现,组成的阵列分别称为硬Raid和软Raid。
我们分别来看:
1、硬实现/硬Raid
硬实现是通过硬件(Raid卡)来实现Raid阵列的方式。对磁盘的数据读写由Raid卡主控完成,系统会将整个阵列识别为单一硬盘。
优点是对CPU的依赖非常小,性能较好,有缓存的Raid卡还可以提高随机读写性能。
缺点是不够灵活,用Raid卡组Raid后,如果不解除/撤销/取消,阵列中的硬盘直接挂载到别的电脑上是无法使用的。以及需要额外的硬件,成本较高。
2、软实现/软Raid
软Raid就是通过软件方式实现的Raid,包括从BIOS中设置。磁盘数据的读写由CPU完成,系统可以识别出阵列中所有的硬盘。
优点是使用灵活,拆下后可直接在其他电脑上使用,成本较低, *** 作简单。
缺点是对CPU依赖较大,性能较差。
了解了上述内容,想要组Raid的小伙伴们心中应该是有底了,可以按需选择自己想要的方式。最后IT之家还要提醒一句,数据千万条,安全第一条。Raid不规范,自己两行泪。
参考资料 https://www.ithome.com/0/414/101.htm
RAID(独立磁盘冗余阵列)是一种数据存储虚拟化技术,将多个物理磁盘驱动器组件组合到一个或多个逻辑单元中,以实现数据冗余和/或提高性能的目的。
数据以多种方式(称为RAID级别)分布在驱动器上,具体取决于所需的冗余和性能级别。不同的方案按资料分布布局以单词“ RAID”命名,后跟一个数字,例如RAID 0或RAID1。每种方案或RAID级别在关键目标之间提供了不同的平衡:可靠性、性能和容量。大于RAID 0的RAID级别可提供针对不可恢复的扇区读取错误以及整个物理驱动器故障的保护。
RAID技术主要具有以下三个基本功能:
(1)通过磁盘数据条带化,可以实现对数据的块访问,减少了磁盘的机械搜索时间,提高了数据访问速度。
(2)通过同时排列数组中的多个磁盘,可以减少磁盘的机械搜索时间,并提高数据访问速度。
(3)通过镜像或存储同位信息,可以实现数据的冗余保护。
RAID 0和RAID 1之间的区别:
1. RAID 0读写速度快,数组容量是数组磁盘的总容量,无数据备份功能,安全性较差。
2. RAID 1的读写速度如单磁盘,容量为单磁盘容量,但磁盘互相备份,安全性高。
RAID 0的特点:
RAID 0的缺点是它不提供数据冗余,一旦用户数据损坏,损坏的数据将无法恢复。当RAID中任何硬盘驱动器出现故障时,RAID 0运行都可能导致整个数据损坏。通常不建议企业用户单独使用。
RAID 1的特征:
RAID 1通过硬盘数据镜像实现数据冗余,保护数据,在两个磁盘上生成备份数据,并且在原始数据繁忙时可以直接从镜像备份中读取资料,因此RAID 1可以提供读取性能。
RAID 0
RAID 0由条带化组成,但没有镜像或同位。与跨区卷相比,RAID 0卷的容量是相同的。它是集合中磁盘容量的总和。但是由于条带化将每个文件的内容分配到集合中的所有磁盘之间,因此任何磁盘的故障都会导致所有档(整个RAID 0卷)丢失。跨区卷损坏至少可以将档保留在正常运行的磁盘上。 RAID 0的好处是,对任何档的读写 *** 作的吞吐量都乘以磁盘数量,因为与跨区卷不同,读写 *** 作是同时进行的,而且代价是驱动器故障的完全脆弱性。实际上,平均故障率比等效的单个非RAID驱动器高。
RAID 1
RAID 1由数据镜像组成,没有同位或分段。数据被相同地写入两个驱动器,从而产生驱动器的“镜像集”。因此,RAID中的任何驱动器均可满足任何读取请求。如果将请求广播到RAID中的每个驱动器,则可以由首先访问数据的驱动器(根据其查找时间和循环等待时间)对请求进行服务,从而提高性能。如果针对控制器或软件进行了优化,则持续读取吞吐量将接近集合中每个驱动器的吞吐量总和。写入较慢,因为写入的数据必须更新到每个驱动器,而最慢的驱动器会限制写入性能。但只要有一个驱动器正常工作,该数组就会继续运行。
下面是RAID级别的对比表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)