Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197645
  • 博文数量: 35
  • 博客积分: 656
  • 博客等级: 上士
  • 技术积分: 543
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-25 10:22
文章分类

全部博文(35)

文章存档

2018年(3)

2015年(1)

2013年(8)

2012年(12)

2011年(11)

我的朋友

分类: LINUX

2011-08-25 10:31:15

高级soft RAID应用:
    可使用物理分区:/dev/sdb1   /dev/sdb2    /dev/sdb3    /dev/sdb5 .....
 
RAID0
    创建:
    #mdadm  --create  /dev/md0  --level=0  --raid-devices=2  --chunk=64  /dev/sdb[12]
    最少两块盘
   
    #mdadm   --create  /dev/md0  --level=0  --raid-devices=3  --chunk=63  /dev/sdb[123]
    --chunk 表示每个磁盘每次分配的数据块大小,单位k
    #mkfs.ext3  -b 4096 -E stride=16  /dev/md0
    -b  制定块大小
    -E  stride  制定每次下操作的步进值,就是一次写多少个块
 
    #mdadm  --detail  /dev/md0
    查看RAID设备的状态
 
RAID1:
    创建:
    #mdadm  --create  /dev/md0  --level=1  --raid-devices=2  /dev/sdb[12]
 
    #mkfs.ext3  -b 1024 -E stride=16 /dev/md0
 
    #mdadm  --create  /dev/md0  --level=1  --raid-devices=3  /dev/sdb[123]
    创建多份冗余
RAID5:
   创建:
   #mdadm  --create /dev/md0  --level=5 --raid-devices=3 --chunk=64 /dev/sdb[123] --spare-disks=1 /dev/sdb5
 
创建RAID设备的配置文件:
    #mdadm  -Ds > /etc/mdadm.conf

    #echo  "device /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5" >> /etc/mdadm.conf

    //将raid设备信息,和raid设备包含的基本磁盘和分区信息放到配置文件里

制定布局算法(Layout Algorithms)
  # mdadm --create /dev/md0  --level=5  --raid-devices=4 --chunk=64 /dev/sdb[1235] --spare-disks=1 /dev/sdb6  --layout=la
  --layout  可以制定四种布局算法la  ra  ls  rs  默认ls
  具体表示
    Left Asymmetric                                Right  Asymmetric
sdb1   sdb2   sdb3   sdb5                     sdb1   sdb2   sdb3   sdb5
D0      D1     D2     P                        P      D0     D1     D2
D3      D4     P      D5                       D3     P      D4     D5
D6      P      D7     D8                       D6     D7     P      D8
P      D9      D10    D11                      D9     D10    D11    P
D12    D13     D14    P                        P      D12    D13    D14
 
    Left  Symmetric                                Right  Symmetric
sdb1   sdb2   sdb3    sdb5                    sdb1    sdb2   sdb3   sdb5
D0     D1     D2      P                       P       D0     D1      D2
D4     D5     P       D3                      D5      P      D3      D4
D8     P      D6      D7                      D7      D8     P       D6
P      D9     D10     D11                     D9      D10    D11     P
D12    D13    D14     P                       P       D12    D13     D14
 
RAID5 Data  Updates Overhead
      每一次数据修改,需要4次I/O操作,对于有频繁修改操作的存储,效率不高
      1.从磁盘读取需要修改的数据
      2.更新数据,写回磁盘,但是此时校验不对了
      3.再次读取所有的磁盘数据,重新计算校验值
      4.数据和校验值写回
 
RAID6:
    提供两块磁盘校验,提高容错能力,最少需要4块盘
    创建:
     #mdadm  --create /dev/md0  --level=6  --raid-devices=4 /dev/sdb[1235]
 
 
RAID10:最少4块盘
   创建:
   #mdadm  --create  /dev/md0  --level=10  --raid-devices=4  /dev/sdb[1235]
 
   #mdadm  --create  /dev/md0   --level=10  --raid-devices=5  /dev/sdb[12356]
 
   相当于,先创建两个RAID1设备,然后,再使用RAID1设备,创建一个RAID0设备
 
使用watch命令查看创建过程:
打开一个终端1:
   #watch  -n  .5  'cat  /proc/mdstat'
 
然后在另外一个终端2:
   #mdadm --create /dev/md0  --level=5 --raid-devices=3  /dev/sdb[123]
可以看到RAID创建过程
 
SYSFS:
    #cd  /sys/block/md0/md
    有相关raid设备的参数状态
 
Event Notification:
    #vim  /etc/mdadm.conf
    MAILADDR  
    #当你的RAID设备出现问题,会给你发送一封邮件
    PROGRAM  /usr/sbin/my-RAID-script
    #还可以执行一段RAID相关程序
 
需要启动mdmonitor服务:
    #/etc/init.d/mdmonitor start;chkcongif  mdmonitor on
测试:
   #mdadm  --monitor  --scan  --oneshot  --test  /dev/md0
   或者:
   #mdadm  -Fslt
 
   #mail
   然后,查看邮件。可以看到相关信息。就是/proc/mdstat里面的信息。
 
   临时设定:
   #mdadm  --monitor --scan --mail
   重启之后,不再生效。
 
RAID扩容:
   假设现在有一个RAID5设备,/dev/md0,有三块磁盘组成,然后,你想通过增加磁盘的方式,增加RAID设备的容量
   #mdadm  --add  /dev/md0   /dev/sdb5
 
   #mdadm  --grow /dev/md0  --raid-devices=4
 
   #watch -n 1  'cat  /proc/mdstat'
 
   #resize2fs /dev/md0
要非常小心,扩容前,最好先备份数据。
 
   最好这样做:
   1.记录RAID设备信息,由哪些物理磁盘组成,比如:/dev/md0 (/dev/sdb1  /dev/sdb2   /dev/sdb3)
   2.#mdadm  --grow /dev/md0  --raid-devices=4  --backup-file=/tmp/md0.bu
   3.如果成功,那么文件/tmp/md0.bu将被删除;
   4.如果失败,可以这样修复:
     #mdadm --assemble  /dev/md0  --backup-file=/tmp/md0.bu  /dev/sdb[123]
 
共享热备盘:
   假设有RAID设备/dev/md0,有热备盘/dev/sdb7;现在有两外一个RAID设备没有热备盘,则可实现两个RAID设备共享一个热备盘.
   /dev/md0  (/dev/sdb1   dev/sdb2   dev/sdb7) level=1
   /dev/md1  (/dev/sdb5  /dev/sdb6)  level=1
   启动mdmonitor服务
   #mdadm -Ds >> /etc/mdadm.conf
   #vim /etc/mdadm.conf
   ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 spares=1 UUID=453699fc:55ef7a49:8a9e3eea:f6befb18 auto=yes spare-group=share
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=edb9946f:09784542:2581411e:8a6ba6f4 auto=yes spare-group=share
 
   #mdadm --manage /dev/md1 -f /dev/sdb5 -f /dev/sdb5
则md0的热备盘可以漂移到md1上。
 
给RAID Array改名:
   例如,将RAID设备/dev/md1  该为 /dev/md2
   /dev/md1  (/dev/sdb5  /dev/sdb6)
   #mdadm  -S /dev/md1
   #mdadm  -A /dev/md2  --super-minor=1 --update=super-minor /dev/sdb[56]
 
删除raid设备:
    删除整个RAID:
    mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb
    mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc
    mdadm /dev/md0 --fail /dev/sde --remove /dev/sde
    mdadm /dev/md0 --fail /dev/sdf --remove /dev/sdf
    mdadm --stop /dev/md0
    mdadm --misc --zero-superblock /dev/sdb
    mdadm --misc --zero-superblock /dev/sdc
    mdadm --misc --zero-superblock /dev/sde
    mdadm --misc --zero-superblock /dev/sdf
   即: 先删除RAID中的所有设备,然后停止该RAID即可

阅读(1676) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~