一日一省linux:raid-5算法详解
来源:互联网 发布:做个网络回路 编辑:程序博客网 时间:2024/06/02 03:20
RAID -5 算法详解
什么是Striping(条带化)?
条带化是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中不同磁盘上的方法。此技术非常有用,它比单个磁盘所能提供的读写速度要快的多,当数据从第一个磁盘上传输完后,第二个磁盘就能确定下一段数据。数据条带化正在一些现代数据库和某些RAID硬件设备中得到广泛应用。
首先我们知道,硬盘物理上都是以0和1来存放数据,它并不认识什么AIX、oracle之类的,在raid 5的世界里,只有0和1。
现假设有四块硬盘做raid-5,其中,硬盘一、二、三是专门存放数据的,硬盘四是存放校验码。如下:
(raid 5 是以条带化来存放数据的。如,有一个数据包是110(下面的条带一),它将会分布在各个硬盘上。)
硬盘
条带一
条带二
条带三
条带四
条带五
条带六
条带七
条带八
硬盘一
1
1
0
0
0
1
1
0
硬盘二
1
0
1
1
0
0
1
0
硬盘三
0
1
0
1
1
0
1
0
结果(硬盘四)
0
0
1
0
1
11
0
当有一个数据包110要存放到raid 5里时,控制器便会算出校验码(也就是硬盘四的结果)。
硬盘四算出的方法是:
硬盘四=硬盘一 XOR 硬盘二 XOR 硬盘三
硬盘四= 1 XOR 1 XOR 0 =0
因此,控制器先将110存放到前面硬盘一、二、三里,然后,再把算出的结果存放到硬盘四里。
XOR算法(异或算法)说明:
1 XOR 1=0
1 XOR 0=1
数的运算结果与数的运算次序无关。如1 XOR 0 = 0 XOR 1
如上所示,现假设硬盘一失效,现在要算出条带一上硬盘一的数据,如下:
公式:硬盘一=硬盘二 XOR硬盘三 XOR硬盘四
代入数字:硬盘一= 1 XOR 0 XOR 0 = 1
因此,可用此方法算出硬盘一上的数据。
当更换了硬盘一时,控制器将根据这个算法,利用其它的硬盘,算出硬盘一的数据,进行数据恢复。
以此类推,可以保证,任何一个硬盘损坏了,都可以通过这样的算法,算出其上面的数据。
所以raid 5最少要三块盘,最少两个硬盘进行异或运算,一个硬盘存放运算结果,可用空间为N-1个硬盘空间(N为硬盘总数)。
以上只是为了方便说明,真正的raid 5是不会专门用一个硬盘来放校验结果数据的。而是几个硬盘轮流来充当校验结果的角色。 实话!!!
- 一日一省linux:raid-5算法详解
- 一日一省linux:inode
- 一日一省linux:swap
- RAID技术详解一
- 一日一算法
- Linux阵列 RAID详解
- Linux阵列 RAID详解
- Linux阵列 RAID详解
- Linux阵列 RAID详解
- linux-raid (一) md
- Linux-RAID详解及配置
- Linux-RAID详解及配置
- linux一日一命令-grep
- linux一日一命令 - ln
- 一日一文(5)
- 一日一省linux:打印奇偶数行
- 一日一省linux:系统信息查看命令大全
- 一日一省linux:awk向脚本传递参数
- Objective-C 学习笔记(1)
- 教程:在Linux下使用firesheep插件
- 一日一省linux:swap
- python hello worlld
- 图像(从网上收集整理)
- 一日一省linux:raid-5算法详解
- Hibernate的主键生成策略
- [整理]框计算?云计算?
- Spring 类构造器创建Bean
- 收费系统体会(1) 一次纠结就是一次大的进步.
- OpenGL学习笔记 (1) —— 在VS2008下的两个简单例子
- InstallAnywhere 2009 Enterprise 安装及破解
- Apache VirtualHost配置成功/Wamp虚拟主机配置 百度空间_应用平台
- 一生何求