我们有一台 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 身份才能运行上述某些命令。