冗余(奇偶校验)块: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. PAT 列车厢调度   (25分)(栈和容器的简单应用)

    1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧).今天,我们就来实际操 ...

  2. 图解SQL的inner join、left join、right join、full outer join、union、union all的区别【转载】

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...

  3. Texas Instruments matrix-gui-2.0 hacking -- index.php

    <?php /* * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ * * * Redistrib ...

  4. HDU1212 大数膜

    大数MOD #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm& ...

  5. each遍历 的原理

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  6. Windows系统清除远程连接记录的方法

    =============================== 1.点击“开始->运行”,在输入框中键入regedit并回车. 在打开的注册表编辑器中, 找到“HKEY_CURRENT_USER ...

  7. (5)可变、不可变和hash函数

    分类情况 与列表相似,列表用[],元组是()表示 内存角度看列表与数字的变与不变 列表 >>>l = [1,2,3,4] >>>id(l) 4392665160 & ...

  8. calc()语法

    什么是calc()? 学习calc()之前,我们有必要先知道calc()是什么?只有知道了他是个什么东东?在实际运用中更好的使用他. calc()从字面我们可以把他理解为一个函数function.其实 ...

  9. MySQL Transaction--RR事务隔离级别下加锁测试

    ============================================================================== 按照非索引列更新 在可重复读的事务隔离级别 ...

  10. 阿里云流计算专场-GitHub上相关文档

    阿里云流计算专场-GitHub路径:https://github.com/Alibaba-Technology/hangzhouYunQi2017ppt