常见RAID总结

RAID浅析

目录索引

一、定义

二、特点

三、常用RAID级别

    

四、RAID实现方式

五、实际环境测试

一、定义:

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。

独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

二、特点:

        可以提高IO能力:

                磁盘并行读写

        可以提高耐用性:

                磁盘冗余来实现

        RAID实现的方式:

            硬RAID

                外接式磁盘阵列:通过扩展卡提供适配能力

                内接式RAID:主板集成RAID控制器

            Software RAID:

三、常用RAID级别:

        级别:level:多块磁盘组织在一起的工作方式有所不同

            RAID-0:条带卷,strip;把连续的数据分散到多个磁盘上存取;

                优点:读、写性能提升

                可用空间:N*min(s1,s2,…)

                缺点:无容错能力

                最少磁盘数:2,2+

                RAID 0.png

                

            

            RAID-1:镜像卷,mirror;

                特点:读性能提升,有冗余能力

                缺点:磁盘空间利用率低,写性能略有下降

                可用空间:1*min(s1,s2,…)

                最少次盘数:2,2+

                RAID 1.png

            RAID-5:

                优点:读、写性能提升

                可用空间:(N-1)*min(s1,s2,…)

                有容错能力:1块磁盘

                最少磁盘数:3,3+

                RAID 5.png

            RAID-6

                优点L:读、写性能提升

                可用空间:(N-2)*min(s1,s2,…)

                有容错能力:2块磁盘

                最少磁盘数:4,4+

                RAID 6.png

            RAID10:

                优点:读、写性能提升

                可用空间:N*min(s1,s2,…)/2

                有容错能力:每组镜像最多只能坏一块

                最少磁盘数:4,4+ 

                RAID 10.png 

            JBOD:Just a Bunch Disks

                功能:将多块磁盘的空间合并一个大的连续空间使用

                可用空间:sum(s1,s2,….)

四、RAID实现方式:

            相关命令:

            CentOS 6上的RAID的实现

                   结合内核中的md(multi devices)

                   mdadm工具:模式化的工具

                   命令的语法格式:madadm [mode] <raiddevice> [optiongs] <component-devices>

                          支持的RAID级别:LINEAE,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10

                          模式:

                              创建:-C

                              装配:-A

                              监控:-F

                              管理:-f, -r,-c

                              <raiddevice>:/dev/md#

                              <component-devices>:任意块设备

                              -C:创建模式

                                    -n #:使用#个快设备来创建此RAID

                                    -l #:指明要创建的RAID的级别

                                    -a {yes|no}:自动创建目标RAID设备的设备文件

                                    -c CHUNK_SIZE:指明块大小

                                    -x #:指明空闲盘的个数

                                    -D:显示raid的详细信息:mdadm -D /dev/md#

                                  管理模式:

                                    -f:标记制定磁盘为损坏

                                    -a:添加磁盘

                                    -r:移除磁盘

                        观察md的状态:

                            cat /proc/mdstat

                        停止md设备:

                            mdadm -S /dev/md#

                        watch命令

                            -n #:刷新间隔,单位是秒

                            watch -n# ‘COMMAND’

五、实际环境测试:

            实验利用4块盘配置RAID5,为此给虚拟机添加4块5G硬盘,测试环境如图所示:

            

                        实操环境.png

            实验步骤:

                    1、用#fdisk -l命令来确认可识别新添加硬盘,由下图可知:新增设备为/dev/sd[b,c,d,e]四块硬盘。

                             确认新加磁盘.png

                    2、用#rpm -qa|grep mdadm命令查看是否已安装mdadm软件,若无输出则证明该系统未安装相关软件,则使用#yum install madam进行安装。

                       如图所示,本系统已经安装相关软件。

                            确认安装mdadm软件.png

                    3、创建RAID5至少需要3块硬盘,所以本次实验中将/dev/sd[b,c,d]三块硬盘作为活动盘,剩下的一块硬盘/dev/sde作为热备盘。由于硬盘为

                       新添加硬盘,所以对四块硬盘进行分区并修改分区类型,命令为:fdisk /dev/sdb;fdisk /dev/sdc;fdisk /dev/sdd;fdisk /dev/sde,

                       分区时将分区类型id改成fd,操作完成后用命令#fdisk -l /dev/sd[b,c,d,e] 如图所示:

                            新磁盘分区完成.png

                    4、分区完成,开始创建RAID,命令:#mdadm -C /dev/md5 -n3 -l5 -ayes -x1 /dev/sd[b,c,d,e]1

                            创建RAID5.png

                    5、用#cat /proc/mdstat 查看刚刚创建的RAID5状态,以及用#mdadm -D /dev/md5查看所建RAID5的详细信息

                            查看RAID5创建状态.png

                            新建RAID5详细信息.png

                    6、将新建好的RAID5添加到RAID配置文件/etc/mdadm.conf文件中,命令为:

                        #echo DEVICE /dev/sd[b,c,d,e]1 >> /etc/mdadm.conf

                        #mdadm -Ds >> /etc/mdadm.conf

                       然后,用cat命令查看配置文件信息

                                RAID配置文件信息.png

                    7、对新建好的磁盘阵列进行格式化,命令为#mkfs.ext4 /dev/md5或#mkfs -t ext4 /dev/md5

                        磁盘阵列格式化.png

                    8、在/下建立名为/testraid5的挂载点,并将其挂载,命令:#mkdir /testraid5;#mount /dev/md5 /testraid5

                        挂载.png

                    9、挂载完成后,为了下次开机还能正常使用我们的RAID设备,需要将挂载的信息写入/etc/fstab 文件中

                                                编辑配置文件.png

                                        10、至此,本次创建RAID5实验结束。

                        


原创文章,作者:Net18-天津-康康,如若转载,请注明出处:http://www.178linux.com/14666

(0)
Net18-天津-康康Net18-天津-康康
上一篇 2016-04-12 18:58
下一篇 2016-04-12

相关推荐

  • Bind编译安装详解

    Bind编译安装详解 Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服…

    Linux干货 2016-07-22
  • Shell脚本编程入门

    什么是Shell      操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互。      Shell是一个用户跟操作系统之间的一个命令解释器。Shell是用户与Linux操作系统之间沟通…

    Linux干货 2016-08-15
  • linux学习笔记: shell脚本编程相关(上)

    前言 unix/linux操作系统下的shell,是一种壳,其目的是提供一个用户与计算机相互交互的命令接口,通过输入各种命令,达到操作的目的。 与此同时,shell支持控制流程,进而可以组合出各种各样的应用实例。 shell脚本的格式  首行shebang机制:  bash脚本,首行添加#!/bin/bash&nbsp…

    Linux干货 2017-04-18
  • MySQL主从复制: MHA

                    MySQL主从复制: MHA 前言 MHA的架构 环境部署 实验步骤 总结 前言 上篇文章我们实现了MySQL的主从复制, 但是我们之前就说过, 主从复制是有很多问题的…

    Linux干货 2016-04-28
  • 第二周liunx小总结

    第二周liunx小总结 1.“>” ;”>>”   “>” 把STDOUT重定向到文件    “2>”把STDERR重定向到文件   “&>” 把所有输出重定向到文件* >文件内容会覆盖    set -C: 禁止将内容…

    2017-07-20
  • 第九周 N21 总有刁民想害朕

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash nologinuser=$(awk -F : '$NF~/\/nologin$/ {print $7}&…

    Linux干货 2016-09-26