如何使用 RAID1 调整 Linux 分区大小?

如何使用 RAID1 调整 Linux 分区大小?

我有一个带有 130Gb LVM 映像的 Proxmox 磁盘。我将其移至 235Gb 磁盘。并在 Proxmox 中调整大小。完毕。

但在我的Linux发行版中,分区仍然是130Gb(磁盘变成235Gb)。

分区: /dev/sda1 /dev/sdb1

它们是 RAID1 卷的一部分:/dev/md0

在不丢失数据的情况下将其大小从 130Gb 调整为 235Gb 的正确方法是什么?

**root@debian:~# fdisk -l**

Disk /dev/sdb: 235 GiB, 252329328640 bytes, 492830720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd098f1da

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048 273436671 273434624 130.4G fd Linux raid autodetect
/dev/sdb2       273436672 291502079  18065408   8.6G fd Linux raid autodetect

Disk /dev/sda: 235 GiB, 252329328640 bytes, 492830720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x559572cb

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 273436671 273434624 130.4G fd Linux raid autodetect
/dev/sda2       273436672 291502079  18065408   8.6G fd Linux raid autodetect

Disk /dev/md0: 130.3 GiB, 139864309760 bytes, 273172480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/md1: 8.6 GiB, 9241100288 bytes, 18049024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


**root@debian:~# cat /proc/mdstat**
Personalities : [raid1]
md1 : active (auto-read-only) raid1 sda2[0] sdb2[1]
      9024512 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      136586240 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

unused devices: <none>


**root@debian:~# cat /proc/partitions**
major minor  #blocks  name

   8       16  246415360 sdb
   8       17  136717312 sdb1
   8       18    9032704 sdb2
   8        0  246415360 sda
   8        1  136717312 sda1
   8        2    9032704 sda2
  11        0    1048575 sr0
   9        0  136586240 md0
   9        1    9024512 md1

我尝试过但没有成功:

**root@debian:~# mdadm --grow --size max /dev/md0**
mdadm: component size of /dev/md0 unchanged at 136586240K
unfreeze

**root@debian:~# resize2fs /dev/md0**
resize2fs 1.43.3 (04-Sep-2016)
The filesystem is already 34146560 (4k) blocks long.  Nothing to do!

答案1

所以,如果有人需要的话。我找到了工作方式。我用了systemrescuecd

第一步将其sda1/2从 RAID1 中删除:

mdadm /dev/md0 --fail /dev/sda1
mdadm /dev/md1 --fail /dev/sda2
mdadm /dev/md0 --remove /dev/sda1
mdadm /dev/md1 --remove /dev/sda2

/dev/sda2在 Gparted 中删除后(通过 systemrescuecd)

从 Gparted 的 SDA1 中删除了标签“boot”和“raid”

然后,在命令行中:

Parted /dev/sda
resizepart
1
245000
quit

在 Gparted linux-swap 中创建 sda2。

mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2

sdb1/2 也是如此。

后:

e2fsck -f /dev/sda1
e2fsck -f /dev/sdb1

和:

mdadm --grow --size max /dev/md0

然后我在 GParted 中对 md0 使用了“check”。

完毕。工作正常。

答案2

尽管 mdadm Growth 命令是正确的,但它在这里没有帮助,因为您的分区仍然是旧的大小。

Disk /dev/sdb: 235 GiB, 252329328640 bytes, 492830720 sectors
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048 273436671 273434624 130.4G fd Linux raid autodetect
/dev/sdb2       273436672 291502079  18065408   8.6G fd Linux raid autodetect

您的磁盘是 235G,但分区只有 130G 大,mdadm 只能看到这 130G。

因此,您必须扩大分区,但下一个问题是,另一个分区已经存在并妨碍了。因此,您必须先移走第二个分区,然后才能扩展第一个分区。另一种选择是创建一个新的第三个分区并在顶部创建一个新的 RAID 并单独使用它们。

如果该 8G RAID 恰好是交换空间,您还可以暂时禁用交换、停止交换 RAID、删除这些分区,然后根据需要增长/重新创建。与用户数据不同,交换可以随意丢弃并重新创建,无需迁移步骤。

相关内容