我们有三台服务器,我们的计划是以这样的方式在这些服务器上运行一些虚拟机,这样如果其中一个节点崩溃了,我们可以快速或无缝地在另一个节点上运行备用服务器。
除了正常的网络连接外,它们还通过双 10Gbit NIC 互连,因此网络突袭/镜像应该不是问题。
客户虚拟机主要运行文本模式 Linux,但当然,能够启动非关键任务 Windows 客户虚拟机来运行 Visual Studio 或检查 Web 应用程序的 IE 兼容性也不会有什么坏处。
我们花了一些时间尝试使用 Stackops 和 Crowbar 来运行一些神奇的云设置,但它们提供的功能似乎太多了,而且对于我们的需求来说太复杂了。
我认为下一个候选者是 Ubuntu 11.04 服务器 + KVM + Ganeti + Drbd,除非您能提出我们错过的更好的解决方案的建议。
要求:
- 安装应该简单,或者至少即使不是开发团队的成员也可以理解
- 用于创建和管理虚拟机的浏览器界面是一个很好的奖励
- 单个节点的硬件故障应尽量减少在该节点上运行的虚拟机的停机时间
- 无需关闭虚拟机即可添加更多节点。
答案1
我认为这是一个简单的设置,但可能只是我的看法。
我会在所有节点上安装 VMWare Hypervisor,然后在 Windows Server 2008 机器上安装 VMWare VSphere Server,并且(可选)在同一台(或不同)服务器上安装 VMware VSphere 客户端(您将通过它管理一切)。为 HA(高可用性)设置节点,然后就大功告成了。这需要花钱购买许可证,但您至少可以在提供的 30 天评估期内免费测试它。
由于这是由 VMWare 提供的,因此它显然会有很多有用的资源,因为它们是最大的虚拟机软件解决方案之一,并且在整个互联网论坛上都有帮助。
根据您提供的标准,此解决方案应该满足第 1、2 和可能的第 4 个要求。第 4 个要求只有某些硬件才能满足(我认为)。要管理虚拟机(第 3 个要求),您需要使用 VMWare vSphere 客户端(特殊软件)。
如果您对此有任何疑问,请通过评论告诉我。
答案2
对于一个好的、完全开源的、强大的解决方案,我推荐 Xen Cloud Platform + CloudStack。
http://xen.org/products/cloudxen.html
http://cloudstack.org/blog/xcp-support-coming-to-cloudstack-in-the-next-release.html
答案3
为了延续 David 的出色回答(如果我有预算,我就会这样进行全面的公司设置!),您可以构建一个他所描述的“经济”版本设置,如下所示:
在网络上拥有一个具有足够磁盘空间的 Linux 服务器,用于存储所有虚拟机及其所有数据的完整副本。通过 NFS 共享提供此服务器上的存储空间。
在每个 ESXi 服务器上创建一个 NFS 数据存储,并将其指向 NFS 共享。
使用贫民窟VCB脚本在这里(http://communities.vmware.com/docs/DOC-8760) 将实时虚拟机备份到 NFS 数据存储。您必须决定安排脚本运行的频率 - 如果您通过 cron 作业运行它,则需要了解如何使 cron 作业在 VMware 服务器重启后继续存在。
如果主服务器出现故障,您可以使用“添加到库存”菜单选项启动另一台服务器上的 NFS 共享上的备份副本。
如果您使用免费的 ESXi 许可证,这是一个非常低成本的设置。折衷方案是:
- 无即时失败
- 发生停电时需要人工干预
我已经在内部测试了这个设置并且它对我们来说效果很好。