zoukankan      html  css  js  c++  java
  • raid概述与CentOS7.4中raid5的搭建与测试

     

     

     前言

    一、raid的定义与作用

    raid(独立冗余磁盘阵列)。raid技术通过把多个硬盘设备组合成一个容量更大的,安全性更好的磁盘阵列。把数据切割成许多区段后分别放在不同的物理磁盘上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理设备上,从而起到了非常好的数据冗余备份效果。缺点就是磁盘利用率低。

    二、raid的分类

    raid的分类目前来说至少有几十种,这里简单介绍一下最常见的四种,raid0,raid1,raid10,raid5。

    1、RAID 0

    RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。

    2、RAID 1

    RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%。

    3、RAID0+1

    RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。也有一种叫法叫raid10.

    4、RAID5:分布式奇偶校验的独立磁盘结构
    它的奇偶校验码存在于所有磁盘上。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

    总结:raid0大幅度提升了设备的读写性能,但不具备容错能力。raid1虽然十分注重数据安全,但磁盘利用率太低。raid5就是raid0和raid5的一种折中,既提升了磁盘读写能力,又有一定的容错能力,成本也低。raid10就是raid0和raid1的组合,大幅度提升读写能力,较强的容错能力,成本也较高。一般中小企业用raid5,大企业采用raid10。

    这里主要介绍raid5的搭建与测试。主要内容:一、添加硬盘。二、对磁盘进行初始化设置。三、搭建raid5。四、raid5的测试。五、raid5的维护。六、mdadm命令总结。

     

    Raid5的搭建

    一、 首先添加四块硬盘

     

    二、reboot重启并对磁盘进行初始化设置

     

    reboot重启

     

    三、搭建raid5

    1,yum install -y mdadm  //安装madam (madam是Linux下的raid管理工具)

     

    2,mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1  //用sdb1,sdc1,sdd1,sde1四块磁盘其中3块创建raid5,名称为md0,另外一块作为热备份。

    madam参数说明

    -C  --create   创建阵列;

    -a  --auto    同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;

    -l   --level   阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

    -n     --raid-devices    阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;

    3,查看raid5状态

    cat /proc/mdstat

    mdadm -D /dev/md0

     

    4,添加raid5到raid配置文件并做修改

    echo 'DEVICE /dev/sd[b-e]1' >>/etc/mdadm.conf

    mdadm -Ds >>/etc/mdadm.conf

     

    5,格式化磁盘阵列

    mkfs.xfs /dev/md0

     

    6,建立挂载点并挂载

    mkdir /raid5

    mount /dev/md0 /raid5/

     

    7,将挂载写入开机启动项

    vi /etc/fstab

     

    四,测试raid5

    1, 建立文件a.txt 和 b.txt

     

    2, 模拟其中一块磁盘坏道,我选择让sdb1损坏,然后查看raid阵列信息情况,发现热备份磁盘sde1自动替换已损坏了的sdb1。并且资料无损失

     

    3, 移除已损坏的磁盘,添加一块新硬盘作为热备份盘,并查看数据情况

    mdadm /dev/md0 -r /dev/sdb1

     

    注意:在实际中sdb1已经是另一块完好的硬盘了。不是说之前损坏的那块移除再添加就好了。

     

    五,维护raid5

    1, 向raid5中添加存储硬盘

    mdadm /dev/md0 -a /dev/sdf1

     

    由于默认是添加成热备盘,得把热备盘改为活动盘

    mdadm /dev/md0 -G -n4  //-G改变raid中的活动盘的数量,一般和-n连用。-n用来指定raid中活动盘的数量。最好保证要有足够的热备盘添加。

     

    查看状态,添加完成

     

    2,查看文件系统发现总容量未变

     

    此时需要对文件系统扩容

    resize2fs /dev/md0  //resizefx适用于ext3,ext4等文件系统不适用于xfs文件系统

     

    xfs_growfs /dev/md0  //xfs_growfs对xfs文件系统进行扩容

     

    关于mdadm的相关参数汇总

    -C  --create   创建阵列;

    -a  --auto    同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建;

    -l   --level   阵列模式,支持的阵列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

    -n     --raid-devices    阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目;

    -x    热备盘数目

    实例:mdadm -C /dev/md0 -ayes -l5 -n3 -x1 /dev/sd[b-e]1  //用sdb1,sdc1,sdd1,sde1四块磁盘其中3块创建raid5,名称为md0,另外一块作为热备份。

    -D  --detail  查看raid设备的详细信息

    -f  使一块raid磁盘故障

    -a  增加一块raid磁盘

    -r  移除一块故障的raid磁盘

    -s  --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息

    -S  停止raid磁盘阵列

    实例:

    mdadm -Ds >>/etc/mdadm.conf

    mdadm /dev/md0 -f /dev/sdb1

    mdadm /dev/md0 -r /dev/sdb1

    mdadm /dev/md0 -a /dev/sdf1

    mdadm /dev/md0 -G -n4  //-G改变raid中的活动盘的数量,一般和-n连用。-n用来指定raid中活动盘的数量。最好保证要有足够的热备盘添加。

    参考阅读 http://www.cnblogs.com/mchina/p/linux-centos-disk-array-software_raid.html

     

  • 相关阅读:
    小程序开发点滴积累
    使用openssl在windows 10下本地xampp配置https开发环境
    linux networking
    CGI,FastCGI,PHP-FPM,PHP-CLI,modPHP
    centos 7.2 64位 docker安装lamp环境
    反模拟类游戏外挂 转
    鼠标 hook 源码 C#版
    C# 鼠标连击源码 转
    win32 API 在win10 64位失效
    利用浏览器外部协议(URL Procotol)打开本地exe文件
  • 原文地址:https://www.cnblogs.com/tzlsj/p/9118694.html
Copyright © 2011-2022 走看看