增加 lvm2 分区的大小以使用所有未分配的磁盘空间

增加 lvm2 分区的大小以使用所有未分配的磁盘空间

我已将较小的驱动器想象为较大的驱动器。我现在需要增加分区/卷组的大小(正确的术语?)。该驱动器有约 1.6 TiB 的未分配空间,我希望 /dev/sdb3 使用该空间,然后将增加的空间分配给 /dev/cl/root。以下是通过谷歌搜索拼凑而成的一些信息。前四块来自 gparted。

/dev/sdb1    fat16        /boot/efi  200 MiB
/dev/sdb2    ext4         /boot      1.0 GiB
/dev/sdb3    lvm2 pv      cl      221.68 GiG
unallocated  unallocated            1.60 TiB

$ sudo lvmdiskscan

  /dev/sdb1       [     200.00 MiB] 
  /dev/sdb2       [       1.00 GiB] 
  /dev/sdb3       [     221.68 GiB] LVM physical volume
  /dev/cl/var     [     100.00 GiB] 
  /dev/cl/swap    [       2.00 GiB] 
  /dev/cl/root    [     110.00 GiB] 


$ sudo lsblk
    NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb               8:16   0   1.8T  0 disk 
    ├─sdb2            8:18   0     1G  0 part 
    ├─sdb3            8:19   0 221.7G  0 part 
    │ ├─cl-swap     253:1    0     2G  0 lvm  
    │ ├─cl-root     253:2    0   110G  0 lvm  
    │ └─cl-var      253:0    0   100G  0 lvm  
    └─sdb1            8:17   0   200M  0 part 


$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb3
  VG Name               cl
  PV Size               221.68 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              56749
  Free PE               2478
  Allocated PE          54271
  PV UUID               Uohq5b-Ubkr-f51E-y1tf-vfAi-JA06-dKWx7A

我尝试通过使用sudo pvresize /dev/sdb3输出来增加物理尺寸

  Physical volume "/dev/sdb3" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

虽然这看起来并没有起到什么作用。我无法在 gparted 中调整 /dev/sdb3 的大小。我尝试使用增加卷组

$ sudo vgextend cl /dev/sdb3
  Can't open /dev/sdb3 exclusively.  Mounted filesystem?

我不确定为什么失败,因为我认为 /dev/sdb3 没有安装,因为物理驱动器连接到另一个用于镜像硬盘驱动器的 Linux CentOS 7 系统中。

如何调整大小/扩展/dev/sdb3以使用未分配空间的重置,然后增加 /sdb3/cl-root 以使用所有新空间?

我看到的一些回复显示在未分配的空间中创建一个新分区,然后将其添加到组/卷中,但我希望增加 /dev/sdb3 以使用剩余的未分配空间,然后增加 /sdb3/cl- 的大小根。

答案1

首先,您必须编辑分区表才能实际扩展sdb3分区。为此,您可以使用gpartedpartedgdisk或。fdisk

如果您使用gdiskfdisk,则只有当您告诉程序执行此操作时,更改才会写入分区表,因此使用单个gdisk/会话,您可以查看开始的fdisk确切磁盘位置(块/扇区号) ,sdb3删除分区sdb3重新创造它与完全相同的起点和一个新的端点,然后将更新的分区表写入磁盘。

如果内核没有立即接受新的分区大小,您可能必须sudo partprobe /dev/sdb在此时运行。

一旦新的分区大小在 中可见/proc/partitions,您就可以sudo pvresize /dev/sdb3按照之前的操作继续操作。之后,sudo pvdisplay应指示增加的PV sizeTotal PEFree PE值。

那时,您可以用来sudo lvextend -r -L <desired new size> /dev/cl/root扩展您的 LV。

由于sdb3PV 已经是卷组的成员cl,因此在这种情况下不需要vgextend:仅当您将新的、未使用的 PV 添加到现有卷组中时才使用它。由于 VG 当前处于活动状态并且其所有 LV 均已安装/正在使用,因此 PV 被锁定以供 LVM 进行独占访问,因此即使该vgextend工具也无法直接访问它。如果您尝试vgextend通过从外部介质引导来执行此操作,以便卸载 LV,您将看到一条错误消息

Physical volume '/dev/sdb3' is already in volume group 'cl'

反而。

相关内容