往期好文:【功能介绍】麒麟2403支持配置任务栏上的图标“从不合并”啦!
Hello,大家好啊!今天给大家带来一篇关于如何在Linux系统上使用mdadm工具配置软件RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)的文章。RAID是一种将多块磁盘组合成一个逻辑磁盘以提高性能、冗余性或可靠性的技术。通过mdadm工具,您可以轻松地在Linux系统中配置软RAID。本文将详细介绍如何使用mdadm配置各种RAID级别的步骤和方法。欢迎大家分享转发,点个关注和在看吧!
什么是RAID?
RAID是一种将多块硬盘组合成一个逻辑单元的方法,用于提高存储系统的性能、容错性和存储容量。不同的RAID级别提供了不同的优点:
RAID 0:条带化,将数据分割并分散存储在多块硬盘上,提高性能,但没有冗余。
RAID 1:镜像,数据在多块硬盘上完全复制,提高数据冗余和安全性。
RAID 5:至少需要3块磁盘,通过分布式奇偶校验实现数据冗余,同时提供一定的存储效率。
RAID 6:类似RAID 5,但有双重奇偶校验,提供更高的容错性。
RAID 10:结合RAID 1和RAID 0,既提供性能提升,也提供冗余保护。
什么是mdadm?
mdadm是Linux系统中配置和管理软RAID阵列的工具。它能够创建、组装、监控和管理RAID阵列,不依赖于硬件RAID控制器,因此灵活性高,适用于各种软RAID配置需求。
1.查看系统信息
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version
pdsyw@pdsyw-PC:~/Desktop$ uname -a
2.查看系统磁盘
pdsyw@pdsyw-PC:~/Desktop$ lsblk
3.更新系统源
pdsyw@pdsyw-PC:~/Desktop$ sudo apt update
4.安装mdadm
pdsyw@pdsyw-PC:~/Desktop$ sudo apt install mdadm
5.创建RAID阵列
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 524155904K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
pdsyw@pdsyw-PC:~/Desktop$
内容解释:
/dev/md0 是创建的 RAID 设备名称。
–level=1 表示要创建 RAID 1。
–raid-devices=2 表示使用 2 个磁盘。
/dev/sdb 和 /dev/sdc 是要用于 RAID 的磁盘。
RAID 阵列的元数据版本:
系统提示该 RAID 阵列的元数据(metadata)位于开始部分,使用的默认元数据版本是 v1.x。这种元数据版本可能在某些引导程序(如 GRUB)中不受支持,因此不适合直接作为引导设备(即 /boot)。
如果你计划将 /boot 分区放在该 RAID 上,请确保引导程序可以理解 md/v1.x 元数据格式,否则建议使用 --metadata=0.90。
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sdb /dev/sdc
6.查看 RAID 阵列状态
pdsyw@pdsyw-PC:~/Desktop$ cat /proc/mdstat
解释输出内容:
Personalities: [raid1]
当前系统加载了 RAID 1 模块。
md0 : active raid1 sdc[1] sdb[0]
md0 是 RAID 设备名称,表示你创建的 RAID 阵列。
active raid1 说明 md0 正在以 RAID 1 级别工作。
sdc[1] sdb[0] 表示 RAID 阵列由两个磁盘组成,sdb 和 sdc,它们在 RAID 阵列中的编号分别是 [0] 和 [1]。
524155904 blocks super 1.2 [2/2] [UU]
524155904 blocks:RAID 阵列的总块数。
super 1.2:RAID 元数据的版本,这里是 1.2,表示元数据存储在磁盘的开头部分。
[2/2]:阵列的设备总数是 2,当前有 2 个设备是正常工作的。
[UU]:U 表示一个磁盘是 Up 状态,两个 U 表示两个磁盘都处于正常工作状态。
resync = 19.8% (104024832/524155904) finish=34.9min speed=200041K/sec
resync = 19.8%:表示同步进度,目前已经完成 19.8%。
(104024832/524155904):表示已经同步的块数和总块数。
finish=34.9min:预计还需要 34.9 分钟完成同步。
speed=200041K/sec:当前同步速度为每秒 200041 KB。
bitmap: 4/4 pages [16KB], 65536KB chunk
这是关于写入意图位图(bitmap)的信息,表示使用了位图机制来加速同步和恢复。
7.使用mdadm查看 RAID 阵列状态
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0
关键字段解释:
Version: 1.2
使用的 RAID 元数据版本是 1.2,它将元数据存储在磁盘的起始位置。
Creation Time: Mon Oct 14 13:57:46 2024
显示 RAID 阵列的创建时间。
Raid Level: raid1
当前 RAID 级别为 RAID 1(镜像模式)。
Array Size: 524155904 (499.87 GiB 536.74 GB)
阵列的总容量为约 500 GiB,两个磁盘组成的 RAID 1 阵列,其有效容量为单个磁盘的容量。
Used Dev Size: 524155904 (499.87 GiB 536.74 GB)
每个设备的有效大小。
Raid Devices: 2
阵列中使用的 RAID 设备数为 2。
Total Devices: 2
当前阵列中总共有 2 个设备。
Persistence: Superblock is persistent
表示超级块是持久化的,这意味着 RAID 阵列的配置信息存储在阵列的每个成员磁盘中,可以在重启后自动恢复。
Intent Bitmap: Internal
使用了内部写意图位图(intent bitmap),用于跟踪同步状态,加快故障后的重建速度。
Update Time: Mon Oct 14 14:11:40 2024
阵列的最后更新时间。
State: clean, resyncing
RAID 阵列的状态是 “clean”,表示阵列是干净的且工作正常,但目前正在进行同步(resyncing)。
Active Devices / Working Devices: 2
当前有 2 个设备处于活跃且正常工作状态。
Failed Devices: 0
没有失败的设备。
Spare Devices: 0
没有备用设备。
Consistency Policy: bitmap
一致性策略是使用位图以加速同步和重建。
Resync Status: 31% complete
同步状态为 31% 完成。
Devices Details:
/dev/sdb 和 /dev/sdc 都处于 “active sync” 状态,这意味着它们都正常参与 RAID 同步。
8.创建文件系统(需同步完成后操作)
pdsyw@pdsyw-PC:~/Desktop$ sudo mkfs.ext4 /dev/md0
9.挂载 RAID 阵列
pdsyw@pdsyw-PC:~/Desktop$ sudo mkdir -p /mnt/raid1
pdsyw@pdsyw-PC:~/Desktop$ sudo mount /dev/md0 /mnt/raid1
pdsyw@pdsyw-PC:~/Desktop$ sudo chmod 777 /mnt/raid1/
pdsyw@pdsyw-PC:~/Desktop$ df -h
10.配置开机自动挂载
pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/fstab
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/fstab
/dev/md0 /mnt/raid1 ext4 rw,relatime,x-gvfs-show 0 0
11.保存 RAID 配置
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u
12.重启
13.打开磁盘
14.写入测试
15.添加磁盘
pdsyw@pdsyw-PC:~/Desktop$ lsblk
16.添加磁盘到raid
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --add /dev/md0 /dev/sdd
mdadm: added /dev/sdd
17.保存RAID配置
pdsyw@pdsyw-PC:~/Desktop$ sudo sed -i '$d' /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=pdsyw-PC:0 UUID=46ea30c8:cf312776:613f8677:9b6da3f9
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u
18.查看RAID详细信息
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0
19.移除磁盘
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --fail /dev/md0 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --remove /dev/md0 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
20.保存RAID配置
pdsyw@pdsyw-PC:~/Desktop$ sudo sed -i '$d' /etc/mdadm/mdadm.conf
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=pdsyw-PC:0 UUID=46ea30c8:cf312776:613f8677:9b6da3f9
pdsyw@pdsyw-PC:~/Desktop$ sudo update-initramfs -u
21.查看RAID详细信息
pdsyw@pdsyw-PC:~/Desktop$ sudo mdadm --detail /dev/md0
通过本文的介绍,您已经了解了如何使用mdadm工具在Linux上配置各种RAID级别。无论是提高性能的RAID 0,还是提供冗余的RAID 1、RAID 5、RAID 10,mdadm工具都可以灵活地帮助您实现高效可靠的数据存储。如果您觉得这篇文章有用,请分享和转发,同时别忘了点个关注和在看,以便未来获取更多实用的Linux系统管理技巧。感谢大家的阅读,我们下次再见!