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

相关推荐

  • suid, sgid, sticky简介

    SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码。但是保存用户密码的/etc/shadow文件的权限是000,也就是说只有文件的所有者root用户可以写入,那为什么其他用户也可以修改自己的密码呢?这就是由于Linux的文件系统中的文件有SUID属性。 [root@centos6 ~]# ll /etc/shadow…

    Linux干货 2017-07-27
  • N21_第6周_vim

    N21_第6周_vim 请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; 3、删除/tmp/…

    Linux干货 2016-08-15
  • 网络班26期-第1周课程作业

    1、描述计算机的组成及其功能? (1)CPU:计算机的大脑,计算机的运算,命令的控制功能,寄存器及缓存都由CPU功能承担; (2)内存:RAM,随机访问存储器,计算机的另一个核心功能,系统指令存放及运行的基础。 (3)输入设备:人工给计算机下指令的设备,例如鼠标,键盘等; (4)输出设备:计算机输出人工输入的执行命令的结果;例如,音响,显示屏等; …

    Linux干货 2017-01-10
  • N25_第四周博客作业

    N25_第四周博客作业   1、复制/etc/ske1目录为/home/tuser1,要求/home/tuser1及其内部文件的属组合其他用户均没有任何访问权限。     2、编辑/etc/group文件,添加组hadoop.。             &nb…

    Linux干货 2016-12-24
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  答:文件管理类命令有: touch :创建一个新文件 示例:在/tmp/目录下创建一个1.log文件 touch /tmp/1.log mv:移动文件  示例:将/etc/fstab文件移至/tmp/目录中。  mv /etc/fstab /tmp/…

    Linux干货 2016-06-23
  • kickstart文件及引导镜像的制作流程

    kickstart文件及引导镜像的制作流程 kickstart文件制作流程 安装制作kickstart文件的图形界面工具 [root@slave1 ~]# yum install system-config-kickstart 开启工具 [root@slave1 ~]# system-config-kickstart 在打开的图形界面中通过file菜单选项选…

    Linux干货 2017-09-04

评论列表(1条)

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

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