设为首页 收藏本站
查看: 1480|回复: 0

[经验分享] RAID存储和软RAID案例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-25 08:56:17 | 显示全部楼层 |阅读模式
二那么这些做好的存储系统是怎么运作的
那就要分为硬件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  [-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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-70301-1-1.html 上篇帖子: Openfiler 一个廉价的网络存储解决方案 下篇帖子: ubuntu下fossolgy安装步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表