我的公司需要设置一个开发服务器,我们已经有 2 个生产 RHEL 6 服务器在 L4 交换机下运行。
设置开发服务器的解决方案之一是简单地从其中一台生产服务器复制所有文件并稍加调整。
我以前从未做过,但听起来与鬼影成像类似……可以做到吗?推荐这样做吗?容易出错吗?
答案1
复制所有文件是可行的。这取决于操作系统和复制方法。
一个常见的问题是试图在系统运行时复制系统。通常至少有一些文件会被锁定,因此无法正确复制。在系统关闭时使用某种映像软件通常是最安全的(您提到的 Ghost 就是一个例子)
答案2
答案3
能做到吗?
绝对是的。我曾复制过一整台 Linux 服务器,只需将文件打包,tar
然后在目标服务器上再次提取即可。我记得的唯一警告是--numeric-owner
提取时必须记住使用。我不能代表其他操作系统和其他工具,但我想这在所有主要操作系统上都是可行的。
应该这么做吗?
这个问题的答案有点复杂。我不建议简单地克隆生产系统以用于开发。它很可能包含大量用户数据以及密钥材料,而您不希望它们出现在开发系统中。
但对于其他目的来说,克隆生产系统可能是一个好主意。
我建议创建生产系统克隆的方法是从备份中恢复。通过从备份中恢复可以避免对生产系统的性能影响,并且可以测试恢复过程,这是一件好事。
重要的是要将您从备份中恢复的克隆与外界隔离开来。由于它是从生产系统的备份中恢复的,因此它可能包含自动化作业,这些作业将与其他生产系统进行通信,并且它将具有这样做的凭据。
如果克隆系统与真实生产系统进行通信,则可能会造成很大的损害。
但如果你保持隔离,它就为你提供了测试恢复的系统是否按预期工作的机会。此外,这种恢复的系统可以成为新代码部署到生产环境之前进行最后一次测试的有用环境。这可能是你在实际用户数据上测试代码的唯一机会,否则它可能会破坏生产系统。
答案4
可行性
当然可以,因为使用非常规方法“安装”Linux 并不难。例如,您可以通过 SSH 使用 rsync 复制服务器。
- 将目标机器启动到“救援”映像,无论是使用 Red Hat DVD、Ubuntu 实时启动、Knoppix 还是其他什么。
- 对目标机器进行分区和格式化,并将文件系统挂载到 下
/target
。 - 通过 SSH rsync 所有相关文件系统(跳过
/proc
、/sys
、 swap )。 - 修复
/target/etc/fstab
,特别是如果分区由 UUID 引用。 - 适当调整主机名和网络配置。
- 安装引导加载程序。
步骤 3 可能包含多个 rsync 传递,可能借助源计算机上的 LVM 快照,最后一次传递时停止源计算机上的所有服务以确保数据一致性。
可取性和最佳实践
你能做并不意味着你应该做。我已经受到推崇的上述过程是进行数据中心迁移的一种方式。但是,您的用例完全不同。诉诸克隆会凸显一些缺陷:
- 虚拟化是一项很好的功能,可以使复制变得简单。
- 您有生产服务器的备份吗?为什么不直接恢复它们呢?这将是对您的备份恢复过程的一次很好的测试。
- 您是否有关于如何从头开始重现所有内容的文档?最终,您可能需要从头开始安装,也许是在您升级操作系统时。这将是对您的文档的良好验证。
- 更好的是,您是否有自动化功能可以帮助您重现设置? shell 脚本可以起作用; CFengine、Puppet、Chef 或 Ansible 等配置管理解决方案会更好。
如果您盲目地克隆生产服务器,您将失去一个宝贵的机会来明确了解服务器上正在运行什么。