Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)

文章目录

  • Linux RAID多级别详解
    • 什么是Linux RAID?
    • Linux支持哪些RAID级别?
      • mdadm命令
      • 创建RAID 10步骤示例
        • 创建时需要注意的事项
      • 删除RAID 10 步骤示例
      • 模拟raid10磁盘故障示例
      • raid10重启示例
      • raid添加备份盘与备份盘的使用

Linux RAID多级别详解

什么是Linux RAID?

RAID的全称是Redundant Array of Independent Disks,即磁盘冗余阵列

简单来说,RAID是一种在Linux系统中使用多个硬盘来提高数据存储的可靠性和性能的技术。通过将多个硬盘组合在一起,形成一个更大、更可靠的硬盘,同时还可以提高数据读写的速度。

Linux支持哪些RAID级别?

Linux支持多种RAID级别,包括RAID 0、RAID 1、RAID 5、RAID 6、RAID 10等。每种RAID级别都有不同的数据保护和性能特性

RAID 0的工作原理?有什么优缺点?

RAID 0是将多个物理硬盘组合成一个逻辑硬盘的技术,它在吞吐量和性能方面提供了很大的优势,但是不提供数据冗余和容错能力,因此在使用RAID 0时必须非常小心,确保数据备份和恢复计划。由于RAID 0将数据分散存储在多个硬盘上,因此如果其中一个硬盘故障,整个RAID 0将无法访问,这是需要注意的一个问题

  • 优点:读写性能非常高,因为数据可以同时从多个硬盘上读取或写入。
  • 缺点:可靠性差,如果其中一个硬盘出现故障,所有数据都会丢失

RAID 1工作原理?有什么优缺点?

RAID 1是将多个物理硬盘组合成一个逻辑硬盘的技术,它提供了数据冗余和容错能力,但是在吞吐量和性能方面较差。RAID 1将数据镜像到多个硬盘上,如果其中一个硬盘故障,RAID 1可以继续使用,并且可以在更换故障硬盘之前进行数据恢复。由于RAID 1需要将数据镜像到其他硬盘上,因此需要至少两个硬盘来创建RAID 1。

  • 优点:可以将数据复制到多个硬盘中,确保即使一个硬盘出现故障,数据仍然可以访问

  • 缺点:价格贵,每个硬盘都必须存储相同的数据,因此RAID 1的存储效率比其他RAID模式低。

RAID 5是什么?有什么优缺点?

RAID 5是将多个物理硬盘组合成一个逻辑硬盘的技术,它提供了数据冗余和容错能力,并且在吞吐量和性能方面比RAID 1更好。RAID 5通过将数据和校验信息分散存储在多个硬盘上来提供冗余,在其中一个硬盘故障时,RAID 5可以继续使用,并且可以在更换故障硬盘之前进行数据恢复。由于RAID 5需要将数据和校验信息分散存储在多个硬盘上,因此需要至少三个硬盘来创建RAID 5。

  • 优点:高数据可靠性、高存储效率、中等的读取性能
  • 缺点:写入性能有限、重建时间长

RAID 10工作原理?有什么优缺点?

RAID 10是将多个物理硬盘组合成一个逻辑硬盘的技术,它将RAID 1和RAID 0结合起来,提供了高性能和强大的容错能力。RAID 10将数据分散存储在多个硬盘上,并通过将数据镜像到其他硬盘上来提供冗余。如果其中一个硬盘故障,RAID 10可以继续使用,并且可以在更换故障硬盘之前进行数据恢复。由于RAID 10需要将数据镜像到其他硬盘上,因此需要至少四个硬盘来创建RAID 10。

  • 优点:提高性能,提供高可靠性,快速恢复,灵活性
  • 缺点:成本较高,硬盘利用率较低,写入性能较低

总结

Linux的磁盘阵列提供了多种RAID级别的支持,可以根据不同的需求选择不同的RAID级别来提供高性能和高可靠性的存储解决方案

同时,Linux的“mdadm”命令提供了方便的创建和管理RAID的工具。

mdadm命令

mdadm是一款Linux下的软件RAID管理工具,可以用来创建、管理和监控软件RAID

语法

mdadm [options] device [device...]

参数

以下是常用的mdadm命令创建RAID时使用的选项:

-C or --create: 创建一个新的RAID设备
-A or --assemble: 组装一个已经存在的RAID设备。
-S or --stop: 停止一个正在运行的RAID设备
-D or --detail: 显示RAID设备的详细信息
-E or --export: 导出RAID设备的配置信息。
-v or --verbose: 显示详细的输出信息。
-q or --quiet: 只显示必要的输出信息。
-a or --auto: 自动组装已知的RAID设备。
-f or --force: 强制执行某些操作。
-l or --level: RAID设备的级别
-n or --raid-devices: RAID设备中的磁盘数量。
-p or --parity: RAID设备的校验方式。
-R or --run: 在后台运行RAID设备。
-r or --remove: 从RAID设备中移除一个磁盘
--zero-superblock:将包含合法md信息的superblock区域置为零

创建RAID 10步骤示例

  1. 检查硬盘设备是否可用。可以使用以下命令查看系统中的硬盘设备
fdisk -l
  1. 如果硬盘设备未格式化,需要先将其格式化为Linux文件系统。可以使用以下命令格式化硬盘设备:
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkfs.xfs /dev/sdb3
mkfs.xfs /dev/sdb4
  1. 安装mdadm软件包
yum install -y mdadm
  1. 创建RAID 0设备
mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
  1. 格式化RAID设备
mkfs.xfs /dev/md0
  1. 挂载RAID设备
创建挂载RAID设备的目录
mkdir /mnt/raid10
挂载
mount /dev/md0 /mnt/raid10

其中,“/mnt/raid10”是要挂载RAID设备的目录,“/dev/md0”是RAID设备的设备名称。
  1. 使用df -hT来查看挂载信息(查看)
#我们首先写入一些文件看看是否可以使用
[root@localhost raid10]# echo csq{1..1000000} >> csq.txt
[root@localhost raid10]# df -h        # 可以使用
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        3.8G     0  3.8G    0% /dev
tmpfs           3.9G     0  3.9G    0% /dev/shm
tmpfs           3.9G   12M  3.8G    1% /run
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda5        55G   11G   44G   20% /
/dev/sda2        30G   33M   30G    1% /home
/dev/sda1       7.9G  142M  7.7G    2% /boot
tmpfs           781M     0  781M    0% /run/user/0
/dev/md0         10G  118M  9.9G    2% /mnt/raid10
  1. 检查raid10的详细信息(查看)
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sun Apr  2 00:46:54 2023
        Raid Level : raid10
        Array Size : 10475520 (9.99 GiB 10.73 GB)
     Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sun Apr  2 00:48:18 2023
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 8bc8a484:0f2ffd78:607fe509:264ac168
            Events : 19

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync set-A   /dev/sdb1
       1       8       18        1      active sync set-B   /dev/sdb2
       2       8       19        2      active sync set-A   /dev/sdb3
       3       8       20        3      active sync set-B   /dev/sdb4

创建时需要注意的事项

  1. 在创建RAID 10之前,确保硬盘设备已经被格式化为Linux文件系统

  2. 创建设备时

    在Linux中创建RAID 0时,必须至少使用两个硬盘  
    
    在Linux中创建RAID 1时,必须至少使用两个硬盘
    
    在Linux中创建RAID 5时,必须至少使用三个硬盘
    
    在Linux中创建RAID 10时,必须至少使用四个硬盘
    
  3. 创建RAID 10设备时,硬盘设备的容量最好相同

  4. 在挂载RAID设备之前,确保要挂载的目录存在

  5. 在使用RAID设备时,建议定期进行RAID设备的备份,以确保数据的安全

删除RAID 10 步骤示例

删除 RAID 10 阵列 ,在删除 RAID 10 阵列之前 , 请确保已备份好重要数据

卸载挂载 RAID 10 阵列上的文件系统

[root@localhost ~]# umount /mnt/raid10/

停止 RAID 10 阵列

[root@localhost ~]# mdadm --stop /dev/md0 
mdadm: stopped /dev/md0

卸载raid10中所有的磁盘信息

mdadm  --zero-superblock /dev/sdb1 
mdadm  --zero-superblock /dev/sdb2
mdadm  --zero-superblock /dev/sdb3 
mdadm  --zero-superblock /dev/sdb4

删除RAID设备配置文件

rm /etc/mdadm/mdadm.conf

删除开机自动挂载的文件信息(如果设置了就要删除)

# 清除/etc/fstab 文件的自动挂载信息文件
vim /etc/fstab

模拟raid10磁盘故障示例

为了模拟故障,首先我们将一个硬盘设备标记为故障设备

mdadm --manage /dev/md0 --fail /dev/sdb4

查看RAID设备信息

Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)_第1张图片

然后我们移除这一块坏掉的硬盘

mdadm --manage /dev/md0  --remove /dev/sdb4

Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)_第2张图片

使用umount命令取消挂载RAID设备

umount /dev/md0

使用mdadm命令添加新硬盘设备

为了获得最佳性能,建议新硬盘的大小应该与之前的硬盘大小一致或者更大

mdadm --manage /dev/md0  --add /dev/sdc1

添加完之后用 mdadm /dev/md0 查看磁盘阵列信息,等待修复过程

如下图磁盘就修复成功了!

然后就可以使用磁盘了!

Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)_第3张图片

raid10重启示例

创建raid的配置文件

将RAID设备的配置信息写入到/etc/mdadm.conf文件中,以便在系统启动时自动加载RAID设备

echo DEVICE /dev/sdb[1-3] /dev/sdc1 >> /etc/mdadm.conf

mdadm --detail --scan >> /etc/mdadm.conf

[root@localhost ~]# cat /etc/mdadm.conf    # 这是添加后的效果  自己设置自己的device
DEVICE /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdc1
ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=6190dc62:f4779dfb:cc7b8909:5f256a76

取消raid10的挂载

umount /mnt/raid10/

停止 raid10

停止之后使用 mdadm -D /dev/md0 命令查不到raid10信息就是正常状态

[root@localhost ~]# mdadm --stop /dev/md0 
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
mdadm: cannot open /dev/md0: No such file or director

在存在配置文件的情况下就可以正常启动raid10了!

mdadm -A  /dev/md0

启动完成后查看raid10详细信息

Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)_第4张图片

raid添加备份盘与备份盘的使用

使用mdadm命令创建RAID 5备份盘,需要先准备好三个或更多硬盘,确认硬盘已连接到计算机

使用mdadm命令创建一个RAID设备

mdadm -Cv /dev/md0  -n 3 -l 5 -x 1 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

-n 指定3块硬盘
-l 指定raid级别
-x 1 指定一个备份盘

使用mkfs等命令在RAID设备上创建文件系统

mkfs.xfs /dev/md0

创建RAID设备的挂载点,挂载磁盘阵列

mkdir /mnt/raid5/
mount /dev/md0 /mnt/raid5/

写入数据,检查raid是否可以使用

[root@localhost raid5]# echo csq{1..1000000} >> csq.txt
[root@localhost raid5]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
devtmpfs       devtmpfs  3.8G     0  3.8G    0% /dev
tmpfs          tmpfs     3.9G     0  3.9G    0% /dev/shm
tmpfs          tmpfs     3.9G   12M  3.8G    1% /run
tmpfs          tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/sda5      xfs        55G   11G   44G   20% /
/dev/sda2      xfs        30G   33M   30G    1% /home
/dev/sda1      xfs       7.9G  142M  7.7G    2% /boot
tmpfs          tmpfs     781M     0  781M    0% /run/user/0
/dev/md0       xfs       8.0G   42M  8.0G    1% /mnt/raid5

# 可以使用

见证备份盘的作用(从磁盘整列中删除一块硬盘)

mdadm /dev/md0 --fail /dev/md0

查看磁盘整列信息,发现备用磁盘已经顶替上去

Linux RAID多级别详解(raid10创建,删除,重启,添加备份盘)_第5张图片

检查备份盘是否自动加入了阵列组

[root@localhost raid5]# cp csq.txt csq2.txt 
[root@localhost raid5]# cp csq.txt csq3.txt 
[root@localhost raid5]# df -H
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        4.1G     0  4.1G    0% /dev
tmpfs           4.1G     0  4.1G    0% /dev/shm
tmpfs           4.1G   13M  4.1G    1% /run
tmpfs           4.1G     0  4.1G    0% /sys/fs/cgroup
/dev/sda5        59G   12G   47G   20% /
/dev/sda2        33G   34M   33G    1% /home
/dev/sda1       8.4G  149M  8.3G    2% /boot
tmpfs           819M     0  819M    0% /run/user/0
/dev/md0        8.6G   64M  8.6G    1% /mnt/raid5

测试可用

你可能感兴趣的:(Linux学习,linux,运维,服务器)