RAID,磁盘阵列(RedundantArraysof Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,中文为廉价冗余磁盘阵列。目前 RAID技术大致分为两种:基于硬件的RAID技术(Hardware)和基于软件的RAID技术(Software),软RAID通过Linux下的软件就可以实现。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。简单地解释,就是将N块硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。
常见RAID及技术
Disk spanning 数据跨盘技术
Disk striping 数据条带
Disk mirroring 磁盘镜像
Hot spare 热备份
Parity 奇偶校验位
Physical volumes and logical volume 物理卷和逻辑卷
raid 0,提升读写性能,不具备备份,错误修复能力
磁盘空间使用率:100%,故成本最低。
读性能:N*单块磁盘的读性能
写性能:N*单块磁盘的写性能
冗余:无,任何一块磁盘损坏都将导致数据不可用。
raid1,数据镜像,备份
总结:
磁盘空间使用率:50%,故成本最高。
读性能:只能在一个磁盘上读取,取决于磁盘中较快的那块盘
写性能:两块磁盘都要写入,虽然是并行写入,但因为要比对,故性能单块磁盘慢。
冗余:磁盘1数据备份到磁盘2,任何一块硬盘损坏都能正常使用。
RAID实现方式?具体RAID是怎么实现并使用的呢?下面换个方式来快速了解一下。
组建RAID5最低要求:
至少3块硬盘
相同容量(容量有差距则按照其中最低容量硬盘计算)
转速相同
允许坏1块硬盘
打个比喻:现在有4块硬盘需要组成一个RAID5,一块硬盘500G,组成的RAID容量是(n-1)×单盘容量,当你看到这个硬盘时容量不再是500G,而是1.5T的容量,为什么4块硬盘加到一起是1.5T的容量而不是2T呢?
保存的文件和数据会被分别存储到四个不同的硬盘中,缺少任何一块硬盘数据就会丢失完整性,导致数据损坏无法正常读取。
从磁盘0开始,每块硬盘数据都会有一个P值(parity)均匀的分布在每一层,P值包含了这一层数据的信息,当磁盘3损坏时,A的数据全部都在前3个盘,所以文件没有丢失,但是B的文件缺少B3,这时通过磁盘2的P值奇偶检验Parity可以算出B3的信息并还原,以此往下类推,磁盘3的信息都可以被算出来,因此RAID5支持坏一个盘,这样就避免服务器在运行过程中导致硬盘损坏而丢失信息,正是因为每层数据都要占用一块作为奇偶校验位,所有P值加起来正好损失一个盘的容量,才有了4块500G的硬盘组成了1.5T的磁盘阵列。
为什么要用到RAID?
RAID基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个昂贵、容量巨大的硬盘。最初的研制目的是为了利用多个廉价的小磁盘来代替昂贵的大磁盘,以此来降低成本。而随着硬盘技术的发展,如今的磁盘阵列采用了冗余信息的方式,使得其具有数据保护的功能。
比起传统的存储方式,RAID不仅其传输速度得到了提升,又具有热备份、奇偶校验位,数据安全性也得到了提升,显而易见,这种方式更适合数据量庞大的服务器使用。 |