首页 > 代码库 > linux学习笔记十(Raid基本知识)

linux学习笔记十(Raid基本知识)

前言:磁盘管理对于一个运维工程师来说是很重要的。如何管理好数据,那么离不开Raid。

内容:

1.常用的Raid的类型:

  • Raid0 (条带)                                              

    wKioL1Q3uY-j5MMgAACbfrJJtok640.jpg

  • Raid1 (镜像)                                                 

    wKioL1Q3ufyiOkzaAACQkt6mi1k438.jpg

  • Raid5 (奇偶校验)                                                     

    wKioL1Q3ujXATegRAACwzkxBu1E313.jpg

  • Raid1 + Raid0(先1后0)                                                                     

    wKioL1Q3unfgz5DiAADuNR8V_GQ159.jpg

  • Raid0+Raid1(先0后1)                                                                                       

    wKioL1Q3us7zDgV7AADkgcpAuw0861.jpg

  • Raid5+Raid0   同理

  • Raid0+Raid5   同上

  • Jbod 也是常用的的,这个可以通过增加硬盘来扩容。

    总结:

    Raid0
    性能提升:读,写
    冗余能力:无
    空间利用率:nS
    至少2块盘
    Raid1
    性能提升:读性能提升,写性能下降
    冗余能力:有
    空间利用率:1/2
    至少2块盘
    Raid5
    性能提升:读,写提升
    冗余能力:有
    空间利用率:(n-1)/n
    至少需要3块盘
    Raid1+Raid0
    性能提升:读,写提升
    冗余能力:有
    空间利用率:1/2
    至少需要4块盘
    Raid0+Raid1
    性能提升:读,写提升
    冗余能力:有
    空间利用率:1/2
    至少需要4块盘
    Raid5+Raid0
    性能提升:读,写提升
    冗余能力:有
    空间利用率:(n-2)/n
    至少需要6块盘
    jbod性能提升:无
    冗余能力:无
    空间利用率:100%
    至少需要2块


2.实现Raid 

    Raid可以通过软件模拟的方式进行,这里乜有环境来做硬件的Raid。

    逻辑Raid : /dev/dm# #代表着编号

    一些软Raid的软件使用:

                md: raid模块

  •   mdadm(md管理器): 将任何块设备做成RAID

                模式化的命令:

                 创建模式

                 -C 

                 专用选项:

                 -l: 级别

                 -n #: 设备个数

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

                 -c: CHUNK大小(数据块大小), 2^n,默认为64K

                 -x #: 指定空闲盘个数(坏掉一块盘之后就能顶                                                         上)

                 管理模式

                 --add, --remove, --fail

                 mdadm /dev/md# --fail /dev/sda7 

                 监控模式

                 -F

                 增长模式

                 -G

                 装配模式

                 -A

                

                查看RAID阵列的详细信息

                mdadm -D /dev/md#

                 --detail

                

                停止阵列:

                 mdadm -S /dev/md#

                 --stop

练习:

      创建一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;


创建一个2G大小的RAID0可以是4个 512MB 或者是2个1G

创建一个2G大小的RAID1可以是2个2G

创建一个2G大小的RAID5 可以是3个1G



  • watch: 周期性地执行指定命令,并以全屏方式显示结果

-n #:指定周期长度,单位为秒,默认为2

        格式: watch -n # ‘COMMAND‘(双引号也行)

        例如:watch "cat /proc/mdstat"

  • 将当前RAID信息保存至配置文件,以便以后进行装配:

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

        mdamd -A /dev/md# 就能够直接装配起来

注意:

  1. 如果一个chunk是64k 一个磁盘块是4K (4096)那么也就是说:一个chunk是16个磁盘块。

  2. mke2fs有-E的stride功能,能够调整chunk除以Block大小的倍数,这样可以优化软raid

3.rm -f /dev/md# 之前应该mdadm -S /dev/md#(停止软Raid)。

3具体的流程:(以Raid0为例)

     1.创建/dev/sda{5,6,7},并且类型都是raid类型

     2.partporbe /dev/sda(更新分区信息)

     3.cat /proc/partitions(查看分区)

     4.mdadm -C /dev/md0 -n 2 -l 0 -x 1 -a yes /dev/sda{5,6,7}

     5.mdadm -D /dev/md0(可以查看运行情况)



本文出自 “技术至上” 博客,谢绝转载!

linux学习笔记十(Raid基本知识)