我有两个密切相关的问题,所以我将把它们放在一个 SF 问题中:
问题 1
我有一个必须有最少停机时间的 Linux (debian) 服务器。磁盘有两个分区,一个是/
(ext3),一个是swap。我想搬到/home
它自己的分区,因为它最初是出于某种原因将所有东西都放在一个分区中构建的;但是,我不想让机器停机几分钟来调整磁盘大小并创建一个新分区。
我可以/
在使用时调整大小吗?
问题2
我想最终重新安装这台服务器。再次,无需停机。使用问题 1 提供的答案调整磁盘大小后,我能否在原始系统仍在线时以某种方式安装在新分区上。所以我可以简单地重新启动到新的操作系统并删除旧的操作系统分区并调整新分区的大小以接管旧的现在删除分区的空间。
感谢您对这个有点奇怪的问题的回答,令人不快的是,我对这个特定项目的服务器有点不足。不幸的是,我怀疑这无法做到,但我认为最好在得出结论之前检查一下。
一些笔记和问题:
- 也许有可能的解决方案可能是让我以某种方式启动到网络托管内核?
- 第二个磁盘是不可能的,不幸的是,这台机器位于一个非常不灵活的托管服务提供商中。
- 暂时摆脱掉期会让这成为可能吗?那会给我 2GB 的未分区空间来玩。
问题一:
来自 man resize2fs “如果文件系统已挂载,则可以使用它来扩展已挂载文件系统的大小,前提是内核支持在线调整大小。”
问题2:
是的,您可以在使用 chroot 运行时安装在不同的分区上。
给它买一个额外的磁盘。或者,如果您没有物理访问权限,请在另一台服务器在线时将其迁移到另一台服务器,然后进行快速切换。
回复编辑:
是的,还有其他选项可以帮助您减少停机时间。这取决于您的服务器正在做什么以及您有哪些选项。我提供了一个通用解决方案,即在两者都在线时将数据移动到另一台服务器,停止服务器 1,启动服务器 2 执行服务器 1 正在执行的操作。修复服务器 1,然后以相同的方式返回它。
如果没有网络,您可以进行 swapoff,使用 chroot 在交换中安装 linux,重新启动或尝试使用 kexec,然后快速缩小另一个分区并添加一个新分区。
为自己找一个新的托管服务提供商。正如 Ian 已经回答的那样,您不能缩小已安装的 ext3 文件系统,但是一旦您有了空间,您就可以在 chroot 中重新安装(使用 debootstrap)并重新启动以进行切换。
删除交换是为第 2 部分获取空间的一种可能性,因为如果您可以将重新安装所需的所有内容压缩到交换分区中,则可以启动该分区,调整当前根分区以使其更小并将其变成/home,在新释放的空间中创建一个新的交换分区,然后从那里继续。
考虑到必要的停机时间,以及把事情搞砸并弄得一团糟的机会,更不用说你做这一切的时间成本(包括在发生故障时清理所需的成本),我'd 首先解决您的托管情况。仅仅因为如果你真的需要你可以做这些事情并不意味着你应该被一个无用的供应商强迫去做。
哦,下次试试 LVM,只根据需要分配空间。ext3的在线扩展是天赐之物。