Raid很基础,但是在存储系统中占据非常重要的地位,所有涉及存储的书籍都会提到RAID。RAID通过磁盘冗余的方式提高了可用性和可高性,一方面增加了数据读写速度,另一方面增加了数据的安全性。
RAID 0
对数据进行条带化。使用两个磁盘交替存放连续数据。因此可以实现并发读写,但带来的问题是如果一个磁盘损坏,另外一个磁盘的数据将失去意义。RAID 0最少需要2块盘。
![](http://dl.iteye.com/upload/picture/pic/81911/ecaf78e1-9e3c-3ca2-938d-ffc42786aad5.png)
RAID 1
对数据进行镜像。数据写入时,相同的数据同时写入两块盘。因此两个盘的数据完全一致,如果一块盘损坏,另外一块盘可以顶替使用,RAID 1带来了很好的可靠性。同时读的时候,数据可以从两个盘上进行读取。但是RAID 1带来的问题就是空间的浪费。两块盘只提供了一块盘的空间。RAID 1最少需要2块盘。
![](http://dl.iteye.com/upload/picture/pic/81913/abaa58b7-f4d7-30ae-9bd5-c2504cf8a0c1.png)
RAID 5 和 RAID 4
使用多余的一块校验盘。数据写入时,RAID 5需要对数据进行计算,以便得出校验位。因此,在写性能上RAID 5会有损失。但是RAID 5兼顾了性能和安全性。当有一块磁盘损坏时,RAID 5可以通过其他盘上的数据对其进行恢复。
如图可以看出,右下角为p的就是校验数据。可以看到RAID 5的校验数据依次分布在不同的盘上,这样可以避免出现热点盘(因为所有写操作和更新操作都需要修改校验信息,如果校验都在一个盘做,会导致这个盘成为写瓶颈,从而拖累整体性能,RAID 4的问题)。RAID 5最少需要3块盘。
![](http://dl.iteye.com/upload/picture/pic/81915/c5367f83-8876-34f6-81e6-9b8ad90990a6.png)
RAID 6
RAID 6与RAID 5类似。但是提供了两块校验盘(下图右下角为p和q的)。安全性更高,写性能更差了。RAID 0最少需要4块盘。
![](http://dl.iteye.com/upload/picture/pic/81917/22758f27-50e3-399a-9d58-00e0efe7e5ba.png)
RAID 10(Striped mirror)
RAID 10是RAID 0 和RAID 1的结合,同时兼顾了二者的特点,提供了高性能,但是同时空间使用也是最大。RAID 10最少需要4块盘。
![](http://dl.iteye.com/upload/picture/pic/81919/a1dba4e2-974f-3f39-bad6-926c9fd3b077.jpg)
需要注意,使用RAID 10来称呼其实很容易产生混淆,因为RAID 0+1和RAID 10基本上只是两个数字交换了一下位置,但是对RAID来说就是两个不同的组成。因此,更容易理解的方式是“Striped mirrors”,即:条带化后的镜像——RAID 10;或者“mirrored stripes”,即:镜像后的条带化。比较RAID 10和RAID 0+1,虽然最终都是用到了4块盘,但是在数据组织上有所不同,从而带来问题。RAID 10在可用性上是要高于RAID 0+1的:
-
RAID 0+1 任何一块盘损坏,将失去冗余。如图4块盘中,右侧一组损坏一块盘,左侧一组损坏一块盘,整个盘阵将无法使用。而RAID 10左右各损坏一块盘,盘阵仍然可以工作。
-
RAID 0+1 损坏后的恢复过程会更慢。因为先经过的mirror,所以左右两组中保存的都是完整的数据,数据恢复时,需要完整恢复所以数据。而RAID 10因为先条带化,因此损坏数据以后,恢复的只是本条带的数据。如图4块盘,数据少了一半。
RAID 50
RAID 50 同RAID 10,先做条带化以后,在做RAID 5。兼顾性能,同时又保证空间的利用率。RAID 50最少需要6块盘。
总结:
-
RAID与LVM中的条带化原理上类似,只是实现层面不同。在存储上实现的RAID一般有专门的芯片来完成,因此速度上远比LVM块。也称硬RAID。
-
如上介绍,RAID的使用是有风险的,如RAID 0,一块盘损坏会导致所有数据丢失。因此,在实际使用中,高性能环境会使用RAID 10,兼顾性能和安全;一般情况下使用RAID 5(RAID 50),兼顾空间利用率和性能;
分享到:
相关推荐
内容概要:IO的分层;...RAID;三分天下 适用人群:Java开发人员 使用场景:想学习JavaIO以及在IO开发中遇到瓶颈 目标:通过本教程的讨论与解析,更加深刻的理解和认识IO,熟练的操作IO,避免踩坑,陷入误区。
3. **随意说说你觉得 Oracle 最有意思的部分或者最困难的部分** - 个人对 Oracle 技术的看法,比如查询优化、性能调优等。 4. **为何要选择做 DBA** - 个人职业规划和发展方向,对数据库管理的兴趣和热情。
3. **随意说说你觉得 Oracle 最有意思的部分或者最困难的部分** - **最有趣的部分**: Oracle 的强大功能和灵活性。 - **最困难的部分**: 复杂的配置和调优。 4. **为何要选择做 DBA 呢?** - DBA 的职业挑战性、...
3. **随意说说你觉得oracle最有意思的部分或者最困难的部分** - 最有意思的部分可能是复杂的查询优化技巧。 - 最困难的部分可能是理解Oracle内部的工作机制。 4. **为何要选择做DBA呢?** - DBA工作提供了挑战性...
5. 对 raid10 和 raid5 有何认识:raid10 和 raid5 是两种常用的磁盘阵列技术,能够提高数据的可用性和安全性。 综合随意类 1. 你最擅长的是 oracle 哪部分?:可以根据个人兴趣和擅长回答。 2. 喜欢 oracle 吗?...
5. 对 raid10 和 raid5 有何认识:raid10 和 raid5 是两种常见的磁盘阵列技术,用于提高存储性能和可用性 综合随意类 1. 你最擅长的是 Oracle 哪部分?:根据个人兴趣和经验,选择擅长的 Oracle 领域 2. 喜欢 ...