一、RAID简介
传统磁盘的劣势:IO性能极弱、稳定性极差。
影响计算机性能的组件一般包括:CPU、主板总线IO、内存IO、硬盘IO、网卡IO。现代的计算机总线、内存速度可以达到5G每秒,甚至更高,但是硬盘IO往往较低,硬盘是绝大多数计算机的性能瓶颈。
RAID(Redundant Array of Independent Disks)独立冗余磁盘阵列技术是通过多磁盘并行运行来提高计算机的存储IO性能。防止硬盘物理损坏以及增加存储设备的吞吐量。
二、RAID分类
磁盘阵列有三种:外接式磁盘阵列柜、内接式磁盘阵列卡、利用软件来仿真。
三、RAID原理
磁盘阵列作为独立系统在主机外直接或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不通端口连接。一个主机链接阵列的不通端口可以提升传输速度。
和当时PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。
在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。
四、RAID级别
RAID0:使用最少2块硬盘,在读写时,将数据分开读写到多块硬盘的方式来提高读写性能。有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
空间利用率:所有硬盘空间之和
性能:所有硬盘速度之和
冗余能力:无
RAID1:使用最少2块硬盘,在写数据时,将数据复制写到多块硬盘。在读数据时,以提供冗余性。同时从多块硬盘读取数据,以提高读性能。有效的提高数据资料的安全性和可修复性。
空间利用率:所有硬盘中最小的那块
性能:读性能为所有硬盘速度之和,写性能会有所减弱
冗余能力:只要有一块硬盘正常,数据就正常
RAID5:最少使用3块硬盘,RAID5与RAID0类似,读写数据的时候会将数据分布式的读写在所有磁盘上,但是在写数据的时候会对数据进行奇偶校验运算,将校验信息同时保存在硬盘上,校验信息可以进行数据恢复使用。
如上图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
空间利用率:1-1/n
性能:读性能接近RAID0,写性能较RAID0弱一些
冗余能力:可接受1块硬盘损坏
RAID10:需要至少4块硬盘,兼具读写性能和安全性。继承了RAID0读写性能和RAID1的安全性。RAID1提供冗余备份,而RAID0则提供读写性能。
空间利用率:1/2
性能:所有硬盘速度之和
冗余能力:允许每组RAID1损坏一个硬盘
五、RAID实现
软件RAID
通过系统功能或RAID软件实现RAID,没有独立硬件和接口,需要占用一定的系统资源(CPU,硬盘接口速度),并且受操作系统稳定性影响。
硬件RAID
通过独立的RAID硬件卡实现,有些主板集成RAID硬件,有些需要购买独立的RAID硬件卡,硬件RAID实现不需要占用其他硬件资源,稳定性和速度都比软件RAID要强。