如何在不破坏 CentOS 中当前数据的情况下将硬盘扩展到 LVM

如何在不破坏 CentOS 中当前数据的情况下将硬盘扩展到 LVM

我们有一台 CentOS 服务器,磁盘容量为 2TB。当我们拿到这台“天知道为什么”的服务器时,分区如下:

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  1.8T  0 disk 
├─sda1          8:1    0    2M  0 part 
├─sda2          8:2    0   28G  0 part /
├─sda3          8:3    0  9.3G  0 part [SWAP]
└─sda4          8:4    0  1.8T  0 part 
  ├─vg00-usr  253:0    0   20G  0 lvm  /usr
  ├─vg00-var  253:1    0   20G  0 lvm  /var
  └─vg00-home 253:2    0   15G  0 lvm  /home

我们真正使用的是 vg00-var,其余的我甚至不确定它们的作用或存在的原因。话虽如此,sda4 与之关联的空间为 1.8T,我们希望将所有可用空间移动到 vg00-var,这样就不会破坏当前所在的站点。

我检查了很多帖子,但似乎没有一个解决这个特定的情况(话虽如此,我不是这个领域的专家)。

有人可以帮忙吗?

谢谢。

答案1

lvextend --resizefs --size 40g /dev/vg00/var

从容量规划中选择略大于预期用途的大小。减小文件系统要困难得多,实际上对于 XFS 来说是不可能的。

这种布局实际上相当合理。数据卷 /var 位于 LVM 上,以提供灵活性。卷组空间大部分未分配,允许扩展和创建卷,而无需调整 LUN 大小或重新分区。

答案2

“想要移动所有可用空间”这个说法有点模糊,但是如果您的意思是将所有可用空间分配给 /var,我会使用 vgs 显示该 vg00 卷组上当前可分配的可用空间大小,然后按照 John 的建议执行 lvextend。您可以指定最终文件系统的大小(在 John 的示例中为 40g),或者如果您想分阶段添加,您可以使用加号指定额外的大小:+40g ..这会将 40g 添加到 20g,从而得到一个 60g 的文件系统。

我还喜欢 John 使用单个命令行,而不是将命令分成两个(lvextend 和 resize2fs)。

完成后,再次使用 vgs 查看现在有多少可用空间,并使用 df /var 查看文件系统的新大小。

顺便说一句,您需要以 root 身份才能运行上述某些命令。

相关内容