我们有一台服务器,其中已安装 Linux(CentOS 6)+磁盘 1 上的启动分区,以及一个空磁盘 2。我们想要设置的是:
- 一个磁盘(1 个或 2 个,无所谓):
- 快照 LVM 中的主系统(约 50%)
- LVM 中的备份空间(约 50%)
- 其他磁盘
/home2
以及快照 LVM 中的 MySQL 数据(约 50%)- LVM 中的备份空间(约 50%)
- 任一磁盘
/boot
问题是,我们如何才能将主系统移到 LVM 上,而无需从头开始安装?服务器是托管的,因此我们对操作系统安装过程没有太大影响。我们有:
- 当然是常规 SSH
- 救援模式,技术支持人员会为我们启动救援操作系统
- 不远程KVM
我们的想法是:
- 在运行的系统中,在磁盘 2 上设置 LVM
- 重新启动到救援模式并将主系统复制到磁盘 2(将 /boot 留在磁盘 1 上)
- 更新 grub 并
/etc/fstab
- 重新启动进入主系统,现在位于磁盘 2
/home2
擦除磁盘 1 并在磁盘 1 上为 MySQL + 设置 LVM
但欢迎对该计划提供提示/验证。
注意:服务器上目前还没有重要数据,但丢失我们已经完成的配置会有点不方便。
答案1
以下是过程描述。他们在更改期间使用了一个大型交换分区来托管根文件系统。您不需要这个技巧,因为您有第二个硬盘。
一个棘手的问题:您的服务器是否支持从第二块硬盘启动?您可以将其设置为从第二块硬盘启动吗?我认为您可以简化解决方案,而不更改 /boot 分区。引导加载程序还不喜欢 LVM,因此您仍然需要一个常规分区来托管您的 /boot。保留 /boot 并仅更改根文件系统位置可简化该过程。在迁移过程中,您可以在 grub.conf 中拥有 2 个条目:根在旧位置和 LVM 上。如果出现问题,您可以启动到救援映像,更改默认条目并再次进行迁移。
是的,我完全同意 poige 的观点。在开始使用真实系统之前,请先在虚拟环境中进行测试。
答案2
有些任务比解释如何做更容易完成。:-) 我认为 LVM 支持的 initrd 是主要关键点。在尝试启动之前,您最好验证这一点。如今,使用 VirtualBox 等软件可以轻松完成此类测试。