RAID磁盘列阵

                        RAID

  RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性

通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能;

通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;

通过镜像或校验操作提供容错能力;

RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:RAID0,RAID1,RAID4 RAID5 RAID6,RAID10,RAID01等。目前经常使用的是RAID5和RAID(1+0)。

RAID-0 :也叫条带卷,它代表了所有RAID级别中最高的存储性能。它把数据分块存储提高性能,所有也会影响它的冗余能力。

    读写性能提升

    可用空间:N*min(S1,S2,…)

    无容错能力

    最少磁盘数:2,2+

RAID-1:也称镜像卷,把同一数据分开存储到2个相同的磁盘里从而提高数据的冗余能力。

    读性能提升、写略有下降

    可用空间:1*nub(S1,S2…)

    有容错能力

    最少磁盘数:2,2+

RAID-4: RAID4即带奇偶校验码的独立磁盘结构,二块写入数据,一块写入校验码,校验码磁盘容易损坏,在独立访问阵列中,每个磁盘都是独立运转的,因此不同的I/O请求可以并行地满足

   

RAID-5:和RAID4类似,但它把校验码通过运算存储到各个磁盘上从而提升数据的冗余

    读、写性能提升

    可用空间:(N-1)*min(S1,S2…)

    有容错能力:1块磁盘

    最少磁盘:3,3+

RAID-6:是RAID-5的增强版,通过校验,让数据更加冗余安全,但写入较差

    读、写性能提升

    可用空间:(N-2)*min(S1,S2…)

    有容错能力:2块磁盘

    最少磁盘:4,4+

混合类型

RAID-10: Raid 10是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全

            RAID-10.jpg

    读、写性能提升

    可用空间:N*min(S1,S2,….)/2

    有容错能力:每组镜像最多只能坏一块

    最少磁盘数:4, 4+

RAID-01:

    

    性能表现:读、写提升

    冗余能力:有

    空间利用率:1/2

    至少需要4块盘

RAID-50:它具有RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实现跨磁盘抽取数据。

    

    性能表现:读、写提升

    冗余能力:有

    空间利用率:(n-2)/n

    至少需要6块盘

    

RAID-7 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

JBOD:Just a Bunch Of Disks

    功能:将多块磁盘的空间合并以个大的连续空间使用

    可用空间:sum(S1,S2,…)

常用级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

RAID实现方式:

        硬件实现方式

        软件实现方式

     

mdadm: 用于建设,管理和监控RAID阵列

语法

    mdadm [mode] <raiddevice> [options] <component-devices>

模式:

创建:-C

    -a {yes|no}:自动创建目标RAID设备的设备文件

    –create或-C –help :查看创建帮助

    –chunk=      -c #:设置cunk大小

    –level=      -l #:设置RAID等级

    –scan        -s #扫描

    –spare-devices= -x #:指明空闲盘的个数

    –raid-devices= -n #:使用#个块设备来创建此RAID

显示: -D   

    –display或-D –hrlp:获取显示帮助

    –stop        -S  

装配: -A

监控: -F

管理:

    

    -f: 标记指定磁盘为损坏

    -a: 添加磁盘

    -r: 移除磁盘

做RAID卷时,磁盘分区要分为Linux raid autodetect 用fdisk /dev/[sh]d[a-z] 下 t该为fd分区

[root@Cloud /]#fdisk -l /dev/sdc #查看已经分为Linux raid autodetect分区
Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x47d02b82
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         654     5253223+  fd  Linux raid autodetect #raid分区
/dev/sdc2             655        1308     5253255   fd  Linux raid autodetect
/dev/sdc3            1309        1962     5253255   fd  Linux raid autodetect

创建RAID-5卷

[root@Cloud /]#mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdc{1,2,3} /dev/sdb1
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdc2 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdc3 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Mon Aug  1 22:54:30 2016
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=1060256K  mtime=Thu Jan  1 08:00:00 1970
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid0 devices=2 ctime=Mon Aug  1 23:26:23 2016
Continue creating array? yes         
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

显示创建的RAID卷

[root@Cloud /]#mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5 #rai级别
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3 #raid存储设备
  Total Devices : 4 #raid全部设备
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:12:35 2016
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 2
         Layout : left-symmetric
     Chunk Size : 512K #chunk大小
 Rebuild Status : 45% complete
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 8
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       4       8       35        2      spare rebuilding   /dev/sdc3
       3       8       17        -      spare   /dev/sdb1 #备用

模拟损坏磁盘

[root@Cloud /]#mdadm /dev/md0 -f /dev/sdc3
mdadm: set /dev/sdc3 faulty in /dev/md0

查看raid状态

[root@Cloud /]#cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [raid0] 
md0 : active raid5 sdc3[4](F) sdb1[3] sdc2[1] sdc1[0]
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [======>..............]  recovery = 30.8% (1621760/5249024) finish=1.0min speed=57920K/sec
      
unused devices: <none>

[root@Cloud /]#mdadm -D /dev/md0 #查看raid信息
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:16:15 2016
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0
         Layout : left-symmetric
     Chunk Size : 512K
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 37
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       3       8       17        2      active sync   /dev/sdb1
       4       8       35        -      faulty   /dev/sdc3 #损坏磁盘

移除损坏磁盘

[root@Cloud /]#mdadm /dev/md0 -r /dev/sdc3
mdadm: hot removed /dev/sdc3 from /dev/md0

新增磁盘

[root@Cloud /]#mdadm /dev/md0 -a /dev/sdb2
mdadm: added /dev/sdb2
[root@Cloud /]#mdadm /dev/md0 -a /dev/sdc3
mdadm: added /dev/sdc3

[root@Cloud /]#mdadm -D /dev/md0 #显示
/dev/md0:
        Version : 1.2
  Creation Time : Tue Aug  2 00:11:50 2016
     Raid Level : raid5
     Array Size : 10498048 (10.01 GiB 10.75 GB)
  Used Dev Size : 5249024 (5.01 GiB 5.38 GB)
   Raid Devices : 3
  Total Devices : 5
    Persistence : Superblock is persistent
    Update Time : Tue Aug  2 00:18:31 2016
          State : clean 
 Active Devices : 3
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 2
         Layout : left-symmetric
     Chunk Size : 512K
           Name : Cloud.GO:0  (local to host Cloud.GO)
           UUID : 39ef8aa5:5b789569:b425534d:a32cc64e
         Events : 40
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       34        1      active sync   /dev/sdc2
       3       8       17        2      active sync   /dev/sdb1
       4       8       18        -      spare   /dev/sdb2 #新增的磁盘
       5       8       35        -      spare   /dev/sdc3 #新增的磁盘

生成配置文件: 保存配置。

    mdadm –D –s >> /etc/mdadm.conf

radi在挂载的时候尽量使用UUID或lebel挂载,因为raid卷的名字会自动更改!

停止raid服务

[root@Cloud /]#mdadm -S /dev/md0 #停止raid服务
mdadm: stopped /dev/md0
[root@Cloud /]#cat /proc/mdstat #查无raid状态
Personalities : [raid6] [raid5] [raid4] [raid0] 
unused devices: <none>

激活raid服务

[root@Cloud /]#cat /proc/mdstat #激活raid服务
Personalities : [raid6] [raid5] [raid4] [raid0] 
unused devices: <none>
[root@Cloud /]#mdadm -A -s /dev/md0 
mdadm: /dev/md0 has been started with 3 drives and 1 spare.
[root@Cloud /]#cat /proc/mdstat  #显示raid5活跃
Personalities : [raid6] [raid5] [raid4] [raid0] 
md0 : active raid5 sdc1[0] sdb1[3](S) sdc3[4] sdc2[1]
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

彻底删除raid卷

[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc1#删除成员
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc2#删除成员
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc3#删除成员
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdb2#删除成员
[root@Cloud /MYDATA]#rm -fr /etc/mdadm.conf #删除配置文件

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

(0)
ladsdmladsdm
上一篇 2016-09-07
下一篇 2016-09-07

相关推荐

  • MariaDB之MHA配置

    工作拓扑 一、MHA简明:     MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了    automating master failover 功能。MHA在监控到master节点故障时,会提升其中    拥有最新数据的…

    2014-10-08
  • ansible

    ansible 安装ansible 查看当前的系统版本 yum install redhat-lsb-core -y [root@localhost httpd]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: C…

    Linux干货 2017-07-09
  • zabbix如何监控nginx的status

    nginx   status配置 server {                 listen      80;                 server…

    Linux干货 2016-02-19
  • 运维成长记

     在学校里学到的是知识,而企业更看重的是技能和能力。我们需要把知识先转化为技能,然后实践中通过总结提升,转变为自己的能力。这个过程或许会很漫长,但是时间会证明一切。成长的过程注定是痛苦的,欲戴王冠,必承其重!我们有理由相信:运气也是实力的一部分! 第一次接触linux还是在大学的课堂上,看着老师在物理机上用VM虚拟出一台Ubuntu的时候,真实感觉…

    Linux干货 2017-07-11
  • Linux基础学习总结(二)

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 常用基础命令:cd、pwd、mkdir、touch 查看:cat,more,less,tail,head,tac 复制:cp 移动:mv 删除:rm 创建:touch 元数据属性:stat 查看内容类型:file 二、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及…

    Linux干货 2016-09-24
  • 文件系统层次标准FHS

    FHS针对目录树架构仅定义出三层目录下应该放置哪些数据,分别是下面三个目录: /(根目录):与开机系统有关; /usr(unix software resource):与软件安装执行有关; /var(variable):与系统运作过程有关。   下面分别对上述三层目录进行详细的阐述。   (1) /(根目录)   根目录是整个系统最重要的一个目录,…

    Linux干货 2016-10-19