早期由于raid通常用来组合一些廉价的sata接口的硬盘设备来完成冗余。
故早期的全称是: Redundant Array of inexpensive Disks (廉价冗余磁盘阵列)。
如今raid也被大部分企业用来组合scsi和sas接口的硬盘设备。
故现在的全称是:Redundant Array of independent Disks (独立冗余磁盘阵列)。
raid的主要功能是把主板上的多块硬盘以某种特定的方式组合起来,组织成一个具有特定特性的一个逻辑整体,然后输出给操作系统或应用程序。根据组合方式的不同,可以让该逻辑整体具有冗余或者加快数据存储的特性。这个具有一定特性的逻辑整体就叫做一个raid阵列。
raid根据其实现方式的不同,分为软件raid和硬件raid。下面来说一下软件raid和硬件raid:
软件raid:软件raid是建立在操作系统的基础上的,首先需要在磁盘上装操作系统,然后用户再利用操作系统内核的功能结合用户应用空间程序在系统识别的块设备上创建raid。在linux系统上任何块设备都是可以用mdadm命令结合内核中的md模块创建成raid的。通过这种方式创建的raid也具有冗余或加速数据存储的特性,前提是创建使用的块设备不在同一块硬盘上。当然软raid在实现数据分块存储时时消耗CPU的计算能力的,因此大多数企业都不采用此种方式来做raid阵列。
硬件raid:硬件raid的建立是在操作系统启动之前的,配置raid一般都是在BIOS和raid阵列卡的界面完成的。raid阵列卡其实就是一个raid控制器,上面可以接多块磁盘。有的阵列卡是集成在主板上的,而有的阵列卡是装在主板的插槽上的。raid阵列卡上一般都带和cpu功能一样的处理芯片,高端点的阵列卡还带内存和电池。接在阵列卡上的硬盘设备可以在系统启动之前配置好raid,在系统启动之后那多块硬盘就相当于一块硬盘供给操作系统使用。当然安装操作系统时,操作系统需要安装该raid阵列的驱动,否则这操作系统将无法识别该raid阵列。通过此种方式创建的raid阵列,由于是通过raid阵列卡创建的,而raid卡上面有自带处理器,因此在执行数据处理工作时,此种方式不需要消耗CPU的计算能力。可以大大的提高raid的性能。因此大多数企业都喜欢用此种方式来做raid阵列。
说完软raid和硬raid,接下来我说一下基本的raid级别。常见的有以下几种:
级别(level) | raid0 |
特性 | 数据均匀的存储在每块硬盘上 |
最少磁盘数 | 2 |
磁盘要求 | 每块磁盘的容量必须一样大,最好是同一厂商同一型号 |
冗余能力 | 无 |
读写性能 | 提升 |
可用空间 | 磁盘个数*单块磁盘容量 |
级别(level) | raid1 |
特性 | 每一份数据在每块硬盘上都存储一份 |
最少磁盘数 | 2 |
磁盘要求 | 每块磁盘的容量必须一样大,最好是同一厂商同一型号 |
冗余能力 | 强 |
读写性能 | 写性能下降,读性能加强 |
可用空间 | 单块磁盘容量 |
级别(level) | raid4 |
特性 | 数据被均匀的存储在(n-1)硬盘上,存储时会生成校验码,校验码会存储在raid4中指定的硬盘上,该硬盘不存储文件数据 |
最少磁盘数 | 3 |
磁盘要求 | 每块磁盘的容量必须一样大,最好是同一厂商同一型号 |
冗余能力 | 加强 |
读写性能 | 提升 |
可用空间 | (磁盘个数-1)*单块磁盘容量 |
级别(level) | raid5 |
特性 | 数据被均匀的存储在(n-1)硬盘上,存储时会生成校验码,校验码会轮流的存储到raid5阵列的磁盘上 |
最少磁盘数 | 2 |
磁盘要求 | 每块磁盘的容量必须一样大,最好是同一厂商同一型号 |
冗余能力 | 加强 |
读写性能 | 提升 |
可用空间 | (磁盘个数-1)*单块磁盘容量 |
除了上述的基本raid以外,raid10和raid50也是raid组合。其中raid10是最常见的这种组合方式是先做raid1,然后把raid1在组合成raid0,这样可以提高。我举个例子:
如图:在红框内的蓝色小框里面的两块磁盘做的是raid1,然后把三个raid1做成一个raid0,那么组合起来就称为raid10。