磁盘阵列
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
所有的数据都是存储在存储介质中,我们现在做常用的就是硬盘,其实磁盘阵列就是一大堆磁盘组成的一个存储空间。就好比你家有多个房间。共同组成了一个房子。而对于磁盘阵列来说,总重要的是在硬盘坏掉了也能够保证数据的完整性,这个取决于所选择的RAID级别。
RAID级别
RAID技术主要包含RAID 0~RAID 53等数个规范,我们数据中心最常用的是:
- RAID 0
- RAID 1
- RAID 5
- RAID 1+0/0+1
我就来简单的介绍一下这几个常用的RAID。RAID级别有好多。有兴趣可以查一下。
RAID 0
RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。RAID 0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的***优点就是可以整倍的提高硬盘的容量
RAID 0的存储空间:所有磁盘空间相加。例如使用了三块1T的硬盘组建成RAID 0模式,那么磁盘容量就会是3T。
RAID 0容量是所有磁盘容量和
RAID 1
RAD 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下***限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块1T容量的硬盘来讲,可利用的磁盘空间仅为2T。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。
RAID 1的存储空间:所有磁盘空间相加的一半。例如使用了两块1T的硬盘组建成RAID 1模式,那么磁盘容量就会是1T。
RAID 1容量是所有磁盘容量的一半
RAID 5
RAID 5:分布式奇偶校验的独立磁盘结构,RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID 5的存储空间:至少要用3块硬盘。总容量是N-1。例如使用了三块1T的硬盘组建成RAID 5模式,那么磁盘容量就会是2T。
RAID 5存储空间是N-1
RAID 1+0/0+1
RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。
根据组合分为RAID 10和RAID 01,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的***组合,然后将这两组各自视为RAID 1运作。RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的***组合,而将两组硬盘各自视为RAID 0运作。性能上,RAID 0+1比RAID 1+0有着更快的读写速度。可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10,但不支持RAID 01。
RAID0+1容量是所有磁盘一半
RAID1+0容量是所有磁盘的一半
这就是我们常用的磁盘阵列RAID级别,也是因为是我常用的,所以记录一下。都在说这个数据的安全性,这个很多同学自己没有磁盘阵列和RIAD卡进行测试。即便是工作中维护阵列,因为有数据不能够拔下磁盘做测试。所以想要验证这个RAID的对数据到底有没有影响我们可以使用VMWARE WorkStation。虚拟机进行测试。我就简单给截几个图,待有时间你可以自己测试。安装Vmware Workstation很容易。下载安装即可。
当我们新建好虚拟机之后不要安装操作系统,我们添加磁盘,如图:
添加虚拟机磁盘
添加虚拟机磁盘
看你想做那个RAID级别的测试,比如用RAID 0 。我们添加两块磁盘,启动时做一个RAID 0,然后装系统。装好之后把其中一块磁盘删掉,看看系统能不能启动,当然启动不了。RAID 0,坏一个数据就坏掉了。然后两块磁盘做一个RAID 1,然后装系统,装好之后,删除一块磁盘,再启动试试,发现不受影响???这样就能够测试一下RAID的级别的安全性了。