美文网首页Linux初学
linux——RAID独立冗余磁盘阵列

linux——RAID独立冗余磁盘阵列

作者: Xiaobudianer | 来源:发表于2019-08-16 16:57 被阅读0次

    RAID(Redundant Array of Independent Disks )
    一、独立冗余磁盘阵列
    1、RAID:由多个独立的磁盘构成的一个容量巨大的磁盘组。
    2、优点:1)、容量得到大的提升
    2)、数据安全得到保障
    3)、性能得到提升
    通过独立冗余磁盘阵列,可以极大地扩展存储容量,增加数据安全性以及提升性能。
    3、缺点:由于需要数据冗余,所以通常会损失 一定比例的磁盘的容量。
    还有就是提高了支出成本。
    e.g. 极端的情况下,RAID1 中,两块磁盘互为镜像,但是只能使用一块磁盘的容量。这时,容量损失了50%。
    二、RAID的级别
    1、RAID0
    RAID0是最早出现的阵列技术。多个磁盘通过阵列控制器并联在一起,构成一个大的磁盘组合。在RAID0,数据呈现条带分布。

    by XiaoGua.png
    以上共有两块磁盘,数据块A1 和 数据块A2 组成条带0,依次类推。
    1)、RAID0 可以提高磁盘的性能和读写速度,但是不能提供容错。所以,当阵列中的一块磁盘损坏后,就会导致数据丢失。
    2)、数据被依次写入到各个物理硬盘中,即disk1 和disk2硬盘设备会分别保存数据资料。提升了读取,写入的速度,但是不具备数据备份和数据错误修复能力。
    2、RAID1
    RAID1又被称为磁盘镜像,由两块磁盘组成,一块作为主盘,另外一块作为备份盘。将两块硬盘进行绑定。
    1)、当向主盘写入数据时,控制器会同时向备份盘写入同样的数据。因此,RAID1中存在着两块数据完全相同的磁盘。 by XIaoGua

    2)、RAID1是数据安全性最好的RAID级别。即使另外一块磁盘完全损坏,一般会立即自动以热交换的方式来恢复数据,从备份的磁盘中还原数据。
    3)、缺点:导致50%的容量损失以及写入性能的下降
    3、RAID2
    RAID2很少使用,与RAID0类似,只是以条带为单位,而不是块。组成RAID2至少3块硬盘。
    4、RAID3
    RAID3与RAID2数据存取方式类似,把数据以为单位分割,分散存储在各个磁盘上。在数据安全方面,用奇偶校验做错误校正与检测,只需要一个额外的校验盘。
    5、RAID4
    RAID4和RAID3很像,数据都是依次存储在多个硬盘上的,奇偶校验码放在独立的奇偶校验盘上,唯一的不同,在数据分割上RAID3对数据的访问是按位进行的,RAID4以数据块为单位。
    6、RAID5
    RAID5是一种使用非常广泛的RAID。RAID5兼顾了存储性能,数据安全,和存储成本。RAID5至少需要3块硬盘

    by XiaoGua
    1)、由上图可知,RAID5是将数据和相应的奇偶校验信息分散存储在组成RAID5的各个磁盘上,并且奇偶校验信息和对应得数据可以位于不同的磁盘上。
    2)、RAID5中的一个磁盘出现故障,控制器会利用剩下的数据和奇偶校验信息去恢复损坏的数据。
    7、RAID10
    RAID10是RAID0和RAID1的一个组合体。RAID至少需要4块硬盘
    by XiaoGua
    1)、先分别两两制作成RAID1 磁盘阵列,保证数据的安全性。
    2)、然后再对两个RAID1磁盘阵列实施RAID0技术,提高硬盘设备的读写速度。
    3)、RAID10继承了RAID0的高读写速度和RAID1的数据安全性。
    4)、在不考虑成本下,RAID10是超过RAID5的性能,成为生产环境主要使用的技术。
    三、部署RAID10
    一)、虚拟机添加四块硬盘
    by XiaoGua
    二)、mdadm命令
    mdadm是Linux系统中创建和管理阵列的工具,默认情况下,Ubuntu没有安装该工具,用户可以输入以下命令安装:
    sudo su
    apt install mdadm
    by XiaoGua
    mdadm的基本命令如下:
    mdadm [mode] <RAID 设备名称> [options] [成员设备名称]
    1、开始创建RAID
    mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
    by XiaoGua
    -C :创建一个RAID阵列卡
    -v :显示创建过程
    /dev/md0 :新创建的RAID名
    -a yes :自动创建设备文件
    -n 4 :用4块硬盘来部署这个RAID
    -l 10 :RAID10 方案
    /dev/sdb /dev/sdc /dev/sdd /dev/sde :包含的4块硬盘设备名称
    2、格式化RAID类型为ext4
    mkfs.ext4 /dev/md0
    by XiaoGua
    3、挂载RAID:md0
    1)、创建挂载点
    mkdir /raidmount
    2)、挂载到/raidmount
    mount /dev/md0 /raidmount
    3)、查看挂载信息
    df -h
    by XiaoGua
    4)、查看挂载的RAID的详细信息
    -D 选项
    mdadm -D /dev/md0
    by XiaoGua
    5)、挂载信息写入配置文件中
    echo "/dev/md0 /raidmount ext4 defaults 0 0" >> /etc/fstab
    by XiaoGua
    测试已经写入:cat /etc/fstab
    by XiaoGua
    四、损坏RAID和修复

    1、在确认有一块物理硬盘设备损坏而不能继续使用时,应该使用mdadm -f 删除损坏的硬盘,然后观察RAID的详细信息
    1)、mdadm /dev/md0 -f /dev/sdb


    by XiaoGua

    -f :模拟设备损坏,移除
    2)、mdadm -D ./dev/md0


    by XiaoGua

    关键是看这里:


    by XiaoGua

    -D:显示新建的RAID的详细信息(detail)

    2、在RAID10级别的磁盘阵列中,当RAID1中存在一个故障盘时并不影响RAID10的使用,购买了新硬盘后再使用这个mdadm命令替换就可以了。
    在损坏期间,可以对/raidmount 目录中创建和删除文件。
    在虚拟机中,只需要重启系统,添加一个新的硬盘,然后再将这个新硬盘添加到RAID中。
    umount /raidmount


    by XiaoGua

    mdadm /dev/md0 -a /dev/sde
    mdadm -D /dev/md0


    by XiaoGua

    五、RAID备份盘

    RAID10 中最多允许50%的硬盘设备发生故障。但是也有一种极端情况。
    同一RAID1的磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。
    在RAID10中,RAID1中的某一块硬盘坏了,我们在修复的路上,发现RAID1的另一块硬盘设备也坏了。这时数据就会彻底丢失。

    使用RAID备份盘技术来预防这类事故。
    核心理念:准备一块足够大的硬盘,平时处于闲置状态,一旦RAID中硬盘出现事故马上自动顶替。

    六、部署RAID5
    部署RAID5至少需要3块硬盘,还需要加一块备份盘,因此一共也是需要4块硬盘设备。
    1、开始创建RAID5+备份盘
    1)、创建RAID5,并查看RAID的详细信息
    mdadm -Cv /dev/md1 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde


    by XiaoGua

    -n 3:创建这个RAID5需要的硬盘数
    -l 5 :RAID 的级别 RAID5
    -x 1:创建一块备份盘

    查看新建的RAID5的详细信息:mdadm -D /dev/md1


    by XiaoGua

    2)、格式化RAID5(创建文件系统类型为ext4)
    mkfs.ext4 /dev/md1


    by XiaoGua

    3)、 挂载在/raidmount目录上
    mount -a


    by XiaoGua

    4)、移除损坏硬盘设备/dev/sdb查看RAID5的情况
    mdadm /dev/md1 -f /dev/sdb


    by XiaoGua

    mdadm -D /dev/md1
    发现备份盘马上顶替上去

    by XiaoGua

    相关文章

      网友评论

        本文标题:linux——RAID独立冗余磁盘阵列

        本文链接:https://www.haomeiwen.com/subject/qohfsctx.html