RAID原理以及分类
2016-01-03 19:23
501 查看
一.RAID原理
随着计算机和网络技术的高速发展对存储性能和数据可靠性的要求不断的提高,单个的磁盘设备已经不能够满足速度以及安全性方面的要求
RAID(独立磁盘阵列设备):多个独立的物理硬盘按照不同的方式组合起来,形成一个虚拟的硬盘
raid是如何实现磁盘组合的呢?
1.如果想要很多磁盘组合起来使用那么就要对这些磁盘进行统一的管理,那么如何对这些磁盘进行管理呢?
如下图:
在图中,主板上的控制器连接到控制芯片,每个控制芯片下面连接有不同的磁盘,由控制芯片管理这些组合的磁盘,因此CPU在与磁盘交流的时候通过控制芯片,控制芯片把cpu想要跟硬盘说的话转换为硬盘能听懂的话,实现cpu与硬盘的交流
2.我们都知道,硬盘上的数据是以扇区的方式存储的,那么数据分散的存在不同的磁盘上?
条带化:把整部分数据分成不同的部分分别存储在不同的磁盘上:如下图数据被分散在不同的磁盘上
3.如上面所示数据条带化后完整的数据被分散在不同的磁盘上,那么就有问题了,如果一个磁盘坏了,那么整个数据将没有了,数据丢失的风险比使用一块磁盘大大增加,那怎么办呢?
有两种方式:
磁盘镜像技术:
每个磁盘上都存放完整的信息:
上面的这种方式虽然保证了数据的安全性,但是不难看出浪费了巨大的磁盘空间。那么怎样进行镜像才能提高利用率?于是有下面的改进方式
方式1:
上面就是RAID01的组合方式:(先条带化然后镜像),可以看到不管是镜像组还是数据存放的磁盘组其中一个组磁盘损坏一个数据都不会丢失,但是因为并不知道每个磁盘的数据镜像到了那个磁盘上,如果两组中都各自坏一个那么数据就丢失了,整个磁盘组就挂了,牵一发而动全身因此出现了下面的镜像方式
方式2:一对一的镜像
上面这种组合方式就RAID10的组合方式,在此方式中可以允许不同组中的两个磁盘同时坏,数据的容错能力提升
校验码技术:使用一个盘专门用作校验码盘
校验码是raid5使用的组合方式,校验码中任意一个盘出错都可以根据其他盘推出其他盘的数据,比如:磁盘1中存放数据1,磁盘2中存放数据2,磁盘3中存数据3,磁盘4中存校验码1+2+3,那么假如磁盘2坏了数据丢失了,我们还可以根据其他盘推出磁盘2中的数据,但是如果同时坏了两块盘那么数据就丢失了。
由上面的校验码方式存放数据,每访问其他盘中的数据都有可能访问校验码盘,那么校验码盘就成为了性能的瓶颈那么怎么办:
解决办法:把所有的盘轮流作为校验盘
jbod:把不同的小磁盘组合起来,在Hadoop中使用
RAID级别:
注:级别不分优先级,只是组合方式不一样
RAID:
级别:仅代表磁盘组织方式不同,没有上下之分;
0: 条带
性能提升: 读,写
冗余能力(容错能力): 无
空间利用率:nS
至少2块盘
1: 镜像
性能表现:写性能下降,读性能提升
冗余能力:有
空间利用率:1/2
至少2块盘
5:
性能表现:读,写提升
冗余能力:有
空间利用率:(n-1)/n
至少需要3块
10:
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
01:
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
50:
性能表现:读、写提升
冗余能力:有
空间利用率:(n-2)/n
至少需要6块
jbod:
性能表现:无提升
冗余能力:无
空间利用率:100%
至少需要2块
随着计算机和网络技术的高速发展对存储性能和数据可靠性的要求不断的提高,单个的磁盘设备已经不能够满足速度以及安全性方面的要求
RAID(独立磁盘阵列设备):多个独立的物理硬盘按照不同的方式组合起来,形成一个虚拟的硬盘
raid是如何实现磁盘组合的呢?
1.如果想要很多磁盘组合起来使用那么就要对这些磁盘进行统一的管理,那么如何对这些磁盘进行管理呢?
如下图:
在图中,主板上的控制器连接到控制芯片,每个控制芯片下面连接有不同的磁盘,由控制芯片管理这些组合的磁盘,因此CPU在与磁盘交流的时候通过控制芯片,控制芯片把cpu想要跟硬盘说的话转换为硬盘能听懂的话,实现cpu与硬盘的交流
2.我们都知道,硬盘上的数据是以扇区的方式存储的,那么数据分散的存在不同的磁盘上?
条带化:把整部分数据分成不同的部分分别存储在不同的磁盘上:如下图数据被分散在不同的磁盘上
3.如上面所示数据条带化后完整的数据被分散在不同的磁盘上,那么就有问题了,如果一个磁盘坏了,那么整个数据将没有了,数据丢失的风险比使用一块磁盘大大增加,那怎么办呢?
有两种方式:
磁盘镜像技术:
每个磁盘上都存放完整的信息:
上面的这种方式虽然保证了数据的安全性,但是不难看出浪费了巨大的磁盘空间。那么怎样进行镜像才能提高利用率?于是有下面的改进方式
方式1:
上面就是RAID01的组合方式:(先条带化然后镜像),可以看到不管是镜像组还是数据存放的磁盘组其中一个组磁盘损坏一个数据都不会丢失,但是因为并不知道每个磁盘的数据镜像到了那个磁盘上,如果两组中都各自坏一个那么数据就丢失了,整个磁盘组就挂了,牵一发而动全身因此出现了下面的镜像方式
方式2:一对一的镜像
上面这种组合方式就RAID10的组合方式,在此方式中可以允许不同组中的两个磁盘同时坏,数据的容错能力提升
校验码技术:使用一个盘专门用作校验码盘
校验码是raid5使用的组合方式,校验码中任意一个盘出错都可以根据其他盘推出其他盘的数据,比如:磁盘1中存放数据1,磁盘2中存放数据2,磁盘3中存数据3,磁盘4中存校验码1+2+3,那么假如磁盘2坏了数据丢失了,我们还可以根据其他盘推出磁盘2中的数据,但是如果同时坏了两块盘那么数据就丢失了。
由上面的校验码方式存放数据,每访问其他盘中的数据都有可能访问校验码盘,那么校验码盘就成为了性能的瓶颈那么怎么办:
解决办法:把所有的盘轮流作为校验盘
jbod:把不同的小磁盘组合起来,在Hadoop中使用
RAID级别:
注:级别不分优先级,只是组合方式不一样
RAID:
级别:仅代表磁盘组织方式不同,没有上下之分;
0: 条带
性能提升: 读,写
冗余能力(容错能力): 无
空间利用率:nS
至少2块盘
1: 镜像
性能表现:写性能下降,读性能提升
冗余能力:有
空间利用率:1/2
至少2块盘
5:
性能表现:读,写提升
冗余能力:有
空间利用率:(n-1)/n
至少需要3块
10:
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
01:
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
50:
性能表现:读、写提升
冗余能力:有
空间利用率:(n-2)/n
至少需要6块
jbod:
性能表现:无提升
冗余能力:无
空间利用率:100%
至少需要2块
相关文章推荐
- org.hibernate.AssertionFailure: null id in entry (don't flush the Session after an exception occurs)
- 理解cookie的path和domain属性
- 被误传的Cookie的Domain属性
- [leetcode] 11. Container With Most Water 解题报告
- no copy constructor available or copy constructor is declared 'explicit'
- Convolutional Neural Networks at Constrained Time Cost(精读)
- 人工智能节目主持人诞生
- 散列冲突处理 http://www.nowamagic.net/academy/detail/3008050
- UVA1450-Airport
- HDU 5009 Paint Pearls (动态规划)
- 第六届福建省大学生程序设计竞赛 Problem E The Longest Straight
- traincascade与AdaBoost的opencv实现框架
- 151217MainTest主函数详细介绍
- RAID技术学习小结
- 七.OC基础加强--1.内存管理 2.野指针,内存泄露 3.set方法的内存管理 4.@property参数 5.@class和循环retain的使用 6.NSString的内存管理
- 【翻译自mos文章】在12c中Create or Truncate Table时很慢,等待事件为 DFS Lock Handle wait
- HDU 3968 Angry Birds Again(计算几何)
- Container With Most Water
- Dreamoon and Stairs
- RTAI 例子