sta*_*ick 5 mdadm software-raid
按题目。
使用 mdadm 从 RAID-1 转换为 RAID-5 时,为什么 RAID 1 阵列必须包含 2 个设备且不超过 2 个设备?我不明白 RAID 足够强大,无法查明原因。
背景:我的三个 RAID-1 阵列每个包含 3 个设备,我的目标是从两个阵列中移除一个设备,并将备用设备连接到剩余的 RAID-1 阵列。这将留下两个 RAID-1 阵列,每个阵列具有 2 个设备,其余 RAID 阵列具有 4 个设备。目标是采用 4 个设备的 RAID-1 阵列并将其转换为 RAID-5。这不是关于哪些 RAID 架构更好或更坏的讨论,只是将 RAID-1 阵列更改为 RAID-5 阵列的过程。
Kai*_*zke 11
将 N 盘 RAID1 升级到 N 盘 RAID5 是可能的,尽管有点繁琐:
从 RAID1 中删除除两个磁盘以外的所有磁盘。为此,请重复执行:
mdadm ARRAY --fail DEVICE
mdadm ARRAY --remove DEVICE
Run Code Online (Sandbox Code Playgroud)
其中ARRAY是阵列的 ID(如 /dev/md2),DEVICE是该阵列的分区(如 sdc2 或 sdd2)。
将 RAID1 的大小更改为两个磁盘:
mdadm --grow ARRAY -n 2
Run Code Online (Sandbox Code Playgroud)
将阵列类型从 RAID1 更改为 RAID5:
mdadm --grow ARRAY -l 5
Run Code Online (Sandbox Code Playgroud)
现在再次添加在第一步中删除的所有磁盘:
mdadm ARRAY --add-spare DEVICE DEVICE ...
Run Code Online (Sandbox Code Playgroud)
请注意,与 for--fail和不同--remove,您需要指定DEVICEs 的完整路径名。
将 RAID5 增加到可用数量DISKS:
mdadm --grow ARRAY -n DISKS
Run Code Online (Sandbox Code Playgroud)
这是唯一缓慢的操作,因为它需要移动磁盘上的所有数据并生成奇偶校验。然而,当它正在进行时,您仍然可以在计算机上工作,但您应该预料到磁盘性能会下降。
增长操作完成后(用于cat /proc/mdstat查看其进度),您可以调整文件系统的大小。假设您使用 ext4,则过程如下:
resize2fs ARRAY
Run Code Online (Sandbox Code Playgroud)
由于重新排列数据的时间较长,因此删除 RAID1,然后创建一个新的 RAID5(仍然需要创建奇偶校验,但这比重新洗牌所有数据更容易的操作)并恢复 RAID5 通常会更快。来自备份的数据。
没有从 RAID-1 到 RAID-5 的迁移路径,除了有两个磁盘的特殊情况,其中 RAID-1 方便地与 RAID-4 和 RAID-5 相同(因为单个位的奇偶校验是位本身),因此迁移代码只更改 RAID 级别,而不会触及数据。
转换为 RAID-5 后,您可以向阵列添加更多磁盘——此迁移路径存在。
因此,您的迁移计划将是:
/usr/share/mdadm/checkarray …)--grow … -l5)--grow … --add …)--grow … -n4)。¹ 这很棘手,因为没有减少磁盘数量的好方法。您可以从救援系统覆盖 RAID 超级块并使用该--assume-clean选项来避免重建,但您需要使用与以前相同的超级块版本(mdadm --examine …在其中一个组件设备上使用以找出答案)。
| 归档时间: |
|
| 查看次数: |
13839 次 |
| 最近记录: |