在基于 KVM 的 VPS 中调整 LVM 大小

在基于 KVM 的 VPS 中调整 LVM 大小

我有一个 VPS(基于 KVM,不确定是哪种存储技术)已经大约两年了。它主要是一个学习机,一个实用代理,或者一个很少使用的VPN网关,或者其他什么——没有真正的工作,几天停机也没有问题。

所以两年前我购买了它之后,我使用 LVM 对其进行了分区,结果如下:

  • 1个10GiB物理磁盘
  • 两个分区:/boot 和 LVM,一起占用 100% 的磁盘空间
  • 在 LVM 分区上,有几个“普通”分区,例如 /、swap 和 /home

现在我已经从 ISP 购买了额外的空间。他们施展了魔法,重启后又多出了 10GiB 未分区空间。

我不太确定下一步该怎么做。我希望知道我有哪些选择,所以我启动了 SysResCD,但提供的 GParted 版本不支持 LVM。(GParted 附带的新 SysResCD 已经存在,支持 LVM。)

不管怎样,自从我听说 LVM 应该可以做一些事情更轻松,我怀疑这首先不是正确的方法。 (其实我什至怀疑使用LVM之内KVM 一开始可能是个疯狂的想法,因为此时此刻,它很可能看起来像:LVM 中的分区、KVM 中的分区、RAID 中一组物理磁盘上的另一个 LVM 中......)

那么下一步该怎么做:我应该要求 ISP 提供新的 SysResCD 并继续我开始的操作吗?或者现在更容易将所有内容移出 LVM 并修复安装?

答案1

无需移出 LVM,也无需 GParted 来支持执行 LVMish 操作。只需从附加空间创建一个新分区,然后将pvcreatevgextend的卷组放入其中,然后您就可以扩展现有的 LV 或创建新的 LV。

答案2

约翰的回答是一个高层次的概述,这对于我开始是必要的。在他的帮助下做了更多研究后,我实际上最终做了的是:

  1. 我创建了一个新的未格式化的分割

    我使用了提到的GParted。由于它不支持LVM,因此没有提供“Linux LVM”分区类型,我不得不选择未格式化的并手动更改类型。

    显然,立即(从实时系统)使用 cfdisk 或其他工具会容易得多。

    另外值得注意的是,与我的预期相反,新分区 没有得到最后一个号码如 /dev/sdaN 中所示。相反,即使 /dev/sda5 已经被占用,它也会得到 /dev/sda3。 IIRC,这适用于分区逻辑:主分区始终编号为 1-4,而扩展分区从 /dev/sda5 开始

  2. 然后使用 cfdisk 将分区类型更改为“Linux LVM”(0x8E),

  3. 接下来,我pvcreate /dev/sda3创建了实际的 LVM 分区

  4. 并将vgextend myvg /dev/sda3新分区包含在我的(单个)卷组中。

最后,对于每个“占用空间”的分区我

  1. 跑来lvresize /dev/myvg/mypart -L 1G调整它的大小(“mypart”是我很久以前在安装过程中给它的名称)

  2. resize2fs /dev/myvg/mypart实际调整大小文件系统 底层分区的大小(resize2fs 的默认行为)。

请注意,由于调整大小不需要重新安装(ext3/ext4、Linux 2.6),因此在我的情况下,整个操作可以在线执行,无需任何停机。 (是的,来自 Windows 世界的亲爱的偶尔读者!:))

答案3

您只需增加现有分区的大小,然后告诉 lvm 增加的大小,然后根据需要添加或调整任何逻辑卷的大小。

如果您有足够新的版本parted,那么您可以使用它的resizepart命令来调整保存 pv 的现有分区的大小。如果必须使用旧版本的parted,请使用以下命令将其置于扇区模式unit s,然后是print现有表,并记下当前分区开始的确切扇区,然后是rm该分区,然后使用 重新创建它mkpart。 ext2的默认文件系统就可以,并且确保使用完全相同的起始扇区,然后可以将磁盘上100%的空间分配给分区。如果您使用了resizepart那么您甚至不必重新启动,但如果您使用的是旧方法,则需要重新启动。之后,pvresize /dev/sda2将告诉 LVM 新的大小,您可以使用它来创建新卷,或使用 调整现有卷的大小lvresize。调整逻辑卷大小后,您需要使用 告诉文件系统resize2fs,假设您使用的是 ext[234]。

相关内容