我正在运行 2 个虚拟机管理程序。一个是 ESXi 4,另一个是 Hyper-V 2008 R2。
我的问题是:在不使用任何集中管理工具的情况下,在每个虚拟机管理程序下克隆机器的最干净和最简单的方法是什么。
谢谢。
答案1
Windows 系统考虑这样做:
- 创造“黄金”机器,获得你想要的一切。
- 使用Sysprep:从cmd.exe运行此命令;
sysprep -reseal
- 复制并粘贴每个新虚拟机的 syspreped 文件
- 启动、配置并享受。
这基本上就是我对 ESX4 所做的工作(我在 4 台服务器和 2 个 SAN 上安装了大约 100 台 Windows VM)。除了第 3 步,我将 VM 转换为模板,并从模板部署所有新机器。
Linux 系统考虑一下:
- 创造“黄金”机器,获得你想要的一切。
- 创建一个重置主机名、IP 地址等的脚本(将其保留在系统上)
- 复制并粘贴每个新虚拟机的文件
- 启动、配置并享受。
这更像是一个过程,而不是一项技术。但如果你想要一些简单的东西,这应该就足够了。稍后当你觉得需要开始扩展时,看看 puppet 或其他可能有帮助的自动化工具。
对我有用(tm)。
答案2
如果您的目标是不使用工具,只需复制并粘贴 vhd 和 vmdk 文件,然后创建一个指向新磁盘的新虚拟机。如果您想克隆机器的所有方面,这也是可能的,但需要做更多工作。
但是,有几件事需要考虑。快照意味着将有多个文件需要考虑。您需要复制整个文件树,然后将副本合并回单个映像。
此外,克隆可能会导致不同机器上的信息相同。例如,IP、机器特定信息、机器名称等。如果使用 Windows,您可以在克隆机器后使用 sysprep 来概括您的机器。至少,请确保更改 IP 和客户计算机名称。
您还可以考虑使用差异磁盘。将主磁盘切换为只读,然后创建指向主磁盘的差异磁盘。创建使用差异磁盘的新机器,一切就绪。
答案3
我赞同 Scott 关于差异磁盘的回答 - 当请求读取时,主磁盘更有可能位于 RAM 缓存中,这可以提高 i/o 速度(假设您受磁盘限制,许多服务器都是这样)。如果您有大量磁盘 i/o,则差异磁盘将有一些开销。
至于它节省磁盘空间 —— 这不是在生产中使用它的原因。缓存才是。