首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >被所有数据库追捧的存储技术:RAID 0 、RAID 1 、RAID 5 、RAID 10 、RAID 50 、RAID 60

被所有数据库追捧的存储技术:RAID 0 、RAID 1 、RAID 5 、RAID 10 、RAID 50 、RAID 60

原创
作者头像
会用数据库
发布2025-06-11 15:36:55
发布2025-06-11 15:36:55
23700
代码可运行
举报
文章被收录于专栏:存储技术存储技术
运行总次数:0
代码可运行

  Hi,大家晚上好!我最近很喜欢逛街,不买什么也逛逛,感受一下街市的美好吧!~今日让我来深入深入了解RAID技术,一个被所有数据库青睐的存储技术。

图片
图片

  RAID技术,英文全拼为Redundant Array of Independent Disks。从名称可以看出,RAID最初目标是通过将多个廉价的磁盘驱动器组合起来,以取代昂贵的大型磁盘驱动器,从而提供更高的性能和容错能力。还没说这个技术是为了干什么的,这个技术是在当时的背景下,存储成本价格昂贵,而如何用更小的成本造就更加优质的性能。

        RAID技术如何实现在成本固定的情况下,实现性能的优化。首先,RAID是分为很多实现方式的,其中就有RAID0 RAID1 RAID5 RAID10 RAID50 RAID 60。

        这些存储方式的不同造就了存储结果的不同性能与优势劣势,我们用更加简单的方法来逐个学习~

        首先是RAID 0。这个存储方式是假设你有多个磁盘,但是你有一份数据,你将这份数据存储在不同的磁盘中,这样当用户想要读取数据,就可以从不同的磁盘中获取,由于每个磁盘都不会承载很多的数据,都是一份数据内的【块】,所以I/O速度也会自然提升。举个例子吧~

        RAID 0 :数据分磁盘存(Disk1 Disk2 Disk3 Disk4),数据从不同的磁盘中取出,一次只取部分,I/O速度快。性能高。但是一个磁盘坏了,很容易全部崩盘~        

图片
图片

RAID 1: 磁盘复制,数据冗余,也变快了,但是一旦有磁盘出现问题了,别的磁盘随时可以更替。

图片
图片

 RAID 5:利用奇偶校验块做数据存储,数据还是和RAID 0一样分散存放,保证性能,利用奇偶校验块去除数据冗余、恢复备份。

图片
图片

    奇偶校验块这里需要说明一下,从图可以看出以上有4个磁盘,奇偶校验块寸存放在磁盘1,那么奇偶校验块则是DP = DISK1 XOR DISK2 XOR DISK3 XOR DISK4。倘若磁盘1坏了,我们可以利用奇偶校验块立马恢复:DISK1 = DISK2 XOR DISK3 XOR DISK4 XOR DP。你会想,奇偶校验块所在的盘DISK1损坏,还能用这个公式吗?可以!因为其他盘还完好,数据还在,而且DP本身是一个计算信息,不会影响。这里为什么说DP是计算信息,给大家举个例子~!

代码语言:javascript
代码运行次数:0
运行
复制
数据块1: 0 1 1 0  数据块2: 1 1 0 0  数据块3: 1 0 1 0  ------------------------  校验块:  0 0 0 0  (计算每一列:0 XOR 1 XOR 1 = 0,依此类推)

所以还是可以用DISK1 = DISK2 XOR DISK3 XOR DISK4 XOR DP。但是如果再有一个盘坏了,数据就无法恢复了。但是在实际情况中,RAID 5/6中校验块不是固定在某一块盘上,而是像"旋转门"一样在所有磁盘间轮转存储。就我可能第一行的校验块在磁盘1 ,可能第二行的校验块在磁盘2,都有可能,如果校验块坏了,我得看校验块在哪个盘,再决定可不可以或者需不需要恢复。

          如果RAID 5你能理解,那么RAID 6你理解起来就更简单的,因为它是双奇偶校验,也就是~

图片
图片

      RAID 6是双奇偶校验,其中奇偶校验信息被分布式存储在不同的驱动器上,并通过双重奇偶校验提供更高的数据冗余性。大家有兴趣可以参考RAID5 一样的原理,也就是多了一重奇偶验证,这样比RAID 5的好处是什么呢?这样如果有一块磁盘崩了,只需要用另一块磁盘就能直接恢复。刚刚我们的RAID 5 还需要重新建立,但是这个直接重建即可。

    剩下的RAID 10,其实就是RAID 0 和RAID 1的匹配,既要分散存储又要冗余。RAID 50则是RAID5 和 RAID 0 的合并,奇偶和分散数据~RAID 60则是RAID6 和 RAID 0 的合并~双重奇偶和提高性能。

        这些RAID级别对应着不同的应用场景!从存储特征来看,如性能要求高,可以参考RAID0 和 RAID50 \RAID 60,但是如果安全性更加看重,可能RAID会更被青睐~

        目前Oracle的数据文件启用的是RAID5 ,因其空间利用率高(仅损失1/N的容量)且能提供数据冗余,适合读密集型场景(如数据仓库)。Raid10适用于高并发OLTP系统(如金融交易),因其结合了RAID 0的条带化性能和RAID 1的镜像冗余,能显著提升写入速度!!还有很多的数据库都应用了RAID技术~大家有兴趣可以多多了解!

谢谢你看到这,祝你生活愉快呀!!

欢迎关注我的数据库类公众号:【会用数据库】一起成长!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档