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)
上一篇 2016-07-16 22:25
下一篇 2016-07-16 22:25

相关推荐

  • Linux基础入门

    一、计算机的组成及其功能 计算机由五大基本部件组成(遵从冯诺依曼体系): CPU:运算器、控制器、寄存器(锁存数据)、缓存(缓存数据) 存储器:通常成为内存,RAM 输入设备:下指令,提供数据等 输出设备:输出数据加工的结果 程序:由指令+数据组成 二、Linux的主流发行版及不同发行版之间的联系与区别 不同发行版Linux操作系统都是由Linux内核和GN…

    Linux笔记 2018-07-27
  • Linux进程管理

    一、程序与进程           1、程序         程序是为了达到特定的目的,可以被计算机运行并且由命令代码组成的语句序列。       &…

    Linux干货 2015-05-14
  • YUM工具的工作原理、用法及源 码包的编译安装

    YUM工具的工作原理,用法及源码包的编译安装 _ueditor_page_break_tag_ 一、 CentOS: yum, dnf       1.YUM: (Yellow dogUpdate Modifier),rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具   …

    Linux干货 2016-09-01
  • linux中的管道符

    管道符 less只能看文件 但是这样做会产生一个垃圾文件ls.txt,所以下面我们就会需要用到管道符 |只将传递正确结果传递给 而使用这两种方法可以传递正确和错误的结果[root@localhost ~]# ls /etc/passwd /cpp/passwd 2>&1|less   ,  (2>&1…

    2017-07-22
  • 源码包编译安装mariaDB

    前言     MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,并且之前是完全开源,所以大受欢迎。但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少。所以M…

    Linux干货 2016-02-28
  • 数组、变量及bash的配置

    数组、变量及bash的配置 变量:存储单个元素的内存空间 数组:存储多个元素的内存空间,相当于多个变量集合 索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式 数组的声明 普通数组declare –a 关联数组 declare –A 普通数组可以不声明直接使用,关联数组必须先声明再使用 数组的赋…

    Linux干货 2016-08-26

评论列表(1条)

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

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