JD *_*ias 4 partition mdadm raid5 swapping
所以我得到了在 MDADM RAID5 中将较小的硬盘驱动器换成较大的硬盘驱动器的要点:
失败并移除一个驱动器。
mdadm -f /dev/md0 /dev/sdd1 mdadm -r /dev/md0 /dev/sdd1
关机,交换硬盘,分区并添加回阵列
mdadm --add /dev/md0 /dev/sdd1
等待重新同步并继续所有剩余的驱动器。
最后增长数组
mdadm --grow /dev/md0 --size=max
我的问题是你如何对新的更大的驱动器进行分区?我在网上看到了不同的说明,我知道它们中的大多数已经过时了,所以我想看看最近是否有人这样做了。
将新驱动器分区为与阵列中的旧驱动器大小相同
将新驱动器分区为驱动器的最大大小。
我有一个非常简单的设置,4 个驱动器,每个 RAID5 350GB。我在每个驱动器上只有一个分区并构建了一个阵列。这是一个数据存档磁盘,因此不需要多个阵列或分区。
我正在考虑的另一种方法是备份到一个驱动器,构建一个 3 驱动器阵列,将备份驱动器添加到阵列。那是:
这样更安全吗?快点?想法?
当前版本的 md 工具支持在保持 RAID(以及冗余)工作的同时更换设备。
您需要能够在计算机上至少再添加一台设备,但在此之后,您无需在重建时将阵列保持在降级状态数小时(或数天,如果是当前的多 TB HDD)。
首先,您需要添加一个磁盘作为阵列的备用磁盘(假设 RAID 中有 4 个驱动器):
mdadm /dev/md0 --add /dev/sde1
Run Code Online (Sandbox Code Playgroud)
然后,您告诉 Linux 开始将数据移动到新驱动器:
mdadm /dev/md0 --replace /dev/sda1 --with /dev/sde1
Run Code Online (Sandbox Code Playgroud)
更换完成后,设备被标记为故障,因此需要将其从阵列中移除:
mdadm /dev/md0 --remove /dev/sda1
Run Code Online (Sandbox Code Playgroud)
对阵列中的其他驱动器重复此操作。
如果您有能力连接多个额外的驱动器,您甚至可以同时连接所有驱动器,同时保持阵列在线和完全冗余。因此,以下是一组有效的命令:
mdadm /dev/md0 --add /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1
mdadm /dev/md0 --replace /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 --with /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1
Run Code Online (Sandbox Code Playgroud)
等到完成,删除旧驱动器:
mdadm /dev/md0 --remove /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Run Code Online (Sandbox Code Playgroud)
最终,您将需要“raid 分区”来获得磁盘的最大大小;无论您在重建时执行此操作还是在更新阵列后重新分区,都没有关系。
我最近做了类似的事情,速度相当快。请注意,您可以设置 raid 重建速度 (/proc/sys/dev/raid/speed_limit_min/max),默认情况下它仅限于后台重建。
请注意,您的计划中缺少一个步骤:您将需要指示 md 层之上的事物也增长(文件系统,或 lvm pv,或...)
但是,如果您可以做到这一点(可以使系统停机更长时间,投入更多时间并拥有足够的磁盘插槽),那么将所有内容复制到备份磁盘上可能会更安全。数据始终清晰可见,这让我感到欣慰。
归档时间: |
|
查看次数: |
9618 次 |
最近记录: |