码迷,mamicode.com
首页 > 其他好文 > 详细

RAID存储和软RAID案例

时间:2015-05-24 19:00:17      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:raid存储   软raid应用   

那么这些做好的存储系统是怎么运作的

那就要分为硬件RAID和软件RAID

硬件RAID

有专门的硬件,就是厂商已经帮我们做好了存储系统,不过在用之前要在BIOS配置好

(1)       一般来说内核都能识别得到,识别后为,例如第一个存储系统 /dev/sda第二个存储系统为/dev/sdb ,当然内核是不知道存储系统里面有多少个硬盘,它只认为那是一个大的硬盘

(2)       但是如果内核识别不了的话,就要装驱动程序,驱动程序是厂商发行的时候回配给的

一般来说做好的存储系统,都有自己自带的RAID芯片,有自己的小CPU ,小内存,小电池,当大CPU发出数据读取的时候,就把任务交到小CPU ,它能完成剩下的百分之90的工作,那么有人问了,那如果数据存储在小内存里,然后大的CPU认为它已经存完数据了,那不就是会发生数据丢失吗?所以存储系统会自备一个小的电池,平时会自己冲电,当断电了,会提供几分钟的时间保持小内存的数据,但是如果电耗完了,那么数据就会丢失

 

然后问题来了,存储系统是怎么与主板CPU交互的,是通过控制器(controller集成在主板的)或者适配器(Adapter独立的卡),通过端口把两者线路连接

 

软件RAID

利用软件技术把几个块设备模拟成存储系统(大硬盘),不过前提是内核能支持RAID技术,就是说内核里有md(muticdisks)模块,模拟出各假的RAID设备,内核会把它认识为 /dev/md#(0,1,2..)0:第一个逻辑设备,1:第二个逻辑设备,对进程来说是RAID设备,不过内核还是识别到里面的硬盘,比如说CPU对逻辑RAID 发出读写的请求,那么到时就会通知内核中的md 模块,它就会自动地把请求固定在逻辑RAID的哪个硬盘上,然后在这个硬盘里读写数据,返回给逻辑里的RAID,返回给CPU;所以说存储系统的性能取决于CPU的性能,一般来说并不建议在生产系统中使用软件RAID ,不然会是繁忙的CPU更加的繁忙。如果是配置软RAID必须在划分分区时指定分区system idfd16进制)格式是Linuxraid auto

 

三:手动创建软件RAID,相关命令

#mdadm :可以把任何块设备做成软件RAID

这个命令是一个模式化的命令,就像vim但没那么复杂

创建模式:-C | --create

-C 专用的选项

      -l :级别

      -n # :设备个数

      -a  {yes}:自动为其创建设备文件

      -c | --chunk大小,数据块大小,默认是64K2^nK

      -x #:指定空闲盘的个数

 

管理模式:-a | --add   -r |--remove   -f |--fail

监控模式:-F | --follow

增长模式:-G |- -grow

装配模式:-A |--assemble

查看RAID设备的信息:-D | --detail 

停止RAID设备的阵列:mdadm  --stop | -S  /dev/md#

将当前配置的RAID 信息保存至配置文件,以便以后开机自动装配

#mdadm  --scan  -D > /etc/mdadm

 

 三 案例:创建RAID 0设备,总容量为1G,所以需要两个512M的块设备组成

(1)       用虚拟机添加一块SCSI的硬盘

(2)       创建两个分区,/dev/sdb1 , /dev/sdb2每个分区大小为512M注意创建分区时要指定为fd 类型的系统分区

#fdisk  /dev/sdb

#fdisk -l /dev/sdb

#partprobe :手动让内核读取一下新创建分区的信息

#cat /proc/partitiotns  查看分区表

(3)       创建一个RAID0 逻辑软设备 /dev/md0 (名字随便起 0 1 ,。。),级别为0,设备个数为3,空闲盘个数为1,不指定chunk大小

#mdadm  -C  /dev/md0  -l 0  -n 2   /dev/sdb{12}

# cat  /proc/mdstat :查看创建设备的建立信息

ps:这里可以用watch 命令,周期性的执行指定命令,并以全屏显示结果,指定周期长度单位为s ,默认为2

       格式:#watch -n #  ‘COMMAND

比如 #watch  -n 3  ‘cat /proc/mdstat’

(4)       查看刚建立的RAID设备的详细信息

#mdadm -D  /dev/md0

(5)         格式化RAID0 设备

#mke2fs -j  [-E  stride = # ] -b 4096  /dev/md0

#fdisk  -l   

ps:中括号里的是条带化数目,如果分区时指定的话对性能上来说会有提高,

条带化数=chunk / blocksize

(6)         挂载到 /mnt 目录

   #mount /dev/md0  /mnt

#mount

#cd  /mnt

#ls 

  卸载

     umont /mnt

 

(7)         创建RAID 1 ,两个块设备为 /dev/sdb3  /dev/sdb4/devsdb5/dev/sdb6

#mdadm  -C  /dev/md1 -l 1 -n 3  -x  1  /dev/sdb{3,45}

(8)         模拟阵列1中磁盘3坏掉

  #mdadm  /dev/md1   -f  /dev/sdb1

  #madam -D  /dev/md1

(9)         模拟阵列1中的磁盘3移除

#mdadm  /dev/md1  -r  /dev/sdb1

#mdadm  -D  /dev/md1

(10)      模拟增加新盘替换 /dev/sdb6

#mdadm /dev/md1  -a  /dev/sdb6

(11)      不想用时,停止阵列

#mdadm  -S  /dev/md0 如果想彻底不用,那么删除文件即可rm  -rf  /dev/md0

(12)      重新启用

  #mdadm -A   /dev/md0  /dev/sdb1 /dev/sdb2

13)以后自动配置

#mdadm -D --scan  > /etc/mdadm.conf

有冗余的级别才支持空闲盘,-x支持空闲盘选项

14)指定条带大小

 #mke2fs -j  -E  stride=16 -b 4094  /dev/m0

 

 


本文出自 “sunshine” 博客,请务必保留此出处http://1187695923.blog.51cto.com/6427672/1654734

RAID存储和软RAID案例

标签:raid存储   软raid应用   

原文地址:http://1187695923.blog.51cto.com/6427672/1654734

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