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

在linux中实现软RAID

时间:2016-07-14 19:45:33      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:在linux中实现软raid

       前言 

        在生产环境中不推荐大家使用软RAID,写这篇文章的主要目的是希望大家更好的了解RAID的工作原理:

        软RAID就是在系统层面实现RAID功能了,数据处理主要依赖cpu来完成,没有第三方控制处理器和I/O芯片

        在linux中是使用内置的md模块,模拟RAID卡,实现软RAID。在内核中有md模块完成将多个物理设备组合成一个逻辑设备

        实现方式:

        因为linux支持将块设备制作成RAID,可以使用不同磁盘的不同分区组件RAID;但是分区大小必须一样;

        一、首先创建几个大小相同的分区;模式改为fd(linux raid autodetect)

                fdisk  /dev/sdb  > n >e>+1G>t>fd

                我这里使用的扩展分区做的

                做完后w保存

            技术分享

                partprobe  /dev/sdb    让系统内核从新加载磁盘信息

                cat /proc/partirions    查看系统是别的磁盘信息

                确认有我们新添加的这几个分区

        二、创建md设备文件

                使用命令:mdadm   -C  /dev/md0  -a  yes  -l  0  -n  2  /dev/sdb{5,6}

                       我们先模拟RAID 0 所有只需要2个分区就够了

                        md0  是一个md组,编号0

                        -a  yes  自动创建

                        -l  0      RAID级别为0

                        -   n      这个md0组加入几块硬盘,后面跟上分区编号

                然后使用cat  /proc/mdstat  查看一下创建好的md0信息

                          

                        Personalities : [raid0]      RAID级别0

                        md0 : active raid0 sdb6[1] sdb5[0]    md0  活的raid0  有哪些设备

                        2119680 blocks super 1.2 512k chunks   chunks大小,chunks就是条带后每次分别写                                                                                                入每个硬盘的数据块大小

                          unused devices: <none>

                     创建RAID前硬盘分区一定不要格式话

             三、格式化和挂载

                    使用命令:mkfs  -t   etx4  /dev/md0    格式化md0为etx文件系统

                                    mount   /dev/md0   /mnt       将md0挂载到mnt下

                                    使用mount查看下;没有问题就可以使用了

              四、 mdadm用户空间管理工具详解

                      创建模式:

                                     -C

                                   专用选项:

                                            -l:RAID级别

                                            -n:设备个数

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

                                            -c:指定chunk大小;默认64kb;一般是2^n

                                            -x:指定空闲盘个数;RAID阵列中哪个盘坏了可以自动加入阵列

                            例如:mdadm  -C  /dev/md0  -a yes -n 3 -c  128  /dev/sdb{5,6,7}

 

                    管理模式:       

                    -a:从阵列中添加一块硬盘;

                    -r:从阵列中删除一块硬盘;需要先-f 停用后才能删除

                    -f:模拟阵列中哪块硬盘损坏

                          mdadm  /dev/md1  -f  /dev/sdb7

                          模拟后需要删除再添加才能使用

 

                        停止删除阵列:      

                           mdadm  -S或者--stop   /dev/md#

                          然后如果 rm  /dev/md#  就会彻底删除此阵列

 

                         装配模式:

                       停止的RAID阵列可以装配回去;确定/dev/md#文件存在

                           mdadm  -A  /dev/md#  /dev/sdb#

    

                            查看RAID阵列信息

                               mdadm  -D 或者--detail   /dev/md#

                              mdadm  -D  --scan  显示每个RAID设备配置信息

                                            > etc/mdadm.conf 导入到md配置文件中,

                                           下次装配md#的时候就不用指定有哪些磁盘了

 

                实验:            

        

                需要装配一个4GRAID5;并且有一个空闲热备盘

                  分析:实现4G的RAID,需要三个2G的磁盘。再加一块2G的空闲盘

         1、首先需要42G的磁盘模式改为fd

         2、创建md5mdadm -C /dev/md5 -a yes -l5 -n3 /dev/sdb{5,6,7}

         3、使用mke2fs -j -E stride=16 -b 4096 /dev/md5 格式化优化性能

         4mount /dev/md5 /mnt  挂载后就可以使用了

         5mdadm  /dev/md5 -a /dev/sdb8  添加一块热备盘

         6mdadm  /dev/md5 -f /dev/sdb5  模拟一块硬盘有问题;查看热备盘能不能切换上

         7、如果上述成功;使用mdadm /dev/md5 -r /dev/sdb5 删除有问题的磁盘;然后再把sdb5添加如阵列;做为热备盘使用

 

                                

 

本文出自 “IT门外汉茶馆” 博客,谢绝转载!

在linux中实现软RAID

标签:在linux中实现软raid

原文地址:http://baoquan.blog.51cto.com/2143252/1826385

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