• RAID


    RAID里面有三大关键技术:镜像、校验、条带
    我们说:RAID可以预防数据丢失,但是它并不能完全保证你的数据不会丢失,所以大家使用RADI的同时还是注意备份重要的数据

    RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);
    在企业中用的最多的是:raid1、raid10和raid5。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。
    硬RAID:需要RAID卡,我们的磁盘是接在RAID卡的,由它统一管理和控制。数据也由它来进行分配和维护;它有自己的cpu,处理速度快。
    管理软raid工具:mdadm,mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令。

    RAID出现的原因

    RAID基本思想:把好几块便宜的硬盘通过一定组合方式把它组合起来,成为一个新的硬盘阵列组,从而使它能够达到高性能硬盘的要求
    RAID有三个关键技术:
    镜像:提供了数据的安全性;
    条带(块大小也可以说是条带的粒度),它的存在的就是为了提高I/O,提供了数据并发性
    数据的校验:提供了数据的安全


    级别 说明 最低磁盘数量 空间利用率 各自的优缺点

    RAID0 数据条带化 2 +100% 读写速度快,不容错
    RAID1 数据镜像化 2 50% 读写速度一般,容错
    RAID5 带奇偶校验的条带集 3+ (n-1)/n 读写速度快,容错,允许坏一块盘
    RAID6 带奇偶校验的条带集,双校验 4+ (n-2)/n 读写快,容错,允许坏两块盘
    RAID10 RAID1的安全+RAID0的高速 4 50% 读写速度快,容错
    RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速度快,容错
    RAID60 RAID5的安全+RAID0的高速 8 (n-4)/n 读写速度快,容错


    -C或--creat 建立一个新阵列
    -r 移除设备
    -A 激活磁盘阵列
    -l或--level 设定磁盘阵列的级别
    -D或--detail 打印阵列设备的详细信息
    -n或--raid-devices 指定阵列成员(分区/磁盘)的数量
    -s或--scan 扫描配置文件或/proc/mdstat得到阵列缺失信息
    -x或--spare-devicds 指定阵列中备用盘的数量
    -f 将设备状态定为故障
    -c或--chunk 设定阵列的块chunk大小 ,单位为KB
    -a或--add 添加设备到阵列
    -G或--grow 改变阵列大小或形态
    -v或--verbose 显示详细信息
    -S 停止阵列


    RAID硬盘失效处理

    一般两种处理方法:热备和热插拔
    热备:HotSpare
    q 定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性
    q 全局式:备用硬盘为系统中所有的冗余RAID组共享
    q 专用式:备用硬盘为系统中某一组冗余RAID组专用
    如下图所示:是一个全局热备的示例,该热备盘由系统中两个RAID组共享,可自动顶替任何一个RAID中的一个失效硬盘


    热插拔:HotSwap
    定义:在不影响系统正常运转的情况下,用正常的物理硬盘替换RAID系统中失效硬盘
    关键在于热插拔时电子器件的保护机制

    (这个是创建RAID0的命令,如果要创建其他的RAID级别,把-l后面的0改为要改的级别数就OK!)
    创建RAID:mdadm -C -v /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev/sdc
    -C是创建一个新的RAID。后面的/dev/md0中0是名字、如果要加别的名字的话就是/dev/md/名字,中间的md一定不能去,不然会报错让你添加进去
    -v是显示详细信息
    -a是自动创建对应的设备。后面的也是表示创建,如果是no就是不创建。
    -l是创建RAID的级别,这里的0表示创建RAID0
    -n是创建RAID指定的磁盘数量,2是磁盘数量(或分区数量),后面的/dev/sdb /dev/sdc就是两块被指定的磁盘,这个也可以两个分区。

    创建完成之后的分区就和磁盘分区一样fdisk /dev/md0
    格式化是mkfs.ext3 /dev/md0p1 p1表示第一块分区
    挂载:mount /dev/md0p1 /mnt


    watch -n 1 cat /proc/mdstat 每隔一秒看一下/proc/mdstat文件
    mdadm -r /dev/md1 /dev/sdb1 移除dev/md1中的/dev/sdb1设备
    mdadm -a /dev/md1 /dev/sdb7 添加一块热备盘,说白了就是扩展
    mdadm -D /dev/md1 查看详细信息
    cat/proc/mdstat 查看阵列状态
    mdadm -G /dev/md5 -n 4 –c 32 阵列大小的改变
    阵列只有在正常状态下,才能扩容,降级及重构时不允许扩容。对于raid5来说,只能增加成员盘,不能减少。
    而对于raid1来说,可以增加成员盘,也可以减少。但要减少成员盘时,首先要将盘faulty和removed掉。


    删除RAID
    umount /dev/md1 /raid1 #如果你已经挂载raid,就先卸载。

    此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md0 然后再用mdadm -D /dev/md0查看raid中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md0

    删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sdc

    rm -rf /etc/mdadm.conf #删除raid配置文件

  • 相关阅读:
    秋叶收藏集, LC个人竞赛题目解析
    字典树,前缀树的模板!秒懂
    106. 从中序与后序遍历序列构造二叉树
    c++ enum 的枚举
    c++变量的声明和定义
    leetcode 39 组合总数(回溯)
    python lambda表达式应用
    python解压可迭代对象赋值给多个变量
    python之解压序列并赋值给变量
    Python循环列表的方法
  • 原文地址:https://www.cnblogs.com/Sakuyainory/p/8284250.html
Copyright © 2020-2023  润新知