有什么创新的方法来缩小云提供商的实时 ext4 文件系统?

有什么创新的方法来缩小云提供商的实时 ext4 文件系统?

购买时飞沫,正如 DigitalOcean 所称呼他们的云虚拟机一样,它们总是配置有一个大的 ext4 分区。

我有一个需要 LVM 分区的应用程序,因此我需要一种创造性的方法来将根分区缩小到例如 25%,并将其余部分用于 LVM。我可以在一个新的实例上执行此操作,在那里我可以重新启动我想要的一切。

出于性能原因,我确实想避免使用循环设备,在该设备中,我在 ext4 之上的文件中创建 LVM 分区。

问题

有人能想出一个创造性的方法来缩小活动的 ext4 文件系统,并且重新启动就可以了?

答案1

尤其是对于 Digital Ocean,你将 droplet 启动到救援映像中。

为了较旧从外部内核启动的发行版,您可以选择自己将其启动到救援映像中。

为了更新从 droplet 内的内核启动的发行版,您可以提交支持请求,以将救援映像挂载为 ISO。完成操作后,更新支持请求,删除救援映像,然后重新启动。

答案2

看一眼这个答案以及各种搜索,但简短的回答是,除非可以卸载要调整大小的分区,否则您所说的内容在实时文件系统上是不可能的。由于在这种情况下似乎不可能做到这一点,因此重新启动到救援映像可能是最佳选择。

如果无法重新启动到救援映像,但可以重新启动到新映像,并且您有所需映像的良好备份,则可能有一种新颖的解决方案。似乎可以使用克隆兹拉使用克隆到较小分区选项将现有系统克隆到占用较少空间的新实例上。当然,这假设有足够的可用空间将 ext4 文件系统缩小到较小的分区上,但如果没有足够的可用空间来缩小分区,您可能就不会问这个问题了。

答案3

您可以缩小在线根分区无需重启:参考这个答案。这个答案写得很好,很容易理解。所以这适用于任何类型的专用或 VPS 解决方案。

TLDR;此解决方案意味着pivot_roottmpfs可以安全地卸载根分区并对其进行操作。完成后,您将pivot_root返回到新的根分区。

这允许对根文件系统进行几乎任何操作(移动它、更改文件系统、更改它的物理设备......)。

无需重启在此过程中,这样可以绕过无法缩小挂载ext4分区的限制。

我个人使用过这个,它在 Debian 系统上也运行得很好,只需要很少的修改。我很惊讶没有看到这个深入的解决方案与 stackexchange 网站上处理同一问题的许多问题有更多联系。

相关内容