rgar12 发表于 2015-5-25 08:56:17

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 id为fd(16进制)格式是Linuxraid auto。

三:手动创建软件RAID,相关命令
#mdadm :可以把任何块设备做成软件RAID
这个命令是一个模式化的命令,就像vim但没那么复杂
创建模式:-C | --create
-C 专用的选项
    -l :级别
      -n # :设备个数
    -a {yes}:自动为其创建设备文件
      -c | --chunk大小,数据块大小,默认是64K(2^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{1,2}# 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[-Estride = # ] -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-x1/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-Estride=16 -b 4094/dev/m0

页: [1]
查看完整版本: RAID存储和软RAID案例