RAID磁盘阵列

什么是RAID?

   RIAD(Redundant Array of Independent Disk,独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。

RAID的实现方式:

  RAID的实现方式有三种:

    1、外接式磁盘阵列:通过扩展卡提供适配能力
    2、内接式RAID:主板集成RAID控制器
    3、利用软件方式实现RAID功能

几种常用的RAID

1、RAID0

    即条带卷,RAID0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量。
特点:
    容错能力:                 无 
    数据冗余:                 无
    写 性 能:                提升                             
    读 性 能:                提升
    需要的磁盘数:           2,2+                                    
    可用容量:              总的磁盘的容量
2.png
如图所示条带化有很好的性能。在RAID0(条带化)中数据将使用切片的方式被写入到磁盘。一半的内容放在一个磁盘上,另一半内容将被写入到另一个磁盘。在这种情况下,如果驱动器中的任何一个发生故障,我们就会丢失数据,因为一个盘中只有一半的数据,不能用于重建 RAID。

2、RAID1

    即镜像卷,把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力。
特点:
    容错能力:                   有
    数据冗余:                   有
    写性能:                    下降
    读性能:                    提升
    需要的磁盘数:               2,2+
    可用容量:                  总磁盘容量的50%
3.png
如图所示,镜像可以对我们的数据做一份相同的副本。假设我们有两个2TB的硬盘驱动器,我们总共有4TB,但在镜像中,放在RAID控制器后面的驱动器形成了一个逻辑驱动器,我们只能看到这个逻辑驱动器有2TB。当我们保存数据时,它将同时写入这两个2TB驱动器中。创建RAID1(镜像化)最少需要两个驱动器。如果发生磁盘故障,我们可以通过更换一个新的磁盘恢复RAID。如果在RAID1中任何一个磁盘发生故障,我们可以从另一个磁盘中获取相同的数据,因为另外的磁盘中也有相同的数据。所以是零数据丢失。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而镜像盘的磁盘空间利用率低,存储成本高。 RAID1虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

3、RAID 5

    即分布式奇偶校验,RAID5可以理解为是RAID0和RAID1的折衷方案,但没有完全使用RAID1镜像理念,而是使用了“奇偶校验信息”来作为数据恢复的方式。
特点:
    容错能力:                   有
    数据冗余:                   有
    写性能:                    提升
    读性能:                    提升
    需要的磁盘数:               3,3+
    可用容量:                  (n-1)/n的总磁盘容量(n为磁盘数)
4.png
RAID5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 以四个硬盘组成的RAID5为例,其数据存储方式如图所示:图中,Ap为A1,A2和A3的奇偶校验信息,其它以此类推。由图中可以看出,RAID5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据,但是如果驱动器损坏个数超过1个会导致数据的丢失。RAID5可以为系统提供数据安全保障,但保障程度要比RAID1低而磁盘空间利用率要比RAID1高。RAID5具有和RAID0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率要比RAID1高,存储成本相对较低。

4、RAID6

    即双分布式奇偶校验,RAID6和RAID5相似但它有两个分布式奇偶校验。
特点:
    容错能力:                   有
    数据冗余:                   有
    写性能:                    提升
    读性能:                    提升
    需要的磁盘数:               4,4+
    可用容量:                  (n-2)/n的总磁盘容量(n为磁盘数)
5.png
RAID6技术是在RAID5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID5等级。与RAID5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的数据冗余性能相当好,即使有2个驱动器发生故障,依然可以更换新的驱动器后重建数据。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间.

5、RAID10

    RAID10可以被称为1+0或0+1。它将做镜像+条带两个工作。在RAID10中首先做镜像然后做条带。在RAID01上首先做条带,然后做镜像。
特点:
    容错能力:                   有
    数据冗余:                   有
    写性能:                    提升
    读性能:                    提升
    需要的磁盘数:               4,4+
    可用容量:                  总磁盘容量的50%

1481211841889976.jpg          

8.png

                                                            

RAID01和RAID10非常相似,二者在读写性能上没有什么差别。但是在安全性上RAID10要好于 RAID01。如图中所示,假设DISK0损坏,在RAID10中,在剩下的3块盘中,只有当DISK1故障, 整个RAID才会失效。但在RAID01中,DISK0损坏后,左边的条带将无法读取,在剩下的3快盘 中,只要DISK2或DISK3两个盘中任何一个损坏,都会导致RAID失效。

 

软RAID创建示例:

创建一个大小为10G的RAID1,要求有空闲盘,而且CHUNK大小为128k。

第一步:先创建三个大小为10G的分区,分区类型修改为Linux raid autodetect
    [root@localhost ~]# fdisk -l /dev/sdb

    Disk /dev/sdb: 37.6 GB, 37580963840 bytes
    255 heads, 63 sectors/track, 4568 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xfeadeb63

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        1306    10490413+  fd  Linux raid autodetect
    /dev/sdb2            1307        2612    10490445   fd  Linux raid autodetect
    /dev/sdb3            2613        3918    10490445   fd  Linux raid autodetect

第二步:创建RAID1并指明CHUNK大小为128KB
    [root@localhost ~]# mdadm -C /dev/md0 -a yes -n 2 -x 1 -l 1 -c 128 /dev/sdb{1,2,3}
        \* -a 是否自动创建目标RAID设备的设备文件
           -n 指明RAID磁盘个数
           -x 指明空闲盘的个数
           -l 指明要创建的RAID级别
           -c 指明CHUNK大小
        */
    [root@localhost ~]# cat /proc/mdstat   \*查询md0状态*\
    Personalities : [raid1] 
    md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0]
          10482112 blocks super 1.2 [2/2] [UU]

    unused devices: <none>

 

创建一个大小为4G的RAID5设备,chunk大小为256k,格式化为ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能。

第一步:创建五个大小为1G的分区,分区类型修改为Linux raid autodetect
    [root@localhost ~]# fdisk -l /dev/sdb
        Device Boot      Start         End      Blocks   Id  System
    /dev/sdb5             397         528     1060258+  fd  Linux raid autodetect
    /dev/sdb6             529         660     1060258+  fd  Linux raid autodetect
    /dev/sdb7             661         792     1060258+  fd  Linux raid autodetect
    /dev/sdb8             793         924     1060258+  fd  Linux raid autodetect
    /dev/sdb9             925        1056     1060258+  fd  Linux raid autodetect
第二步:创建RAID5并指明CHUNK大小为256KB
    [root@localhost ~]# mdadm -C /dev/md0 -a yes -n 5 -l 5 -c 256 /dev/sdb{5,6,7,8,9}

    [root@localhost ~]# cat /proc/mdstat 
    Personalities : [raid6] [raid5] [raid4] 
    md0 : active (auto-read-only) raid5 sdb9[5] sdb8[3] sdb7[2] sdb6[1]
          4236288 blocks super 1.2 level 5, 256k chunk, algorithm 2 [5/4] [_UUUU]

    unused devices: <none>
第三步:格式化为ext4文件系统
    [root@localhost ~]# mke2fs -t ext4 -L myraid5 /dev/md0

第四步:设置开机自动挂载
    [root@localhost ~]# echo "UUID=a4ed7b82-223f-bd1c-1b39-316a2c92d2bb /backup  ext4 acl,noatime 0 0" >> /etc/fstab

 

原创文章,作者:641348038@qq.com,如若转载,请注明出处:http://www.178linux.com/63040

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-12-13
下一篇 2016-12-13

相关推荐

  • magedu_20160808

    行编辑器sed与vim文本处理器     一.行编辑器sed的使用介绍     sed英文全称stream editor,行编辑器。其工作模式为将文件中内容按行转移至sed模拟空间中,根据地址判定此行是否匹配,如果匹配,根据命令输出并打印,如果不匹配,按照默认打印到屏幕上。它的作用是根据选项和地址界定‘scr…

    Linux干货 2016-08-10
  • 高可用Nginx

    高可用Nginx 基于vrrp流动一个IP地址 各节点时间必须同步; 确保iptables以及selinux不会成为阻碍; 各节点之间可通过主机名互相同喜(对KA而言并非必须) 确保各节点的用于集群服务的接口支持MULTICAST通信 IPv4,D类地址224-239 环境: node1:172.16.253.223 li1.jing.io node1 no…

    Linux干货 2017-06-28
  • 有证说话硬–实现CA和证书申请

    centos下利用openssl来实现证书的颁发 直接进入正题,细节坑就不说了,自己解决起来更有挑战性不是 步骤流程: 我是拿的7.3版本做CA主机,6.8版本做客户端 1.创建CA 2.生成私钥 3.生成自签名证书 4.到客服端 5.生成私钥 6.生成证书申请文件 7.将请求发送给-CA主机 8.CA主机-验证签署 9.拷回给客户端使用 用法:openss…

    2017-04-11
  • Linux计划任务

    Linux任务计划 Linux任务计划、周期性执行任务 未来某一时间点执行一次任务:at,batch 周期性计划任务:crontab     默认执行结果会通过邮件形式发送给用户 本地电子邮件服务 smtp:Simple Mail Transfer Protocol,既简单邮件传输协议,主…

    Linux干货 2016-09-14
  • linux中更改文件权限的实验

      三种基本权限    r 读 数值表示为4 w写 数值表示为2 X 可执行数值表示为1              简单举例: -rw-rw-r–共十个字符,分成四段 第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录 第…

    2017-07-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:28

    赞~能很好的了解各raid模式和使用场景会更好~继续加油~