• Linux廉价磁盘冗余队列(RAID)


    目录

    前言

    什么是RAID?

    RAID类型(介绍部分类型)

    RAID0

    RAID1

    RAID5

    创建RAID(以RAID为例)

    1.准备四块磁盘

    2.创建RAID

    3.格式化,挂载

    格式化

    挂载

    4.查看RAID信息

    5.模拟磁盘坏一个,移除磁盘。

    6.移除RAID

    1.卸载md1挂载

    2.停止md1阵列

    3.清除成员

    总结


    前言

            通过几篇文章的介绍,来到了RAID的学习,本篇文章将介绍RAID,以及学会创建RAID,并且使用它,下面就进入学习吧。


    什么是RAID?

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或服务器的内置存储)带来巨大利益,其中提高和传输速率提供容错功能是最大的优点。


    RAID类型(介绍部分类型)

    RAID0

            RAID0 条带集 2块磁盘以上,读写速率快100%*N,单不容错。

    RAID1

            RAID1 镜像集 2块磁盘,容量50%,读写速率一般,容错

    RAID5

            RAID5 带奇偶校检条带集 3块磁盘以上,利用率(n-1)/n读写速率块,容错,一份数据产生N-1个条带,同时还有一份校验数据,共N份数据在N盘上循环均衡存储

    N快盘同时读写,读写性很高,但由于校验机制,写性能不是很高,可靠性高,但是只允许1快盘坏,不影响所有数据


    创建RAID(以RAID为例)

    1.准备四块磁盘

     通过ll /dev/sd*查看已有磁盘。

     通过lsblk查看磁盘操作信息,注意创建RAID必须要用没有任何操作的原始磁盘或者分区。

    2.创建RAID

    //检查是否安装mdadm

    命令:yum -y install mdadm

    //创建RAID名为md1,它由sde,sdg,sdh,sdi组成

    命令:mdadm -C /dev/md1 -l5 -n3 -x1 /dev/sd{e,g,h,i}

    各字段的详解:

    • -C:创建RAID
    • /dev/md0:第一个RAID设备
    • -l5:RAID5
    • -n:RAID成员的数量
    • -x:热备磁盘的数量
    • 可用空间2G

    代码如下(示例):

    1. [root@localhost ~]# yum -y install mdadm
    2. 已加载插件:fastestmirror, langpacks
    3. Loading mirror speeds from cached hostfile
    4. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
    5. 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
    6. One of the configured repositories failed (未知),
    7. and yum doesn't have enough cached data to continue. At this point the only
    8. safe thing yum can do is fail. There are a few ways to work "fix" this:
    9. 1. Contact the upstream for the repository and get them to fix the problem.
    10. 2. Reconfigure the baseurl/etc. for the repository, to point to a working
    11. upstream. This is most often useful if you are using a newer
    12. distribution release than is supported by the repository (and the
    13. packages for the previous distribution release still work).
    14. 3. Run the command with the repository temporarily disabled
    15. yum --disablerepo= ...
    16. 4. Disable the repository permanently, so yum won't use it by default. Yum
    17. will then just ignore the repository until you permanently enable it
    18. again or use --enablerepo for temporary usage:
    19. yum-config-manager --disable
    20. or
    21. subscription-manager repos --disable=
    22. 5. Configure the failing repository to be skipped, if it is unavailable.
    23. Note that yum will try to contact the repo. when it runs most commands,
    24. so will have to try and fail each time (and thus. yum will be be much
    25. slower). If it is a very temporary problem though, this is often a nice
    26. compromise:
    27. yum-config-manager --save --setopt=.skip_if_unavailable=true
    28. Cannot find a valid baseurl for repo: base/7/x86_64
    29. [root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{f,g,h,i}
    30. mdadm:Defaulting to version 1.2 metadata
    31. mdadm:arrt /dev/md1 started.

    3.格式化,挂载

    命令和分区的格式化挂载一致。

    格式化

    mkfs.ext4  /dev/md1

    1. [root@localhost ~]# mkfs.ext4 /dev/md1
    2. mke2fs 1.42.9 (28-Dec-2013)
    3. 文件系统标签=
    4. OS type: Linux
    5. 块大小=4096 (log=2)
    6. 分块大小=4096 (log=2)
    7. Stride=128 blocks, Stripe width=256 blocks
    8. 655360 inodes, 2618880 blocks
    9. 130944 blocks (5.00%) reserved for the super user
    10. 第一个数据块=0
    11. Maximum filesystem blocks=2151677952
    12. 80 block groups
    13. 32768 blocks per group, 32768 fragments per group
    14. 8192 inodes per group
    15. Superblock backups stored on blocks:
    16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
    17. Allocating group tables: 完成
    18. 正在写入inode表: 完成
    19. Creating journal (32768 blocks): 完成
    20. Writing superblocks and filesystem accounting information: 完成

    挂载

    命令:mount /dev/md1  /mnt/raid5            //raid5是之前创建的一个目录

     如图df -hT查看挂载信息,有md1的挂载信息挂载点是raid5。

    4.查看RAID信息

    命令: mdadm -D /dev/md0                   //-D查看详细信息

    1. [root@localhost ~]# mdadm -D /dev/md1
    2. /dev/md0:
    3. Version : 1.2
    4. Creation Time : Wed Oct 26 14:36:41 2022
    5. Raid Level : raid5 //raid类型
    6. Array Size : 10475520 (9.99 GiB 10.73 GB)
    7. Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
    8. Raid Devices : 3 //组中设备数量
    9. Total Devices : 4 //总设备数
    10. Persistence : Superblock is persistent
    11. Update Time : Wed Oct 26 14:58:11 2022
    12. State : clean //状态
    13. Active Devices : 3 //活跃3个
    14. Working Devices : 4 //4个在工作
    15. Failed Devices : 0 //损坏数量,坏一个危险,坏两个就完蛋
    16. Spare Devices : 1 //热备1个
    17. Layout : left-symmetric
    18. Chunk Size : 512K //校检码大小
    19. Consistency Policy : resync
    20. Name : localhost.localdomain:0 (local to host localhost.localdomain)
    21. UUID : d7c102bb:390cd8ce:041cc2a9:9dc9b741
    22. Events : 18
    23. Number Major Minor RaidDevice State
    24. 0 8 64 0 active sync /dev/sde //同步
    25. 1 8 96 1 active sync /dev/sdg //同步
    26. 4 8 112 2 active sync /dev/sdh /同步
    27. 3 8 128 - spare /dev/sdi //热备

    5.模拟磁盘坏一个,移除磁盘。

    命令:[root@localhost ~]# mdadm /dev/md1 -f /dev/sde -r /dev/sde

    •  -f  fial
    • -r   remove

     如图可以看出热备磁盘的作用,当一个磁盘损坏,热备磁盘胡替补原来磁盘的位置成为数据磁盘,同时恢复原本磁盘内的数据信息。

    6.移除RAID

    1.卸载md1挂载

    命令:umount /dev/md1          //一定要卸载

     挂载信息没有md1的挂载信息,卸载成功!

    2.停止md1阵列

    命令:mdadm -S /dev/md1

    1. [root@localhost ~]# mdadm -S /dev/md1
    2. mdadm: stopped /dev/md1

    3.清除成员

    命令:mdadm --zero-superblock /dev/sd{g,h,i}

    1. [root@localhost ~]# mdadm --zero-superblock /dev/sd{g,h,i}
    2. [root@localhost ~]# lsblk
    3. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    4. md0 9:0 0 10G 0 raid5
    5. sda 8:0 0 20G 0 disk
    6. ├─sda1 8:1 0 1000M 0 part /boot
    7. └─sda2 8:2 0 19G 0 part
    8. ├─centos-root 253:0 0 17G 0 lvm /
    9. └─centos-swap 253:1 0 2G 0 lvm [SWAP]
    10. sdb 8:16 0 5G 0 disk
    11. ├─sdb1 8:17 0 2G 0 part
    12. ├─sdb2 8:18 0 200M 0 part
    13. ├─sdb3 8:19 0 200M 0 part
    14. ├─sdb4 8:20 0 1K 0 part
    15. ├─sdb5 8:21 0 200M 0 part
    16. └─sdb6 8:22 0 2.4G 0 part
    17. sdc 8:32 0 5G 0 disk
    18. └─sdc1 8:33 0 2G 0 part
    19. sdd 8:48 0 5G 0 disk
    20. └─vg1-lv1 253:2 0 8G 0 lvm
    21. sde 8:64 0 5G 0 disk
    22. sdf 8:80 0 5G 0 disk
    23. └─vg1-lv1 253:2 0 8G 0 lvm
    24. sdg 8:96 0 5G 0 disk
    25. sdh 8:112 0 5G 0 disk
    26. sdi 8:128 0 5G 0 disk
    27. sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64

    总结

            本篇文章带大家了解RAID的一些相关信息,并学会如何创建RAID和如何卸载RAID,了解RAID中的一些特性和用法。


    创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

  • 相关阅读:
    【Docker】Linux下Docker 部署一个SpringBoot项目的完整流程(通俗易懂,简单上手!!)
    html5+css3
    04.函数
    nvm的简介、安装、使用(简单明了)
    java之异常
    `算法知识` 倍增, 可重复贡献问题
    SQL语句操作数据库
    基于matlab的排队系统仿真
    【华为上机真题 2022】字符串加密
    【STM32+OPENMV】矩形识别
  • 原文地址:https://blog.csdn.net/s1429583654/article/details/127534808