RAID的相关知识

时间:2022-02-16 13:56:31

   RAID(独立磁盘冗余阵列)

为了保证数据不轻易丢失,然后出现了RAID(独立磁盘冗余阵列)是由多个磁盘驱动器(一个阵列)组成的磁盘系统


--讲一下简单的几个RAID在磁盘崩溃时的恢复
--主要参考数据库系统实现


--1
--RAID1 也就是经常所说的磁盘镜像.
--假设两个磁盘:那就是一个数据盘.一个冗余盘.冗余盘提供与数据盘一样的复本
--当数据盘或冗余盘一个盘崩溃后,马上更换相应盘.并进行冗余计算.恢复相应的盘.

--优点:磁盘数据丢失机率较低,除了在恢复另一个盘的时候,此磁盘又坏掉了。能提高读取的效率。增加了磁盘写入的开销
--缺点:磁盘利用率较低。是所有磁盘的一半。

 

--2
--RAID4
--奇偶位--冗余盘的位是其他所有数据盘的模2和
--假设有4个磁盘,存储的是8位.
 数据盘0 11110001
 数据盘1 11001101
 数据盘2 00110011
 ---------------
 冗余盘3 00001111
 
 --假设盘0坏了
 数据盘0 ????????
 数据盘1 11001101
 数据盘2 00110011
 ---------------
 冗余盘3 00001111

则可以根据其余的3个盘进行计算:第1位冗余盘为0,盘1为1,盘2为0,根据模2的方法可计算出盘0的第1位是1,其余类似

--优点:磁盘利用率较高。也只能是一个磁盘崩溃才能进行恢复。
--缺点:写入开销需要进行多个盘的模2计算,所以写入性能不好

--3
--RAID5 对RAID4的进行改正
--假如还是4个磁盘。与RAID4不同的是,冗余盘不再是一个磁盘。而是分配到各个磁盘。
--分配的方法是:
 盘0是:4n+0的柱面(n>=0)的冗余盘
 盘1是:4n+1的柱面(n>=0)的冗余盘
 盘2是:4n+2的柱面(n>=0)的冗余盘
 盘3是:4n+3的柱面(n>=0)的冗余盘

所以每一个磁盘的读写概率是一样的。写概率=1/4+3/4*1/3=1/2
(对以上解释:1/4是写入自己所在的磁盘)+3/4(不是写入自己所在的磁盘)*1/3(和其余3个盘的其中一个))

--优点:磁盘利用率较高。(至少需要3个磁盘),也只能是一个磁盘崩溃才能进行恢复。
--缺点:还是不能恢复多个磁盘同时崩溃的错误

--4
--RAID6
--假设有7个磁盘,4位(一种简单的主要是利用海明码)盘0-3是数据盘,4-6是冗余盘
盘0 盘1 盘2 盘3 盘4 盘5 盘6
1   1   0   1   0   1    0
1   0   1   0   0   1    0
0   0   1   0   1   0    1
0   1   0   1   1   0    1
--方法
盘4是盘0 1 2 的模2和
盘5是盘0 1 3 的模2和
盘6是盘0 2 3 的模2和

--假如同时有两个盘崩溃。可利用RAID4讲的办法进行恢复。

--优点:可以同时支持多个磁盘的崩溃恢复
--缺点:写入性能开销大。


--其他关于RAID的介绍
http://msdn.microsoft.com/zh-cn/library/ms190764(v=sql.105).aspx
--关于基于硬件的解决方案
http://msdn.microsoft.com/zh-cn/library/ms188252(v=sql.105).aspx
--比较 RAID 等级的不同实现
http://msdn.microsoft.com/zh-cn/library/ms178048(v=sql.105)