软件RAID的实现

  1. 软件RAID的实现
  2. 内核模块:md
  3. 解释:Multi Device多设备
  4. 查看装载的模块:lsmod-->RAID是md的子模块
  5. 命令:mdadm
  6. 用户空间命令
  7. 它是RAID的管理工具
  8. 真正RAID的实现靠的是内核模块md
  9. 作用:将任何块设备做成RAID
  10. mdadm是模式化的命令:
    创建模式:-C
    专用选项:
    -l:级别
    -n:设备个数
    -a{yes|no}:是否自动为其创建设备文件
    -c:指定数据块(CHUNK)的大小,2^n,默认是CentOS6.x--512K。
    -x:指定空闲盘的个数(注意:-n和-x后面跟数字的个数要和后面的磁盘【/dev/sdb /dev/sdc /dev/sdd】的个数一致)
     
    注意:软RAID在每次生成一个CHUNK时候都会计算相对应的磁盘块,这样磁盘性能会下降(针对RAID 0和RAID 5),所以在格式化时候为了提高RAID性能,我们可以指定条带的大小(-E stride),这个数就是CHUNK除以block的结果。
    管理模式:--add(-a)添加,--remove(-r)移走,--fail(-f)失败
    监控模式:-F
    增长模式:-G
    装配模式:-A
    查看RAID阵列的详细信息:
    -D或--detail
    mdadm -D /dev/mdb1 或 mdadm --detail /dev/mdb1
    停止阵列: 或 --stop
    案例:
    创建带区卷(条带卷)RAID-0卷
    -->创建分区(设置分区类型)
     
     
     
     
    -->创建RAID-0卷(模式化)
     
    -->查看模式化状况
     
    -->格式化
     
    -->挂载
     
    创建2G的RAID 1(制作镜像卷:添加2块磁盘,每个2G)
    实验过程:
    -->创建磁盘分区
     
     
    -->为分区设置分区类型
     
     

    -->创建RAID 0卷


    -->格式化镜像卷
     
    -->挂载
     
    -->验证
     
    注意:有时候在创建好md#编号后,重启系统会发现编号变了,解决方案。
     
    备注:将模式化的源信息写入到模式化的配置文件中(重启再查看)。
    验证:
     
    测试:
  11. 测试镜像卷的功能
    -->在该镜像卷的挂载目录下存些文件(以备测试之用)
    -->查看镜像卷的相关信息
     
    -->破坏/dev/sdb2
     
    备注:显示/dev/sdb2被模拟损坏。
    -->查看/RAID1下的文件
    结果:文件信息完全。
    验证:镜像卷的备份储存功能。
     
    -->删除损坏的磁盘,再次查看镜像卷
     
    备注:将损坏的磁盘删除。
     
     
    备注:再次查看/dev/sdb2没有了。
    -->如何修复呢?(实验前先配置实验环境)
     
     
     
     
     
     
     
    -->添加一块磁盘,将该磁盘划分出与移除的分区大小相同的分区。
     
     
    备注:使用扇区来确定空间更为准确。
    -->mdadm -a为镜像分区添加磁盘
     
    在这个过程中,如果要复制的数据比较大,同步时间会多些。其间可以通过watch命令查看同步的过程(需要打开另一终端)。
    watch:周期性的执行指定命令,并以全屏方式显示结果。
    参数:-n #:指定周期的长度,单位为秒,默认为2秒。
     
     
  12. 停止RAID 1列阵
     
     
    备注:这样就彻底删除了。
  13. 重新装载RAID 1阵列
     
     
    -->查看模拟化状态
     
  14. 实际工作中很难记清每块磁盘,所以还有另一种办法很好用。
     
    -->将显示的信息定向到配置文件,当再次装载时就不用再指定具体磁盘了。
     
    -->停止RAID 1
     
    -->激活RAID 1
     
    创建4G的RAID 5(3个磁盘,每个2G)
    实验全准备:将上一个实验中的/dev/sdc1和/dev/sdd1从/dev/md1中移除。
     
     
     
    实验过程:
    fdisk /dev/sdb(/dev/sdc,/dev/sdd)
    操作过程:n->p->l->t(fd)->p->w
     
     
     
     
     
    -->格式化
     
     
    优化:
     
    -->添加备用分区
    mdadm -a /dev/md2 /dev/sdh1
    备注:/dev/sdh1是/dev/md2的备份分区。