使用“parted”在软件 RAID 1 上分割分区

使用“parted”在软件 RAID 1 上分割分区
  • 我有一个软件 RAID 1。
  • 系统上已存储数据。
  • 我想缩小现有分区,然后用剩余空间创建一个新分区。
  • 我会用parted

我知道我无法对任何/dev/sd*设备进行分区,因为它会忽略并破坏 RAID 1。但为了确定......我可以/ dev/md*对代表 RAID 1 的设备进行分区吗?

/dev/md0
 - /dev/sda1
 - /dev/sdb1
/dev/md1
 - /dev/sda2
 - /dev/sdb2

... and so on

我的问题是:

我是否必须对相关 RAID 阵列的每个设备进行分区,或者我可以只对 RAID 阵列本身进行分区,然后软件 RAID 将其代理到单个设备吗?

如果我必须对任何单个设备进行分区,是否必须先取消 RAID,然后对它们进行分区,然后再次对它们进行 RAID?

缩小分区而不丢失数据

答案1

我处理此问题的方法是缩小 RAID,释放底层 HDD 上的空间,然后使用新释放的空间添加其他分区,以便合并到第二个 RAID 中。

收缩高层流程

关于缩小 RAID,以便您可以释放底层 HDD 上的空间,以便可以对它们重新分区,您可以执行类似于本指南中概述的步骤,标题为:如何调整 RAID 分区大小(缩小和增长)(软件 RAID)我过去就是这样做的。

例如,假设 RAID-1 为 40G:

  • 检查文件系统

    $ e2fsck -f /dev/md2
    
  • 缩小 RAID-1 的文件系统

    $ resize2fs /dev/md2 25G
    
  • 缩小 RAID

    $ mdadm --grow /dev/md2 --size=31457280
    
  • 现在将文件系统扩展到 RAID 中可用的最大容量

    $ resize2fs /dev/md2
    
  • (再次)检查文件系统

    $ e2fsck -f /dev/md2
    

此时,您应该能够使用诸如parted减小分区大小并回收其释放的空间之类的方法,然后将其添加到新分区中。

相关内容