RAID常见级别与JBOD概述
RAID常见级别与JBOD概述
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.RAID概述
1>.什么是RAID
1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) 提出的将多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。 磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。 RAID技术是由加利福尼亚大学伯克利分校(University of California-Berkeley)在1988年,发表的文章:“A Case for Redundant Arrays of Inexpensive Disks”中提出的,最初是为了组合多个小的廉价磁盘来代替昂贵磁盘,同时希望磁盘损坏时不会使数据的访问受损而开发的一种数据保护技术。 RAID可以提升硬盘速度和增大硬盘容量,并且提供容错功能以确保数据安全性。它易于管理的优点使得在任何一块磁盘出现问题的情况下都可以继续工作,应用程序不易受到损坏硬盘的影响。
温馨提示:
目前生产环境中RAID技术可以对某一块磁盘单独做RAID。
2>.磁盘阵列的特点
提高IO能力:
磁盘并行读写。
提高耐用性:
磁盘冗余来实现。
RAID级别:
多块磁盘组织再一起的工作方式有所不同,下面我们会详细介绍。
3>.磁盘阵列的实现方式
磁盘阵列的常见实现方式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。
外接式磁盘阵列:
通过扩展卡提供适配能力。
外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。
内接式磁盘阵列:
主板集成RAID控制器,安装OS前在BIOS里配置。
内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。
软件RAID:
通过操作系统实现。
利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。
二.RAID级别
1>.RAID 0
工作原理:
又称“条带卷”,Raid0是所有raid中存储性能最强的阵列形式。其工作原理就是在多个磁盘上分散存取连续的数据,这样,当需要存取数据是多个磁盘可以并排执行,每个磁盘执行属于它自己的那部分数据请求,显著提高磁盘整体存取性能。
优点:
读写能力提升,最少2块磁盘及以上,生产环境中虽然已经可以一块磁盘单独做一个RAID 0,但其本质并没有提升读写性能,究其原因还是一块磁盘。
缺点:
无容错能力,RAID 0磁盘阵列中只要有一块磁盘损坏,就意味着数据丢失。因此需要运维工程师做好备份。
适用场景:
至少需要两块磁盘,没有容错能力,读写性能都提示, 磁盘空间利用率提升了100%,两块磁盘型号最好要一样,一般存放swap,或者/tmp目录的,适用于低成本、低可靠性的台式系统。
2>.RAID 1
工作原理: 又称镜像盘,把一个磁盘的数据镜像到另一个磁盘上,采用镜像容错来提高可靠性,具有raid中最高的数据冗余能力。存数据时会将数据同时写入镜像盘内,读取数据则只从工作盘读出。
发生故障时,系统将从镜像盘读取数据,然后再恢复工作盘正确数据。这种阵列方式可靠性极高,但是其容量会减去一半。
优点:
有冗余能力,读性能提升。
缺点:
写性能略有下降。
适用场景: 至少需要两块磁盘,镜像,具有硬件容错能力,读性能提升,写性能下降,磁盘空间利用率只有50%。广泛用于数据要求极严的应用场合,如商业金融、档案管理等领域。只允许一颗硬盘出故障。
温馨提示:
具有硬件容错能力 != 你可以对数据不进行备份。换句话说,无论你写入或删除数据,两块镜像盘做的操作是一样的,RAID技术是对物理磁盘的数据做冗余(硬盘损坏可以找回数据,但你人为删除数据就是删除了,镜像磁盘做的操作是一直的),因此对重要数据的备份一定要做好。
3>.RAID 4
工作原理: 至少需要三块磁盘,两块盘存数据,一块盘单独用来存另外两块磁盘的校验值。读写性能有所提升,读写性能(n-1)/n。
优点:
当一块数据盘的数据损坏时,此时RAID 4阵列依旧可以访问,因为可以根据校验值和现有的数据计算出已经损坏的数据。因此该方案具有一定的容错功能。
缺点:
需要单独占用一块磁盘存储校验值。
适用场景:
经过大量生产环境的使用发现存放校验的磁盘总是频繁的损坏,因此这种解决方案已经很少有人使用啦。人们会使用RAID 5来替代这种解决方案。
4>.RAID 5
工作原理:
和RAID 4相比,RAID 5并不会将校验信息单独用一块磁盘存储,由于RAID 4单独用于存储校验信息的磁盘容易损坏,因此RAID 5并不会单独用一块磁盘存储校验信息,而是将校验信息和数据信息混搭存储。磁盘利用率和RAID 4一样,即(n-1)/n。 Raid5可以看成是Raid0+1的低成本方案。采用循环偶校验独立存取的阵列方式。将数据和相对应的奇偶校验信息分布存储到组成RAID5的各个磁盘上。当其中一个磁盘数据发生损坏后,利用剩下的磁盘和相应的奇偶校验信息 重新恢复/生成丢失的数据而不影响数据的可用性。
优点:
拥有RAID 4一样的容错能力,允许最多一块磁盘损坏。
缺点:
虽然有一块磁盘损坏可以正常访问,但是通过校验位来计算损失的数据时会浪费服务器性能,尤其是在服务器压力特别大的时间段损坏磁盘阵列时可能会导致服务崩溃。因此当有一块磁盘损坏时,要及时解决。
适用场景: 至少需要3个或以上的硬盘。适用于大数据量的操作。成本稍高、可靠性强的阵列方式。
温馨提示:
生产环境中我们通常会用一块控线磁盘,当一块磁盘损坏后,该空闲磁盘立即“顶上去”,无需运维工程师手动处理,这个功能一般硬件的RAID阵列卡都自带该功能。当然,最好和服务商沟通一下哟。
5>.RAID 6
工作原理: RAID 6和RAID 5在存储机制上是类似的,只不过校验信息相比AID 5要多存储一份,磁盘利用率是(n-2)/n。
优点:
提升读写性能,可用性比RAID 5更强,允许最多2快磁盘损坏。
缺点:
校验信息要多存储一份。磁盘的利用率要比RAID 5方案低。
适用场景: 至少需要四块磁盘,允许两块盘出错,读写性能提升,磁盘利用率(n-2)/n
6>.RAID 7
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立 运行,理论上性能最高的RAID模式。
7>.RAD 10
工作原理: 其实就是Raid1+Raid0的组合,至少需要四块磁盘,允许不同组内各坏一块磁盘,读写性能提升,磁盘使用率50%。 优点: 具有容错能力,每组镜像最多只能坏一块。 缺点: 磁盘使用率较低,仅有50%,会很浪费成本。以四块磁盘阵列为例,若已经损坏一块磁盘,那么接下来磁盘阵列的损坏率是1/3。
使用场景: 如果有重要数据的话,建议用这种模式,该模式是就有冗余能力的。不建议用Raid5或者Raid01来存取重要的数据,因为Raid5不靠谱,当一块磁盘坏掉的话,工作性能变得特别差!如果在坏一块的话就彻底不能工作了。
8>.RAID 01
工作原理: 其实就是Raid0+Raid1的组合,至少需要四块磁盘,允许同组内任意磁盘块磁盘损坏,但不同组的磁盘阵列中最少有一组阵列是正常工作的。 优点: 具有容错能力,但仅允许一组磁盘由损坏,若两组磁盘均有损坏则RAID10阵列不可用。 缺点: 磁盘使用率较低,仅有50%,会很浪费成本。以四块磁盘阵列为例,若已经损坏一块磁盘,那么接下来磁盘阵列的损坏率是2/3。 温馨提示: 综上所述,从理论上来讲,RAID 10可用性要比RAID 01的容错率更强。
9>.RAID 50
多块磁盘先实现RAID 5,再组合成RAID 0。
10>.JBOD
工作原理:
将多块磁盘的空间合并一个大的连续空间使用,如上图所示,服务器有3块磁盘,通过JBOD技术可用将三块磁盘容量合并成一个磁盘容量对外提供服务。这样客户端以为是一块磁盘的容量。
JBOD的工作方式是将多块磁盘合并程一块磁盘,但在使用过程中,当第一块磁盘使用完毕后,才会适用第二块磁盘,当第二块的磁盘容量适用完毕后,才能使用第三块磁盘,因此其读写性能并没有提高,始终是单块磁盘的读写性能。
优点:
可用将多块磁盘合并程一块磁盘对外提供服务。
缺点:
JBOD和RAID相比,JBOD并没有提高磁盘的读写性能,JBOD无论磁盘数量有多少,其读写性能仅有一块磁盘的读写性能。而RAID 0则随着磁盘的数量越多,其读写性能越强。
三.博主推荐阅读
1>.JBOD与RAID比较
2>.没有阵列卡的服务器是否能识别磁盘?
答案是肯定的,没配置阵列卡的服务器一定可以识别到硬盘。
相反,配置了阵列卡的服务器,无论是独立的还是主板自带的都有可能不做阵列识别不了硬盘,而主板自带阵列卡的服务器很多时候都要做阵列才可以识别硬盘的,因为服务器是这样设计的,硬盘接阵列卡再进主板,所以必须做阵列。
3>.软件RAID的实现
博主推荐阅读: https://www.cnblogs.com/yinzhengjie/p/12995834.html
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
欢迎交流学习技术交流,个人微信: "JasonYin2020"(添加时请备注来源及意图备注)
作者: 尹正杰, 博客: https://www.cnblogs.com/yinzhengjie/p/12953680.html