RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。
RAID技术的两大特点:一是速度、二是安全,由于这两项优点,RAID技术早期被应用于高级服务器中的SCSI接口的硬盘系统中,随着近年计算机技术的发展,PC机的CPU的速度已进入GHz 时代。IDE接口的硬盘也不甘落后,相继推出了ATA66和ATA100硬盘。这就使得RAID技术被应用于中低档甚至个人PC机上成为可能。RAID通常是由在硬盘阵列塔中的RAID控制器或电脑中的RAID卡来实现的。
RAID技术经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的RAID 级别。另外,还有一些基本RAID级别的组合形式,如RAID 10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID 级别代表着不同的存储性能、数据安全性和存储成本。但我们最为常用的是下面的几种RAID形式。
今天读Gaja Krishna Vaidyanatha的文章《Implementing RAID on Oracle》,对于一些以前有些模糊的概念觉得清楚了不少,所以把一些常用的RAID类型再描述一下,希望对大家也有帮助。同时也存在一些疑惑,希望能够得到解答。
问题:
奇偶校验为什么只需要较少的空间,比如一块盘就可以存储其它多块盘的校验数据?这个可能是牵涉到算法问题了,呵呵,原谅我没有学过,只要大概说一下就好。
RAID5中奇偶校验值存储在哪块盘中是否有一定的算法?
RAID概念
RAID0:纯条带,对于读写都能提高效率,但是可用性不高。
RAID1:纯镜像,对于读能够提高效率,对于写会产生负面影响,可能会慢15-20%
RAID0+1:先条带再镜像,如果有一块盘坏了,那么整个条带的部分都失效了,所有的I-O将转嫁到另外的一个条带上。
RAID1+0:先镜像再条带,如果有一块盘坏了,不会导致整个条带部分失效,其余不在这块坏盘上的数据仍然可以提供条带的读写优势。
RAID2:早期的条带+奇偶校验,用Hamming Code算法来生成奇偶校验值,已经被RAID3,5,7替代
RAID3:利用ECC算法进行奇偶校验,所有的奇偶校验值都存在一个disk上,是基于bit/byte级别的奇偶校验,适合于只读的系统,特别是sequential I-O的系统(比如有大量的full table scan和index range scan)。
RAID4:跟RAID3一样,只是是基于block级别的奇偶校验,很少使用
RAID5:奇偶算法跟RAID2,3,4,7一样,只是奇偶校验值是跟数据存储在一起的,也就是每个盘上都有其它盘数据的奇偶校验值,当有足够的写cache,RAID5的写性能会有不错的改善,不过RAID5还是最适合只读的系统,特别是random I-O的系统。
RAID6:用更复杂的算法来完成奇偶校验值的计算,并且对于每个数据块都存储两份奇偶校验值,因此比RAID5在写入数据的时候更慢,但是在由于失败而进行数据恢复的时候效率比较高,很少使用。
RAID7:跟RAID3一样,所有的奇偶校验值都存在一个disk上,但是RAID使用的是同步的写入,而RAID7则支持异步写入,因此大大提高了整体的I-O效率,是一个很有潜力替代RAID3的类型,当然比起RAID3来说要昂贵。
RAID-S:如果使用了EMC的存储阵列,那么这是它上面的RAID3/5的类型。EMC的阵列通常提供了很大的写cache,但是通常我们认为这些cache仍然没有足够大到可以抵消写数据时要生成奇偶校验值所带来的负面影响。
Auto RAID:HP提供的一种RAID类型,通过对一个disk block(通常为64K)上操作类型的判断(基本上是读还是基本上是写),来动态地在RAID5和RAID0+1之间进行转换。由于要实现这样的特性,所以一个阵列上所有的磁盘都必须服务于在这个阵列上配置的RAID卷,因此也就无法实现多个卷之间物理磁盘的独立。如果当前的系统是一个负载很重的Oracle数据库,那么可能会出现不可预知的I-O问题。
公司以前的系统基本上使用的都是RAID+UNIX 的文件系统来做为Oracle 数据库的存储,虽然说在磁盘IO 上面没有出现很大的系统瓶颈,但是对于RAW还是存在很大的兴趣,既然RAW 能够提供很大的IO 效率的话,那我们就应该使用它,毕竟在系统很繁忙的时候,磁盘IO 瓶颈还是一个比较大的问题,这几天研究了一下RAW设备,打算在以后的系统中也逐步的采取RAW的存储方式。裸设备与Oracle 20问
查看全文





