我们有一位系统管理员正在克隆我们的一台生产服务器,即 VMWare VM。克隆它的总时间似乎约为 2 小时。当他进行克隆时,服务器仍在运行(提供 Web 应用程序)。
显然,在这两个小时内,服务器的硬盘和内存中的内容都在发生变化。我们如何才能获得机器的一致副本?或者我们最终会得到不一致的副本?我们最终会得到一个虚拟机,它的一部分类似于早上 7 点时的原始虚拟机,另一部分反映了早上 8 点时的原始虚拟机,等等?
如果重要的话,我们正在运行 VMWare vCenter Server 4.1。
答案1
你所说的就是“热克隆”,进行这样的克隆会导致两个副本之间出现一定程度的不一致。据我所知,包括商业和本地热克隆实现在内的所有方法都涉及拍摄快照(以某种形式),然后克隆该快照。这会将磁盘冻结在某个时间点,这样你的磁盘就保持一致,但确实会导致克隆来自过去的某个时间点。
答案2
按理说,整个过程应该是:
- 创建正在运行的机器的快照;这将释放底层磁盘文件,并将新的数据更改写入增量文件
- 将主磁盘文件复制到新机器
- 创建正在运行的机器的另一个快照;这将释放增量文件,并将新的数据更改写入新的增量文件
- 将旧的增量文件复制到新机器
- 重复此操作,直到增量文件足够小,可以进行复制,所花费的时间对源服务器的影响可以忽略不计
- 编辑克隆的配置文件,以便它知道复制的增量文件
- 将克隆的增量文件合并回克隆的主磁盘文件
根据执行克隆所使用的工具,它可能不会执行增量文件循环,因此您最终会根据服务器在第一个快照开始时的样子获得克隆。
即使它执行了增量循环,从技术上讲,您仍然会得到暂时落后于源服务器的克隆。
实际上,制作与源服务器完全匹配的克隆的唯一方法是在源虚拟机关闭时进行复制。