目录
1. 创建RAID准备
2. 创建RAID 0
2.1. 创建磁盘阵列
(1)创建磁盘阵列
(2)查看磁盘阵列信息
(3)挂载文件系统
(4)保存RAID信息
(5)开机自动挂载RAID
2.2. 添加新设备到磁盘阵列
2.3. 删除磁盘阵列
(1)卸载挂载的目录
(2)停止磁盘阵列的活动
(3)清除超级块
(4)清除对磁盘阵列的引用
(5)更新RAID信息
3. 创建RAID 1
3.1. 创建磁盘阵列
(1)创建磁盘阵列
(2)查看磁盘阵列信息
(3)挂载文件系统
(4)保存RAID信息
(5)开机自动挂载RAID
3.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
(2)添加新硬盘
(3)更新磁盘阵列
4. 创建RAID 5
4.1. 创建磁盘阵列
(1)创建磁盘阵列
(2)查看磁盘阵列信息
(3)挂载文件系统
(4)保存RAID信息
(5)开机自动挂载RAID
4.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
(2)添加新硬盘
(3)更新磁盘阵列
4.3. 删除磁盘阵列
(1)卸载挂载的目录
(2)停止磁盘阵列的活动
(3)清除超级块
(4)清除对磁盘阵列的引用
(5)更新RAID信息
5. 创建RAID 10
5.1. 创建磁盘阵列
(1)创建磁盘阵列
(2)查看磁盘阵列信息
(3)挂载文件系统
(4)保存RAID信息
(5)开机自动挂载RAID
5.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
(2)添加新硬盘
(3)更新磁盘阵列
1. 创建RAID准备
在Linux中,使用mdadm工具来创建和管理RAID, mdadm是Multiple Devices Admin的缩写(简称MD),它是Linux下的一款标准的软件 RAID 管理工具。
首先,你需要确保Linux系统中已经安装了 mdadm。在大多数基于 Debian 的系统(如 Ubuntu)中,可以使用以下命令安装:
sudo apt-get install mdadm
利用VMWare Workstation或者VirtualBox中创建一个虚拟机,在该虚拟机中安装Ubuntu 64位操作系统,并创建7块虚拟硬盘:sba,sbb,sbc,sbd, sbe, sbf, sbg,挂载到该虚拟机中,其中,sba为系统盘,sbb,sbc, sbd, sbe, sbf, sbg作为创建RAID使用,如图1所示。
图1. 虚拟机的配置
2. 创建RAID 0
RAID 0 是一种简单的、无数据校验的数据条带化技术。一个RAID 0包含至少2个成员盘,RAID 0 将所在磁盘条带化后组成大容量的存储空间,数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问,如图2所示。
图2. RAID 0架构示意图
2.1. 创建磁盘阵列
(1)创建磁盘阵列
使用两个硬盘:/dev/sdb和/dev/sdc,创建一个名为/dev/md0的RAID 0磁盘阵列。
sudo mdadm - - create - -verbose /dev/md0 - -level=0 - -raid-devices=2 /dev/sdb /dev/sdc
或者
sudo mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]
(2)查看磁盘阵列信息
- 查看机器上所有磁盘阵列的信息:
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdb[0] 20953088 blocks super 1.2 512k chunks unused devices: <none> |
输出显示只有一个RAID 0磁盘阵列。
- 查看磁盘阵列的详细信息:
sudo mdadm --detail /dev/md0
或者
sudo mdadm -D /dev/md0
/dev/md0: Update Time : Sat May 4 15:35:37 2024 Layout : -unknown- Consistency Policy : none Name : myvm1:0 (local to host myvm1) Number Major Minor RaidDevice State |
输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。
- 查看磁盘阵列的摘要:
sudo mdadm -Q /dev/md0
/dev/md0: 19.98GiB raid0 2 devices, 0 spares. Use mdadm --detail for more detail. |
- 查看磁盘阵列中单个设备详细信息:
sudo mdadm -E /dev/sdb
sudo mdadm -E /dev/sdc
或者
sudo mdadm --examine /dev/sdb
sudo mdadm --examine /dev/sdc
- 查看单个磁盘阵列中单个设备摘要:
sudo mdadm -Q /dev/sdb
sudo mdadm -Q /dev/sdc
(3)挂载文件系统
- 在磁盘阵列上创建文件系统
sudo mkfs -t ext4 /dev/md0
或者
sudo mkfs.ext4 -F /dev/md0
- 在文件系统上创建挂载点文件夹(/mnt/md0)
sudo mkdir -p /mnt /md0
- 将磁盘阵列(/dev/md0)挂载到所创建文件夹(/mnt/md0)上
sudo mount /dev/md0 /mnt/md0
- 检查是否有新的可用空间
df -h –x devtmpfs –x tmpfs
(4)保存RAID信息
必须更改 /etc/mdadm/mdadm.conf 文件以确保该列表在启动时自动重新组装。通过以下命令序列自动搜索当前阵列、连接文件并更新初始RAM文件系统:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
(5)开机自动挂载RAID
为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:
echo ‘/dev/md0 /mnt/md0 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab
现在每次启动都可以自动添加所创建的RAID 0磁盘阵列并安装它。
2.2. 添加新设备到磁盘阵列
在磁盘阵列/dev/md0中增加一个硬盘/dev/sdd,磁盘阵列中的设备数量由2变为3。
sudo mdadm --grow /dev/md0 --raid-devices=3 --add /dev/sdd
参看机器上的磁盘阵列信息:
cat /proc/mdstat
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdd[3] sdc[1] sdb[0] 31429632 blocks super 1.2 512k chunks unused devices: <none> |
输出显示RAID 0磁盘阵列中的设备数量为3个:/dev/sdb, /dev/sdc和/dev/sdd。
调整文件系统的大小以使用额外的空间:
sudo resize2fs /dev/md0
resize2fs 1.45.5 (07-Jan-2020) /dev/md0 上的文件系统已被挂载于 /mnt/md0;需要进行在线调整大小 old_desc_blocks = 3, new_desc_blocks = 4 /dev/md0 上的文件系统现在为 7857408 个块(每块 4k)。 |
2.3. 删除磁盘阵列
(1)卸载挂载的目录
sudo umount /mnt/md0
其中,/mnt/md0为RAID 0磁盘阵列所挂载的目录。
(2)停止磁盘阵列的活动
sudo mdadm --stop /dev/md0
或者
sudo mdadm -S /dev/md0
mdadm: stopped /dev/md0 |
(3)清除超级块
- 查看磁盘阵列中是否存在超级块:
lsblk --fs
sda ├─sda1 │ vfat 0069-2021 511M 0% /boot/efi ├─sda2 │ └─sda5 ext4 a30b6613-548e-444e-858e-642c58dfc676 33G 27% / sdb linux_ myvm1:0 cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac sdc linux_ myvm1:0 cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac sdd linux_ myvm1:0 cf4a5e7e-aa7b-2778-fa93-383dfc23a0ac sde sdf sdg sr0 iso966 Ubuntu 20.04.1 LTS amd64 |
红色输出信息说明存在超级快。
- 清除磁盘阵列的超级块信息:
sudo mdadm - -zero-superblock /dev/sbb
sudo mdadm - -zero-superblock /dev/sbc
sudo mdadm - -zero-superblock /dev/sbd
或者
sudo mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd
(4)清除对磁盘阵列的引用
- 删除或注释掉 /etc/fstab文件中对磁盘阵列的任何引用。
首先,打开/etc/fstab文件:
sudo nano /etc/fstab
然后,在/etc/fstab文件中注释或删除下面对对磁盘阵列的引用语句(“#”为注释):
... # /dev/md0 /mnt/md0 ext4 defaults, nofail,discard 0 0 |
最后,保存并关闭文件。
- 删除或注释掉/etc/mdadm/mdadm.conf文件对磁盘阵列的任何引用.
首先,打开/etc/mdadm/mdadm.conf文件:
sudo nano /etc/mdadm/mdadm.conf
然后,在/etc/mdadm/mdadm.conf文件注释或删除对磁盘阵列的引用语句(“#”为注释):
... # ARRAY /dev/md0 metadata=1.2 name=myvm1:0 UUID=cf4a5e7e:aa7b2778:fa93383d:fc23a0ac |
最后,保存并关闭文件。
(5)更新RAID信息
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
3. 创建RAID 1
RAID1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,当数据写入到一个硬盘上时,数据的副本会同时存储在镜像硬盘上。一个RAID 1组存储的数据量只是单个硬盘的容量,另一硬盘保存的是数据的副本,相当于每一个字节的数据存储占用了两个字节的硬盘空间,所以说两个硬盘组成的RAID 1的空间利用率是50%,如图3所示。
图3. RAID 1架构示意图
3.1. 创建磁盘阵列
(1)创建磁盘阵列
使用两个硬盘:/dev/sdf和/dev/sdg,创建一个名为/dev/md1的RAID 1磁盘阵列。
sudo mdadm - - create - -verbose /dev/md1 - -level=1 - -raid-devices=2 /dev/sdf /dev/sdg
或者
sudo mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[f,g]
(2)查看磁盘阵列信息
- 查看机器上所有磁盘阵列的信息:
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sdg[1] sdf[0] 10476544 blocks super 1.2 [2/2] [UU] unused devices: <none> |
输出显示系统只有一个RAID 1磁盘阵列。
- 查看单个磁盘阵列的详细信息:
sudo mdadm --detail /dev/md1
或者
sudo mdadm -D /dev/md1
dev/md1: Update Time : Sun May 5 14:30:43 2024 Consistency Policy : resync Name : myvm1:1 (local to host myvm1) Number Major Minor RaidDevice State |
输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。
(3)挂载文件系统
- 在磁盘阵列上创建文件系统
sudo mkfs -t ext4 /dev/md1
或者
sudo mkfs.ext4 -F /dev/md1
mke2fs 1.45.5 (07-Jan-2020) 正在分配组表: 完成 |
- 在文件系统上创建挂载点目录(/mnt/md1)
sudo mkdir -p /mnt /md1
- 将磁盘阵列(/dev/md1)挂载到所创建目录(/mnt/md1)上
sudo mount /dev/md1 /mnt/md1
- 检查是否有新的可用空间
df -h –x devtmpfs –x tmpfs
文件系统 容量 已用 可用 已用% 挂载点 /dev/sda5 49G 14G 33G 29% / ...... /dev/sda1 511M 4.0K 511M 1% /boot/efi /dev/sr0 2.6G 2.6G 0 100% /media/myvm1/Ubuntu 20.04.1 LTS amd64 /dev/md1 9.8G 24K 9.3G 1% /mnt/md1 |
(4)保存RAID信息
必须更改 /etc/mdadm/mdadm.conf 文件以确保该列表在启动时自动重新组装。通过下面的命令自动搜索当前阵列、连接文件并更新初始RAM文件系统:
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md1 metadata=1.2 name=myvm1:1 UUID=254b4b71:1ab318a1:54677370:c7e5f4a1 |
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
(5)开机自动挂载RAID
为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:
echo ‘/dev/md1 /mnt/md1 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab
/dev/md1 /mnt/md1 ext4 defaults, nofail,discard 0 0 |
现在每次启动都可以自动添加所创建的RAID 1磁盘阵列并安装它。
3.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要删除的设备,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:
sudo mdadm --detail /dev/md1
如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将硬盘/dev/sdf标记为失败:
sudo mdadm --manage /dev/md0 --fail /dev/sdf
mdadm: set /dev/sdf faulty in /dev/md1 |
如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。
sudo mdadm --detail /dev/md1
/dev/md1: Update Time : Sun May 5 15:51:02 2024 Consistency Policy : resync Name : myvm1:1 (local to host myvm1) Number Major Minor RaidDevice State 0 8 80 - faulty /dev/sdf |
将出现故障的硬盘从RAID 1磁盘阵列中移除:
sudo mdadm --manage /dev/md1 --remove /dev/sdf
mdadm: hot removed /dev/sdf from /dev/md1 |
(2)添加新硬盘
接下来,我们增加新的硬盘到RAID 1磁盘阵列:
sudo mdadm --manage /dev/md1 --add /dev/sde
mdadm: added /dev/sde |
查看RAID 1磁盘阵列的信息,
sudo mdadm --detail /dev/md1
/dev/md1: Update Time : Sun May 5 16:10:49 2024 Consistency Policy : resync Name : myvm1:1 (local to host myvm1) Number Major Minor RaidDevice State |
(3)更新磁盘阵列
重新将磁盘阵列(/dev/md1)挂载到目录(/mnt/md1)加上
sudo mount /dev/md1 /mnt/md1
更新initramfs:
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
4. 创建RAID 5
RAID 5是一种旋转奇偶校验独立存取的阵列方式,它至少需要三块硬盘,其架构如图4所示。RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
图4. RAID 5架构示意图
4.1. 创建磁盘阵列
(1)创建磁盘阵列
使用三个硬盘:/dev/sdb、/dev/sdc和/dev/sdd,创建一个名为/dev/md5的RAID 5磁盘阵列。 sudo mdadm - - create - -verbose /dev/md5 - -level=5 - -raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
或者
sudo mdadm -C /dev/md5 -ayes -l5 -n3 /dev/sd[b,c, d]
(2)查看磁盘阵列信息
- 查看机器上所有磁盘阵列的信息:
cat /proc/mdstat
md5 : active raid5 sdd[3] sdc[1] sdb[0] 20953088 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] md1 : active raid1 sdg[1] sde[2] 10476544 blocks super 1.2 [2/2] [UU] unused devices: <none> |
输出显示系统有两个磁盘阵列,一个是刚刚创建的RAID 5磁盘阵列,另一个是上一节创建的RAID 1磁盘阵列。
- 查看RAID 5磁盘阵列信息:
sudo mdadm --detail /dev/md5
/dev/md5: Update Time : Sun May 5 18:39:22 2024 Layout : left-symmetric Consistency Policy : resync Name : myvm1:5 (local to host myvm1) Number Major Minor RaidDevice State |
(3)挂载文件系统
- 在磁盘阵列上创建文件系统
sudo mkfs -t ext4 /dev/md5
或者
sudo mkfs.ext4 -F /dev/md5
mke2fs 1.45.5 (07-Jan-2020) 正在分配组表: 完成 |
- 在文件系统上创建挂载点目录(/mnt/md5)
sudo mkdir -p /mnt /md5
- 将磁盘阵列(/dev/md5)挂载到所创建目录(/mnt/md5)上
sudo mount /dev/md5 /mnt/md5
- 检查是否有新的可用空间
df -h –x devtmpfs –x tmpfs
文件系统 容量 已用 可用 已用% 挂载点 |
(4)保存RAID信息
- 打开/etc/mdadm/mdadm.conf 文件:
sudo nano /etc/mdadm/mdadm.conf
- 在/etc/mdadm/mdadm.conf文件末尾添加如下信息:
ARRAY /dev/md5 metadata=1.2 name=myvm1:5 UUID=168f7d01:787aa7fc:74a95b58:3471d0a |
- 保存并关闭/etc/mdadm/mdadm.conf文件。
- 更新initramfs:
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
(5)开机自动挂载RAID
为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:
echo ‘/dev/md5 /mnt/md5 ext4 defaults, nofail, discard 0 0’ | sudo tee -a /etc/fstab
/dev/md5 /mnt/md5 ext4 defaults, nofail,discard 0 0 |
现在每次启动都可以自动添加所创建的RAID 5磁盘阵列并安装它。
4.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要移除的硬盘,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:
sudo mdadm --detail /dev/md5
如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将RIAD 5磁盘阵列md5中的硬盘/dev/sdb标记为失败:
sudo mdadm --manage /dev/md5 --fail /dev/sdf
mdadm: set /dev/sdb faulty in /dev/md5 |
如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。
sudo mdadm --detail /dev/md5
/dev/md5: Update Time : Mon May 6 15:13:26 2024 Layout : left-symmetric Consistency Policy : resync Name : myvm1:5 (local to host myvm1) Number Major Minor RaidDevice State 0 8 16 - faulty /dev/sdb |
将出现故障的硬盘从RAID 5磁盘阵列中移除:
sudo mdadm --manage /dev/md5 --remove /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5 |
(2)添加新硬盘
接下来,我们增加新的硬盘/dev/sdf到RAID 5磁盘阵列:
sudo mdadm --manage /dev/md5 --add /dev/sdf
mdadm: added /dev/sd |
查看RAID 5磁盘阵列的信息,
sudo mdadm --detail /dev/md5
/dev/md5: Update Time : Mon May 6 15:35:40 2024 Layout : left-symmetric Consistency Policy : resync Name : myvm1:5 (local to host myvm1) Number Major Minor RaidDevice State |
(3)更新磁盘阵列
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generi |
4.3. 删除磁盘阵列
(1)卸载挂载的目录
sudo umount /mnt/md5
其中,/mnt/md5为RAID 5磁盘阵列/dev/md5所挂载的目录。
(2)停止磁盘阵列的活动
sudo mdadm --stop /dev/md5
或者
sudo mdadm -S /dev/md5
mdadm: stopped /dev/md5 |
(3)清除超级块
查看磁盘阵列中是否存在超级块:
lsblk --fs
... sda |
红色输出信息说明存在超级快。
清除磁盘阵列的超级块信息:
sudo mdadm - -zero-superblock /dev/sbb
sudo mdadm - -zero-superblock /dev/sbc
sudo mdadm - -zero-superblock /dev/sbd
sudo mdadm - -zero-superblock /dev/sbf
或者
sudo mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd /dev/sdf
(4)清除对磁盘阵列的引用
- 删除或注释掉 /etc/fstab文件中对磁盘阵列/dev/md5的任何引用。
首先,打开/etc/fstab文件:
sudo nano /etc/fstab
然后,在/etc/fstab文件中注释或删除下面对对磁盘阵列的引用语句(“#”为注释):
... # /dev/md5 /mnt/md5 ext4 defaults, nofail,discard 0 0 |
最后,保存并关闭文件。
- 删除或注释掉/etc/mdadm/mdadm.conf文件对磁盘阵列的任何引用.
首先,打开/etc/mdadm/mdadm.conf文件:
sudo nano /etc/mdadm/mdadm.conf
然后,在/etc/mdadm/mdadm.conf文件注释或删除对磁盘阵列的引用语句(“#”为注释):
... # RRAY /dev/md5 metadata=1.2 name=myvm1:5 UUID=168f7d01:787aa7fc:74a95b58:3471d0a7 |
最后,保存并关闭文件。
(5)更新RAID信息
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
5. 创建RAID 10
RAID 10是将镜像和条带进行组合的RAID级别,先进行RAID 1镜像然后再做RAID 0,其价架构如图5所示。RAID 10组的硬盘数量总是偶数,最少需要4块硬盘(2个RAID1组成一个RAID0),一半硬盘进行用户数据写入,另一半保存用户数据的镜像副本,镜像基于分条执行。
图5. RAID 10架构示意图
5.1. 创建磁盘阵列
(1)创建磁盘阵列
使用4个硬盘:/dev/sdb、/dev/sdc,/dev/sdd、/dev/sdf,创建一个名为/dev/md10的RAID 10磁盘阵列,其中,/dev/sdb和/dev/sdc组成一个RAID 1,/dev/sdd和/dev/sdf组成一个RAID 1,两个RAID 1组成一个RAID 10。
sudo mdadm - - create - -verbose /dev/md10 - -level=10 - -raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sdf
或者
sudo mdadm -C /dev/md10 -ayes -l10 -n4 /dev/sd[b, c, d, f]
(2)查看磁盘阵列信息
- 查看机器上所有磁盘阵列的信息:
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] |
输出显示目前系统有2个磁盘阵列,一个是刚刚建立的RAID 10磁盘阵列,另一个是RAID 1磁盘阵列。
- 查看磁盘阵列的详细信息:
sudo mdadm --detail /dev/md10
或者
sudo mdadm -D /dev/md10
/dev/md10: Update Time : Tue May 7 07:29:27 2024 Layout : near=2 Consistency Policy : resync Name : myvm1:10 (local to host myvm1) Number Major Minor RaidDevice State |
输出显示 RAID 级别、阵列大小、各个部分的运行状况、阵列的UUID等信息。
(3)挂载文件系统
- 在磁盘阵列上创建文件系统
sudo mkfs -t ext4 /dev/md10
或者
sudo mkfs.ext4 -F /dev/md10
创建含有 5238272 个块(每块 4k)和 1310720 个inode的文件系统 正在分配组表: 完成 |
- 在文件系统上创建挂载点文件夹(/mnt/md10)
sudo mkdir -p /mnt /md10
- 将磁盘阵列(/dev/md10)挂载到所创建文件夹(/mnt/md10)上
sudo mount /dev/md10 /mnt/md10
- 检查是否有新的可用空间
df -h –x devtmpfs –x tmpfs
文件系统 容量 已用 可用 已用% 挂载点 ... /dev/md1 9.8G 24K 9.3G 1% /mnt/md1 /dev/sda1 511M 4.0K 511M 1% /boot/efi tmpfs 791M 20K 791M 1% /run/user/1000 /dev/sr0 2.6G 2.6G 0 100% /media/myvm1/Ubuntu 20.04.1 LTS amd64 /dev/md10 20G 24K 19G 1% /mnt/md10 |
(4)保存RAID信息
- 打开/etc/mdadm/mdadm.conf 文件:
sudo nano /etc/mdadm/mdadm.conf
- 在/etc/mdadm/mdadm.conf文件末尾添加如下信息:
ARRAY /dev/md10 metadata=1.2 name=myvm1:10 UUID=a38b437b:b21aee49:7f8f5b38:989df011 |
- 保存并关闭/etc/mdadm/mdadm.conf文件。
- 更新initramfs:
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generic |
(5)开机自动挂载RAID
为了在启动时自动挂载,请在可用的etc/fstab文件中添加新的文件系统挂载选项:
- 打开etc/fstab文件:
sudo nano /etc/fstab
- 在etc/fstab文件末尾添加如下信息:
/dev/md10 /mnt/md10 ext4 defaults, nofail, discard 0 0
- 保存并关闭/etc/fstab文件。
现在每次启动都可以自动添加所创建的RAID 10磁盘阵列并安装它。
5.2. 更换磁盘阵列中的硬盘
(1)移除故障硬盘
如果出现故障或需要更换硬盘,有时需要从磁盘阵列中移除硬盘。对于要移除的硬盘,必须首先将其标记为“失败”。可以使用mdadm --detail命令检查是否有失败的设备:
sudo mdadm --detail /dev/md10
如果要移除没有问题的硬盘,可以使用--fail选项手动将其标记为失败。下面的命令将RIAD 10磁盘阵列md10中的硬盘/dev/sdf标记为失败:
sudo mdadm --manage /dev/md10 --fail /dev/sdf
mdadm: set /dev/sdf faulty in /dev/md10 |
如果查看mdadm --detail的输出,可以注意到硬盘/dev/sdf已被标记为故障。
sudo mdadm --detail /dev/md10
/dev/md10: Update Time : Tue May 7 08:20:05 2024 Layout : near=2 Consistency Policy : resync Name : myvm1:10 (local to host myvm1) Number Major Minor RaidDevice State 3 8 80 - faulty /dev/sdf |
将出现故障的硬盘/dev/sdf从RAID 10磁盘阵列中移除:
sudo mdadm --manage /dev/md10 --remove /dev/sdf
mdadm: hot removed /dev/sdf from /dev/md10 |
(2)添加新硬盘
接下来,我们增加新的硬盘/dev/sde到RAID 5磁盘阵列:
sudo mdadm --manage /dev/md10 --add /dev/sde
mdadm: added /dev/sde |
查看RAID 10磁盘阵列的信息,
sudo mdadm --detail /dev/md10
/dev/md10: Update Time : Tue May 7 08:24:24 2024 Layout : near=2 Consistency Policy : resync Rebuild Status : 26% complete Name : myvm1:10 (local to host myvm1) Number Major Minor RaidDevice State |
(3)更新磁盘阵列
sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.15.0-105-generi |