码迷,mamicode.com
首页 > 系统相关 > 详细

linux软RAID

时间:2015-09-13 20:14:08      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:raid

一、RAID简介

独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。


二、条带化存储技术

条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个 不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。

技术分享

三、RAID级别和机制

 


条带机制

RAID 0                  (读速度提高了,写的数据慢了)

技术分享


磁盘镜像机制

RAID 1

技术分享


效验码机制

RAID 4                 (读写都提高了,效验码盘存储压力大成为性能瓶颈)  

技术分享


RAID 0+1(先做条带,然后再把各个条带组成RAID1)

技术分享


RAID 1+0(先两两镜像,然后RAID0)

技术分享


RAID 5       RAID 6   两块效验盘)

技术分享


JBOD  (磁盘堆叠,多块盘组成一个容量大的盘,hadoop建议使用JBOD ,hadoop 机制HDFS可以实现JBOD冗余,JBOD本身没有冗余功能)

技术分享





RAID实现的方式:

外接式磁盘阵列,通过扩展卡通过适配能力

内核式RAID:主板集成RAID控制器

software RAID


RAID配置命令和查看命令

centos6上的软件RAID的实现结合了内核中的md(multi devices)
命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10;

[mode]

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


装配模式(装配能扫描RAID上的元数据,常用于装系统后,重新装配使用)
    -A
管理模式
    -f标记指定磁盘为损坏
    -a添加磁盘
    -r移除磁盘


<raiddevice>:/dev/md#

<component-devices>:任意块设备,可以是磁盘,可以是分区。


显示RAID的详细信息
mdadm -D /dev/md5\

查看MD的状态
 cat /proc/mdstat 


实例创建RAID5:

1,分区设置分区ID fd

[root@localhost /]# fdisk -l |grep "^/dev/sd[a-g]"
/dev/sda1   *           1          26      204800   83  Linux
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sdb1               1         654     5253223+  fd  Linux raid autodetect
/dev/sdb2             655        1308     5253255   fd  Linux raid autodetect
/dev/sdb3            1309        1962     5253255   fd  Linux raid autodetect
/dev/sdc1               1         654     5253223+  fd  Linux raid autodetect
[root@localhost /]# 


2,创建RAID5

[root@localhost testmd5]# mdadm -C /dev/md5 -a yes -n 3 -l 5 -x 1 /dev/sd[b,c][1-3]
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdb2 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdb3 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
mdadm: /dev/sdc1 appears to be part of a raid array:
       level=raid5 devices=3 ctime=Wed Aug 26 17:28:15 2015
Continue creating array?             
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.

3,查看md的状态

[root@localhost testmd5]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md5 : active raid5 sdb3[4] sdc1[3](S) sdb2[1] sdb1[0]
      10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [============>........]  recovery = 61.8% (3246400/5249024) finish=1.0min speed=30693K/sec
      
unused devices: <none>

4,查看RAID信息

[root@localhost testmd5]# mdadm -D /dev/md5
/dev/md5:
        Version : 1.2
  Creation Time : Wed Aug 26 18:42:00 2015
     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 : Wed Aug 26 18:43:27 2015
          State : clean
 Active Devices : 2
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 43% complete

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 7c6efc4f:5f6e0b0d:f6e56836:3556ec3f
         Events : 7

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       4       8       19        2      spare rebuilding   /dev/sdb3

       3       8       33        -      spare   /dev/sdc1
5,格式化挂载。

[root@localhost testmd5]# mkfs.ext4 /dev/md5 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
657072 inodes, 2624512 blocks
131225 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8112 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost testmd5]# mkdir -pv /testmd5
[root@localhost testmd5]# mount -t ext4 /dev/md5 /testmd5/
[root@localhost testmd5]# mount |tail -1
/dev/md5 on /testmd5 type ext4 (rw)
[root@localhost /]# cd testmd5/
[root@localhost testmd5]# ls
lost+found
[root@localhost testmd5]# 

6,测试RAID冗余

[root@localhost testmd5]# /bin/cp -fr /etc /testmd5/
[root@localhost testmd5]# du -sh /testmd5/
38M /testmd5/

[root@localhost testmd5]# mdadm /dev/md5 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md5
[root@localhost testmd5]# mdadm -D /dev/md5
/dev/md5:
        Version : 1.2
  Creation Time : Wed Aug 26 18:42:00 2015
     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 : Wed Aug 26 18:55:41 2015
          State : clean, degraded, recovering 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 23% complete

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : 7c6efc4f:5f6e0b0d:f6e56836:3556ec3f
         Events : 23

    Number   Major   Minor   RaidDevice State
       3       8       33        0      spare rebuilding   /dev/sdc1
       1       8       18        1      active sync   /dev/sdb2
       4       8       19        2      active sync   /dev/sdb3

       0       8       17        -      faulty   /dev/sdb1
[root@localhost testmd5]# 

7,观察md的状态

[root@localhost ~]# watch -n 3 "cat /proc/mdstat"

8,再指定一块损坏,让其工作在降级模式。

注意:级别仅代表磁盘组织方式不同,没有上下之分。


本文出自 “学生—田涛” 博客,请务必保留此出处http://tiantao.blog.51cto.com/10627002/1694245

linux软RAID

标签:raid

原文地址:http://tiantao.blog.51cto.com/10627002/1694245

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!