如何扩展lv而不丢失分区内其他lvs上的数据

如何扩展lv而不丢失分区内其他lvs上的数据

我想将我的逻辑卷扩展到/home:

lsblk
NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                       11:0    1 1024M  0 rom
xvda                     202:0    0  125G  0 disk
├─xvda1                  202:1    0  500M  0 part /boot
└─xvda2                  202:2    0 74.5G  0 part
  ├─centos_jenslv05-root 253:0    0   48G  0 lvm  /
  ├─centos_jenslv05-swap 253:1    0    3G  0 lvm  [SWAP]
  └─centos_jenslv05-home 253:2    0 23.5G  0 lvm  /home

正如您所看到的,xvda 有 125GB,而 xvda1 + xvda2 总共只有 75GB。额外的 50GB 是我想添加到 centos_jenslv05-home 逻辑卷的内容。

PVS

pvs
  PV         VG              Fmt  Attr PSize  PFree
  /dev/xvda2 centos_jenslv05 lvm2 a--  74.51g    0

VGS

vgs
  VG              #PV #LV #SN Attr   VSize  VFree
  centos_jenslv05   1   3   0 wz--n- 74.51g    0

LVS

lvs
  LV   VG              Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos_jenslv05 -wi-ao---- 23.45g
  root centos_jenslv05 -wi-ao---- 48.04g
  swap centos_jenslv05 -wi-ao----  3.02g

所以基本上我需要扩展分区 dev/xvda2,将其添加到 PV,将其添加到 VG,然后添加到安装到 home 的 LVM。

但是,我不想丢失根 lv (/) 上的数据,它与主 lv (/home) 位于同一分区。有没有一种方法可以只扩展一个逻辑卷,而不触及其他逻辑卷?如果不可能,并且我需要删除分区,然后使用添加的空间重新创建它,备份 /root 和 /home 上的所有文件就足够了吗?我可以重新创建分区,然后重新创建 lvs 并将文件复制回 lvs 吗?它会按原样启动服务器吗?安全吗?

我知道在 Windows 上可以在不接触其他卷的情况下扩展逻辑卷,但不确定在 Linux 上是否也同样方便。系统是Centos 7。

答案1

有一个指南这里解释你的两个选择。

任何一个

  1. 扩展现有的pvwith gparted,调整vgwith 的大小vgextend /dev/xda2,然后扩展你的lv.

或者

  1. pv通过在 xda 上未使用的空间中创建新卷 (xda3) 来添加新分区,将新分区添加到其中vg,然后将其扩展lv到新空间。

无论哪种情况,您都需要调整文件系统的大小以使容量可用,但您可以lvextend -r在调整大小时使用。

查看您的分区架构,可用空间将与 xda2 相邻,并且任一选项都是可行的,尽管选项 1 更美观(请参阅上面链接中的 @Patrick 帖子)。

由于您实际上并未接触root(逻辑)分区,因此您应该能够在实时系统中执行此操作。如果没有,那么您将需要一个实时 USB。

相关内容