RAID整理

RAID级别介绍

RAID的定义

RAID:独立硬盘冗余阵列 (Redundant Arrays of Inexpensive Disks)

把多个硬盘组合起来,成为一个硬盘阵列组,将其作为一个磁盘。

RAID的作用

  • 增强数据集成度

  • 增强容错功能,即耐用性

  • 增加处理量或容量,即提高IO能力

实现RAID的方式

  • 外接磁盘阵列:通过扩展卡提高适配能力

  • 内接式RAID:主板集成RAID控制器

  • Software RAID

我们在使用中比较常用的RAID的级别分别有:

  • RAID-0:

  • RAID-1:

  • RAID-2:

  • RAID-3:

  • RAID-4:

  • RAID-5:

  • RAID-6:

其组合形式主要有:

  • RAID-10

  • RAID-50

  • RAID-60

我们主要介绍RAID-0,RAID-1,RAID-5,RAID-10,RAID-5这四种方式。

1.RAID-0

条带卷,即将数据流分成块(chunk)轮流存储到两个即两个以上的磁盘中。 因为读写都可并行处理,所以在所有的级别中,RAID-0的速度是最快的,但不具备容错能力。即如果一个磁盘损坏,则所有数据都会丢失。它的可用空间为N*min(S1,S2,…)。

2.RAID-1

镜像卷(mirror),即将数据各向两个及两个以上的磁盘存一份。读性能提升,但写性能略有下降,因为写性能是以最慢的写速度作为标准。有容错能力,如果主硬盘损坏时,镜像硬盘则替代主硬盘工作。总体来说,RAID-1的数据安全性是最高的,但磁盘利用率是最低的。它的可用空间为min(S1,S2,…)。

3.RAID-5

RAID-5是RAID-0和RAID-1之间的这种方法,它的数据安全性比RAID-0高,磁盘利用率比RAID-1高。

RAID的工作方式是:在RAID-0的基础上在增加一个磁盘,即最少使用3个磁盘,除了需要存放数据,还需存放对应的多位数据的异或值,即利用奇偶校验法,要注意的是,数据块(chunks)和校验位必须要按顺序即默认为左对称的方式排放。

RAID-5有容错能力,但只能允许一个磁盘损害,出现损害后可利用校验位可求出损害磁盘中所对应的数据来进行读操作。 可用空间(N-1)*min(S1,S2…)

4.RAID-10

RAID 10是先像射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。读写性能提升,有容错能力,只要一组镜像不同时损害,数据就是安全的。最少需要4块磁盘。可用空间是N*min(S1,S2…)/2

5.JBOD: Just a Bunch Of Disks

将多块磁盘的空间合并一个大的连续空间使用,任意一块磁盘损坏,数据及损坏。 可用空间:sum(S1,S2,…)

RAID的创建

创建RAID的前提是要创建好足够多的分区,并将分区设置为 Linux raid形式。

下面我们来讲讲具体的操作:

[root@localhost ~]# mdadm -C /dev/md0 -l 1 -a yes -c 256 -n 2 -x 1 /dev/sda{5,6,7}

-C: 创建模式
/dev/md0: RAID设备文件
-l #:指明要创建的RAID的级别
-a {yes|no}:自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小
-n #: 使用#个块设备来创建此RAID;
-x #: 指明空闲盘的个数

下面来创建文件系统,我们选择ext4, [root@localhost ~]# mkfs.ext4 -L 'mydata' /dev/md0 #指明卷标为mydata,还有一些其他的选项见上一篇文件系统整理。

下面挂载设备文件

 mount /dev/md0 /testing/ #将刚创建的RAID挂载到/testing目录上。

以上RAID就全部完成了

下面是一些测试

[root@localhost ~]# mdadm  /dev/md0 -f /dev/sda5
mdadm: set /dev/sda5 faulty in /dev/md0
# 将/dev/sda5标记为损坏


[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jul 13 08:59:42 2016
     Raid Level : raid1
     Array Size : 5243712 (5.00 GiB 5.37 GB)
  Used Dev Size : 5243712 (5.00 GiB 5.37 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Wed Jul 13 09:12:55 2016
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 0

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 5200617c:c8fb16ca:3b7de280:0d56f967
         Events : 36

    Number   Major   Minor   RaidDevice State
       2       8        7        0      active sync   /dev/sda7
       1       8        6        1      active sync   /dev/sda6

       0       8        5        -      faulty   /dev/sda5
#显示raid的详细信息,可以看到此时备用磁盘/dev/sda7已自动成为主磁盘里。数据未遭到损坏。


[root@localhost ~]# mdadm  /dev/md0 -r /dev/sda5

# 移除磁盘/dev/sda5

此时raid的信息是

 Number   Major   Minor   RaidDevice State
   2       8        7        0      active sync   /dev/sda7
   1       8        6        1      active sync   /dev/sda6

下面我们再来添加/dev/sda5

 mdadm  /dev/md0 -a /dev/sda5
 #添加磁盘/dev/sda5

可看到信息:

 Number   Major   Minor   RaidDevice State
   2       8        7        0      active sync   /dev/sda7
   1       8        6        1      active sync   /dev/sda6

   3       8        5        -      spare   /dev/sda5

如果想停止md设备

[root@localhost ~]# umount /testing/
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
 #注意:一定要先卸载设备,才能停止

原创文章,作者:21期-扬州-蓝,如若转载,请注明出处:http://www.178linux.com/24176

(0)
21期-扬州-蓝21期-扬州-蓝
上一篇 2016-07-16
下一篇 2016-07-16

相关推荐

  • 网络基础

    网络小白一个,针对网络的基础知识无从下手,因此本文引用了鸟哥私房菜中的众多概念性知识,在此谢过,本文主要从OSI七层协议,TCP协议和一些网络中专业词汇进行解析,并通过子网掩码的划分,网络接口的配置、路由配置等实例来加深对网络的理解。 一、OSI七层协议:     OSI七层协议的由来:   由于网络链接过程…

    Linux干货 2016-09-07
  • 文件查找命令之locate、find简析

    文件查找命令之locate、find简析    在工作中经常会在文件系统上查找符合条件的文件,今天学习了文件查找命令,在此简析locate和find两个文件查找工具。 一、杂项知识整理 1、find的选项-user的实质是通过UID查找,如果两个用户的UID相同,其会显示两个用户的所有符合条件的文件。 2、查找时-name "*…

    Linux干货 2016-08-15
  • 用一条命令’pwd’判断并证明系统命令的执行顺序。

    一、命令分类        在Linux系统中命令分为两类:            1.内部命令:shell buildin 每次启动系统都会重新加载入内存。        2.外部命令:即某目录下的…

    Linux干货 2017-09-03
  • shell中的if else语句与文件查找find浅析

    shell中的if else语句与文件查找find浅析    上篇文章中我们讲述了shell脚本编程的初步入门,其中讲到了shell编程中的顺序执行,顺序执行时一种简单的小脚本,如果在编辑脚本的时候遇到要做出条件判断执行的时候要怎么办呢?我们学习过if之后你会发现这会很简单。if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。 S…

    Linux干货 2016-08-16
  • 马哥Linux第二周作业

    第二周作业(6.25-7.1)

    Linux笔记 2018-06-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-17 20:28

    写的很好,排版也很漂亮,加油