假设您拥有完全虚拟化的 VMware 基础架构:ESXi、vCenter、vMotion、HA、DRS 以及整个软件包。
在里面,你有很多虚拟机,它们在任何给定时间可能驻留在一个主机或另一个主机上(这就是集群的全部意义,不是吗?)。
您经历了一次断电,不管怎样,您设法正常关闭了所有虚拟机和所有主机;现在我们先不深入研究这个问题,我们假设您的 UPS 软件可以处理它。或者,至少,我们假设关机是不是如此优雅,但一旦电力恢复,一切仍然能够重新出现。
电力恢复,主机重新启动。
您的环境非常复杂,并且虚拟机之间存在自然依赖关系:域控制器应首先启动,应用程序服务器无法启动,除非其后端数据库服务器已启动并运行,等等。
我们都知道(或希望应该知道)如何配置自动虚拟机启动以及如何在单个 ESX/i 主机上指定虚拟机启动顺序和延迟。
但是如何在整个数据中心做到这一点?
有没有什么方法可以告诉 vSphere“按照这个全局顺序启动这些虚拟机,而不管它们在哪个物理主机上运行”?
加分点:如果 vCenter 本身在虚拟机上运行,这会如何改变情况?
答案1
似乎没有一个干净的方法来充分管理虚拟基础设施的冷启动在各个主机上配置 HA 后。启用 HA 和 DRS 似乎会禁用虚拟机启动和关闭主机服务器上的选项。但是,任何订购集前主机移入集群似乎可以坚持下去。如果主机数量较少或易于管理,则可以通过单独连接主机在 vSphere Client 中设置启动优先级。把你的规则放在那里。这实际上在您描述的情况下有效。
存储第一!
一旦共享存储启动,我就可以在主机上工作了……我也遇到过部分中断,此时 vCenter 也进行了虚拟化。在这种情况下,我所做的是为最关键的系统设置自动启动和排序选项;通常是域控制器和 DNS/DHCP。请记住,vCenter 在冷启动情况下不太可能可用。如果我能适应它,那么我会……否则它会手动启动。
从那里,我确保 HA 和 DRS 规则完好无损。我通常为终端服务器、应用程序服务器和域控制器设置不关联规则。一旦 vCenter 启动,大部分问题就解决了。
我曾有一个雷击几周前,我的服务器机房部分瘫痪,包括包含存储网络的交换机刀片。存储交换机端口重新定位和重新编程后,VMWare HA 恢复了一切。
因此,此类问题属于真正的紧急情况或手动操作。在您描述的场景中,我不希望系统环境自动启动。
编辑:
两周前,我遇到了一次停电,导致 UPS 跳闸。两台主机、VC 和一台 SAN/NAS 设备。一切都自行恢复,我无需干预(实际上我在飞机上,降落后收到了消息)。
答案2
您可以配置一个 vApp 来帮助启动和关闭顺序。
借用一下vApp 线程:
如果您的集群发生灾难性故障,您有几个选项可以确保 VM 重新启动优先级。我喜欢为此创建 vApp,然后将相关 VM 拖放到此 vApp 中。假设您希望数据库服务器在 Web 服务器之前启动,因此您将它们都拖到新的 vApp 中。您可以右键单击 vApp --> 编辑设置 --> 启动顺序选项卡 --> 然后您将看到组 1 和组 2。在窗口底部,请注意“在继续下一个组之前,同一组中的所有实体都会启动。关闭按相反顺序进行。”好吧,您可以使用框旁边的箭头将您的服务器移动到组中(我在附图中将它们圈出来了)。最后,VMware 让您能够指示组 2(以及组 3、组 4 等)中的 VM 是否应在设定的秒数后启动(或者)您是否希望下一个组在 VMware Tools(服务)启动后启动。