RAID (redundant array of independent disks, originally redundantarray of inexpensive disks)
RAID是磁盘阵列,很多磁盘拼成一个硬盘,对外只显示为一个硬盘,用一个接口存取。
磁盘阵列是由很多便宜、容量较小、稳定性较高、速度较慢磁盘,组合成一个大型的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。同时利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(ParityCheck)的观念,在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
两大优点:
提高传输速率
RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。
容错
RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。
一组硬盘里有一个是RAID盘,加入其他硬盘相同位置数据的奇偶校验,假如有一个盘坏了,就可以通过RAID中所有盘奇偶异或的数据和其他盘片相同位置内容恢复出坏盘数据。假如RAID盘坏了,那就换一个新的,重新计算RAID。
所以能保证有一个硬盘坏时数据不会丢失。
Cache
磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。
和目前PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。
在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。
数据分割
连续的数据分为不同block,byte或bit,分布到不同的硬盘上,来提高读取速度。不同RAID协议对数据分布的方式规定不一样,RAID-2是按bit,一个连续的8bit数据分布到8个硬盘上。RAID-3按byte,RAID-6按block,同时支持双奇偶校验位,两个硬盘存容错信息。
Reference
http://en.wikipedia.org/wiki/RAID
http://baike.baidu.com/view/7102.htm