有人能告诉我是否可以将多台物理服务器集中起来运行弹性虚拟化环境吗?我们的服务器对客户来说越来越重要,我们希望尽一切努力提高硬件故障时的弹性。我使用过桌面虚拟机,但不清楚企业级虚拟机能做什么。
理想情况是在我们的数据中心中拥有几台物理服务器。这些服务器之间将共享几台虚拟机来运行 Web 服务器、应用程序服务器和数据库服务器。如果一台物理服务器发生故障,虚拟机应切换到其他服务器之一并继续运行而不会中断。
这能实现吗?我意识到即使是 Google 也时不时会宕机,所以我并不追求完美,而只是追求最佳解决方案。
答案1
这是可行的,我们也做了类似的事情,只是没有自动化部分。
正如 @ewwhite 指出的那样,关键是要有一个对多个主机服务器可见的共享存储池,因此如果一个主机发生故障,也不会有太大影响,因为另一个主机可以接管。设置您所询问的那种不引人注意、无中断的自动故障转移并不容易(或不便宜),坦率地说,至少对于绝大多数用例而言,它带来的麻烦比它的价值要多得多。现代硬件不会经常出现故障,除非设置得非常糟糕,因此,确保硬件设置正确并且处于设备操作范围内的环境中,您将获得更多的好处。
实际上,我们只将系统的故障转移和高可用性功能用于两件事。第一是灾难恢复(如果我们的主要站点断电或爆炸,或者发生其他情况,我们会将关键部件镜像到第二个设施),第二是避免维护窗口。我们使用刀片服务器和 ESX/vSphere,由于能够故障转移到辅助站点,并且可以轻松使用 vMotion 在主机之间移动虚拟机,因此我们几乎可以不中断服务就完成所有工作。
我会首先专注于完成设置 - 一旦您能够(手动)将事情转移到任何地方,您可能会决定让它自动工作比它的价值更昂贵和困难。这听起来很简单,理论上很棒,但在实践中,让集群或分布式客户机设置中的一切正常工作可能真的很痛苦。
答案2
这是虚拟化的一个很好的理由。随着应用程序可用性(而不是单个(物理)服务器的正常运行时间)对企业变得越来越重要,许多组织发现他们可以通过虚拟化获得更高级别的可靠性。
我将使用 VMWare 和 Xen 作为示例,但通过某种形式的共享存储(对两个或多个主机系统可见),虚拟化客户机可以分布在物理服务器之间并实现负载平衡。重点开始放在共享存储解决方案、管理和环境中的网络/互连的质量上。
但是,需要注意的是...您应该评估哪种类型的硬件和环境情况会构成威胁。优质的服务器级设备包括许多冗余(风扇、电源、RAID,甚至 RAM)...现代硬件没有只是失败经常如此。因此,如果配置高端服务器可以帮助消除 90% 的潜在问题,那么就不要反应过度,不要构建不必要的复杂环境。
答案3
听起来 VMware FT 可能就是您要找的东西。它使每个虚拟机的“影子实例”与每个源虚拟机保持同步,并允许在两个实例之间进行即时故障转移。更多信息请见:
http://www.vmware.com/products/fault-tolerance/overview.html
答案4
任何中断部分都是一个相当棘手的问题,特别是今天您要从看似没有弹性的标准服务器开始?
虚拟化是一种选择,但为了充分披露,你应该在以下选项之间做出明智的决定,
- 小干扰,按几个顺序分钟。
- 无中断(在说话毫秒)。
(2)通常非常,
- 昂贵的- 你需要 N+N 硬件容量。也就是说,对于你正在运行的每台服务器,你都有一个完整的备用服务器,运行完全相同的软件,随时准备在发生意外时接管硬件失败。
- 限制性- 您使用的软件可确保机器“同步”,通常通过以太网。这意味着如果您的网络速度变慢,它将要放慢应用程序的速度,以确保一切保持同步。为了确保这些机器不会发生这种情况有在同一个数据中心可以获得任何类型的性能。
使用 VMware-FT 进行虚拟化是一种解决方案。Xen 有与 everRun 相当的解决方案,还有裸机等效方案(无虚拟机管理程序)。
(1)可能就是你所需要的(聚类)
- 根据应用程序的不同,这可以提供与 (2) 相同的故障。例如,像 NetApp 这样的 NFS 服务器可以提供无缝故障转移,客户端可以继续运行而不会出现故障,只有短暂的中断。
- “略微”提高对软件故障的容忍度。由于非确定性 CPU 指令并非步调一致,因此不会触发竞争条件等大量错误。
- 可以让你运行不同版本的软件。例如,将集群的节点 1 升级到 Windows Server 2008 的 Service Pack 1,确认无误后,将节点 2 升级到 Windows Server 2008 的 Service Pack。
我并不是要推销集群与容错、裸机与虚拟机管理程序的比较,但是当谈到高可用性时,希望上述内容能够说明在实施之前您需要首先回答的大量问题。
- 用户能容忍的最大停机时间是多少(现实一点)
- 你能容忍哪些领域的中断?物理服务器?软件?第 2 层网络?第 3 层?数据中心?
- 应用程序的性能要求是什么?虚拟化并不适用于所有情况,而且直到最近,对时钟敏感的应用程序(如 Active Directory)才被虚拟机接受(这当然不是常见的做法)。无论您是否使用最新的虚拟机管理程序和芯片组,虚拟化仍然会对性能、吞吐量和延迟产生影响。
- 您需要在预算范围内工作。
这些要求可以转化为诸如 MTTF 之类的东西,并且根据团队的预算和技能,某些解决方案将无法使用。