冗余(奇偶校验)块:RAID5中在同一个条带中用一个块来存放冗余信息,冗余信息示其他块的"异或"值,这样在同一条带中就只有(n-1)个块是实际的数据,所以RAID5中阵列容量是(n-1)块单盘容量。

RAID5相关知识:

块:块是阵列中对单个磁盘存取的单位。比如块大小64K,那么系统把0-63K数据写入第一个硬盘;64-

127K数据写入第二个硬盘,128-255K数据写入第三个硬盘。块从0开始编号。我们观察下面的RAID0,3个磁盘:

磁盘1      磁盘2       磁盘3

0-63K      64-127K    128-191K   (条带0)

191-255K   256-319K   320-383K   (条带1)

384-447K   448-511K   512-575K   (条带2)

条带:在RAID0中的平行块中组成一组条带,比如上面的条带0-条带2,是不是很简单啊?再看下面的块

(1,2,3,...)组成的条带:

1   2   3   4 (条带0)

5   6   7   8 (条带1)

9  10  11  12 (条带2)

13  14  15  16 (条带3)

冗余(奇偶校验)块:RAID5中在同一个条带中用一个块来存放冗余信息,冗余信息示其他块的"异或"值,这样在同一条带中就只有(n-1)个块是实际的数据,所以RAID5中阵列容量是(n-1)块单盘容量。看看下面的一个条带,其中用1表示数据,用0表示冗余:

1  1  1  0

旋转: RAID5中条带中的冗余块并不是固定写在同一个硬盘上的(这样会造成性能低下),它用一种"旋转"的方式来循环存放冗余块,这样每个硬盘都有机会存放冗余块避免了IO瓶颈。根据循环的方式,我们称为"左循环"和"右循环"。观察下面的例子(0是冗余块)

1   2   3   0 (左循环)

4   5   0   6

7   0   8   9

0  10  11  12

--------------------

0   1   2   3 (右循环)

4   0   5   6

7   8   0   9

10  11  12  0

同步/异步: 在同一条带中,块的存放顺序也不一样,我们称为同步/异步。

RAID5---块,条带,校验,旋转,同步/异的更多相关文章

  1. rsync 文件校验及同步原理

    rsync 文件校验及同步原理 参考:http://rsync.samba.org/how-rsync-works.html 我们关注的是其发送与接收校验文件的算法,这里附上原文和我老婆(^_^)的翻 ...

  2. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  3. rsync 文件校验及同步原理及rsync server配置

    参考:http://rsync.samba.org/how-rsync-works.html 我们关注的是其发送与接收校验文件的算法,这里附上原文和我老婆(^_^)的翻译: The Sender Th ...

  4. 对象及变量的并发访问(同步方法、同步代码块、对class进行加锁、线程死锁)&内部类的基本用法

    主要学习多线程的并发访问,也就是使得线程安全. 同步的单词为synchronized,异步的单词为asynchronized 同步主要就是通过锁的方式实现,一种就是隐式锁,另一种是显示锁Lock,本节 ...

  5. java多线程-同步块

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java 同步块用来避免竞争.本文介绍以下内容: Java 同步关键字(synchronzied) 实例方法同步 ...

  6. synchronized同步块和volatile同步变量

    Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...

  7. java多线程(三)——锁机制synchronized(同步语句块)

    用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法之行一个长时间的任务,那么B线程必须等待比较长的时间,在这样的情况下可以使用synchronized同步语句快来解 ...

  8. Java同步块

    原文:http://ifeve.com/synchronized-blocks/ Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本 ...

  9. Java同步块(synchronized block)使用详解

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...

随机推荐

  1. HDU 3488

    http://acm.hdu.edu.cn/showproblem.php?pid=3488 原来写过的一道题,今天重新看费用流又做了一遍 题意:给一个图,求环的并(权值和最小) 思路:每个点只能走一 ...

  2. pandas DataFrame 索引(iloc 与 loc 的区别)

    Pandas--ix vs loc vs iloc区别 0. DataFrame DataFrame 的构造主要依赖如下三个参数: data:表格数据: index:行索引: columns:列名: ...

  3. 【机器学习算法】Boostrapping算法

    参考 1.AdaBoost从原理到实现: 完

  4. WPF开源界面库及控件

    WPF开源项目 WPF有很多优秀的开源项目,我以为大家都知道,结果,问了很多人,其实他们不知道.唉,太可惜了! 先介绍两个比较牛逼的界面库 1.MaterialDesignInXamlToolkit ...

  5. hdu1114 dp(完全背包)

    题意:已知空钱罐质量和满钱罐质量(也就是知道钱罐里的钱的质量),知道若干种钱币每种的质量以及其价值,钱币都是无限个,问最少钱罐中有多少钱. 这个题在集训的时候学长给我们做过,所以你会做是应该的,由于已 ...

  6. kettle的输入输出组件和脚本组件

    一. 输入组件 1.1表输入 从指定的数据库中,通过sql语句来查询数据加载到内存. 允许简易转换:勾选后可以避免不必要的字段的数据类型转换,从而提高性能. 替换sql语句里的变量:勾选后可以通过${ ...

  7. Msmq设计文档(赋源代码)

    Msmq设计文档(赋源代码)   Msmq设计文档     文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作    者: ...

  8. Hadoop之 Balancer平衡速度

    1. dfs.datanode.max.transfer.threads 修改dfs.datanode.max.transfer.threads=4096 (如果运行HBase的话建议为16384), ...

  9. 使用 extract-text-webpack-plugin 报错:Error: Chunk.entry was removed. Use hasRuntime()

    问题:使用 extract-text-webpack-plugin 报错:Error: Chunk.entry was removed. Use hasRuntime() 解决:先运行npm unin ...

  10. JUC锁之 框架

    根据锁的添加到Java中的时间,Java中的锁,可以分为"同步锁"和"JUC包中的锁". 同步锁 即通过synchronized关键字来进行同步,实现对竞争资源 ...