理解RAID
来源:互联网 发布:免费刷空间留言软件 编辑:程序博客网 时间:2024/06/07 22:29
RAID技术,即Redundant Array of Independent Disks技术,也就是由独立磁盘组成的具有冗余特性的磁盘阵列。
1 RAID 0 -- 条带化
RAID 0将一系列连续编号的数据Data分布到多个物理磁盘上,如下面一段连续的数据
进行条带化分布存储后,如下
连续的数据被存储在四个磁盘上,产生两个条带(stripe),他们在磁盘相同便宜处横向逻辑分割,一个stripe横跨的扇区或者块的个数或者字节容量,即是stripe width(或者stripe length),一个stripe占用的单个磁盘的区域交个segment,一个segment上的区域数据局部连续,叫作chunk,如上图,stripe width = 4,chunk =2,而下图中,stripe width = 4,chunk = 1。
2 RAID 1 -- 副本
RAID 1 和RAID 0不同,RAID 0对数据没有任何保护措施,每个数据没有备份或者校验保护措施,RAID 1对虚拟逻辑盘上的每个物理Block都有一个镜像备份,也就是说数据有两份。
3 RAID 3 -- 专门校验盘
RAID 3和RAID0的思想大致一致,但是RAID 0没有校验保护,RAID 3使用了XOR对数据进行校验,那么存储时除了数据盘,还需要校验盘存储校验数据。RAID 3中每个segment一般是一个或者几个扇区的大小,对数据的分割也以扇区为单位。
假如本处一个segment的大小为4个扇区,即2KB(每个扇区512B),那么控制器收到IO大小为1KB的写入请求, 也就是2个连续扇区,那么控制器就只能同时写入1个磁盘,那么会有其余的磁盘IO处于空闲状态,现在考虑IO SIZE大于条带长度的情况如果控制器收到的IO SIZE为16KB,则控制器一次所能并行写入的文件是2KB,那么这16KB就要分成8批写入条带,这里的8批中,前后两次同时写入磁盘,每次4批。
因此可以发现与其使IO SIZE小于一个条带的大小,从而空闲出一些磁盘,不如使IO SIZE大于或者等于条带大小,取消磁盘空余。
但是RAID 3不能并发IO,因为一个IO要占用全部盘,这是因为RAID 3中校验盘无法共享。
4 RAID 4 -- 允许并发
RAID 3由于校验盘无法共享,导致无法IO并发,RAID 4进行了一定程度上的优化。即在磁盘控制器驱动程序的上层,也就是文件系统层将两个不同事务的IO写操作,尽可能放到相同的条带上,实现同时更新各自的校验盘。
5 RAID 5 -- 无专门校验盘
RAID 5 是高盲并发几率,所谓盲并发几率是指上层不必感知下层的结构,即可增加并发系数。
RAID5如上图所示,将校验盘打乱放入每个磁盘中,用于解决校验盘的争抢问题,每个条带都有一个校验segment,但是不同磁盘上位置不同,在相邻条带之间循环分布。为了保证并发IO,RAID5将条带做的比较大,保证每次IO数据不会占满整个条带。RAID磁盘数量越多,可并发的几率就越大。
6 RAID 6 -- 允许两块盘失效
RAID 6为增加保险系数,又增加了一块校验盘,与RAID5一样分布在每个磁盘上,RAID6可以保证坏掉两块盘的时候,数据仍然可以访问。
(完)
- 理解RAID
- raid 2.0的理解
- 磁盘阵列RAID理解
- 各种RAID的理解
- RAID介绍、理解
- RAID磁盘阵列中LUN的理解
- SSD+Flashcache 的理解 RAID了解
- “饮水机”:形象比喻 深入浅出理解RAID
- RAID磁盘阵列中LUN的理解
- RAID
- RAID
- RAID
- raid
- RAID
- RAID
- RAID
- RAID
- RAID
- linux 使用lseek函数来获取文件大小
- 动态创建dw的时候运行失败及列名选择
- java 两个字符串连接程序
- spring DI四种依赖注入方式
- Object类的理解
- 理解RAID
- DBCP2使用jtds中出现AbstratMethodError的问题
- <s:checkbox id="doSele" name="tags" value="true" 的 fieldValue= 取值问题
- Self powers Problem 48
- java读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
- 修改AfxMessageBox对话框标题
- null value was assigned to a property of primitive type setter of原因急解决方法
- 2017 CCPC-WFinal&&HDOJ6026 Deleting Edges
- eclipse运行报java.lang.OutOfMemoryError: PermGen space解决方法