Ubuntu - 使用前一个 lvm 的一部分创建新的 lvm

Ubuntu - 使用前一个 lvm 的一部分创建新的 lvm

我们环境中的一台服务器的根分区存储空间已满。请求是通过将 /home 重新分配到其自己的分区来释放空间。我们在 /var 中拥有多余的可用空间,因此我想删除其中的 20G 部分并用它来创建新分区。问题是我不太清楚该怎么做。

以下是 lsblk 的输出:

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda            8:0    0 278.5G  0 disk 
├─sda1         8:1    0     1M  0 part 
├─sda2         8:2    0     1G  0 part /boot
└─sda3         8:3    0 277.5G  0 part 
  ├─vg0-tmp  253:0    0    10G  0 lvm  /tmp
  ├─vg0-root 253:1    0    10G  0 lvm  /
  ├─vg0-opt  253:2    0     5G  0 lvm  /opt
  └─vg0-var  253:3    0 252.5G  0 lvm  /var

我预计我需要删除 /var,因此计划是将这些数据备份到服务器上的 NFS 挂载点,但服务器上还有其他数据,我们不能丢失。此外,我们有几台服务器需要执行此操作,因此我打算编写解决方案脚本(这也是我真正寻找不需要重建服务器的解决方案的原因,即使它有点复杂)。我预计它只是另一个被调用的 lvmsda3vg0-home其他东西。

这是整个流程中我唯一不清楚的部分,所以在花了几个小时筛选了非常古老的类似问题后,我想问一个新的问题。很高兴提供任何额外的澄清信息。谢谢!

更新显示其他诊断信息

:~$ sudo pvscan
  PV /dev/sda3   VG vg0             lvm2 [277.46 GiB / 0    free]
  Total: 1 [277.46 GiB] / in use: 1 [277.46 GiB] / in no VG: 0 [0   ]

:~$ sudo vgscan
  Found volume group "vg0" using metadata type lvm2

:~$ sudo lvscan
  ACTIVE            '/dev/vg0/tmp' [10.00 GiB] inherit
  ACTIVE            '/dev/vg0/root' [10.00 GiB] inherit
  ACTIVE            '/dev/vg0/opt' [5.00 GiB] inherit
  ACTIVE            '/dev/vg0/var' [252.46 GiB] inherit

:~$ df -Tlh
Filesystem           Type      Size  Used Avail Use% Mounted on
udev                 devtmpfs   32G     0   32G   0% /dev
tmpfs                tmpfs     6.3G  4.1M  6.3G   1% /run
/dev/mapper/vg0-root ext4      9.8G  6.4G  2.9G  70% /
tmpfs                tmpfs      32G  154M   32G   1% /dev/shm
tmpfs                tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                tmpfs      32G     0   32G   0% /sys/fs/cgroup
/dev/mapper/vg0-var  ext4      248G   62G  173G  27% /var
/dev/mapper/vg0-opt  ext4      4.9G  2.9G  1.7G  64% /opt
/dev/mapper/vg0-tmp  ext4      9.8G  136K  9.3G   1% /tmp
/dev/sda2            ext4      974M  309M  599M  35% /boot
tmpfs                tmpfs     6.3G     0  6.3G   0% /run/user/1059
tmpfs                tmpfs     6.3G  4.0K  6.3G   1% /run/user/1023

答案1

首先,确保你有一个备份或其他恢复计划。以防万一我或你疏忽了某事。

由于这是特殊情况,我无法创建一个“测试环境”并进行测试。一切都从我的脑海中消失了。

首先使用 将“/var”缩小到(例如) 200GB resize2fs,请参阅man resize2fs

我不确定在设备安装时是否可以做到这一点。

sudo resize2fs /dev/mapper/vg0-var 200G

接下来将逻辑卷大小调整为 205G(为了安全起见,请额外留出 5G),请参阅man lvresize

sudo lvresize -L 205G /dev/mapper/vg0-var

现在卷组“vg0”中应该有大约 50G 的可用空间,请检查:

sudo vgdisplay vg0

由于现在文件系统大小和逻辑卷大小之间仍然存在差异(200G 与 205G),您可以再次调整文件系统大小,以适合逻辑卷:

sudo resize2fs /dev/mapper/vg0-var

摘要:文件系统必须适合卷,并且卷不能小于里面的文件系统。

我认为您了解整体的工作流程,并且可以根据自己的需要调整数字。

lvresize有一个选项--resizefs(见man lvresize)可以一次性完成所有步骤,但我从未尝试过,因此我走了很长的路。也许你可以尝试一下并告诉我们。

提醒:请小心,任何错误都可能导致数据丢失。

相关内容