我有一个运行多个服务的 Proxmox 节点。
每个服务由多个 VM 组成,例如反向代理、数据库和应用程序服务器。服务中的某些 VM 依赖于该服务的其他 VM:应用程序服务器依赖于数据库服务器。
不同的服务不相互依赖并且不相关。
有时我需要为单个服务重新启动所有 VM。我可以手动执行此操作,然后我需要知道关闭和重新启动 VM 的正确顺序。
如果我可以显式配置属于单个服务的 VM 之间的依赖关系,那就太好了。并以正确的顺序自动重新启动服务中的所有 VM,而无需为在同一节点上运行的其他服务触及 VM。
我可以用 Proxmox 做到这一点吗?
我知道我可以将虚拟机分配给资源池,但我认为这更多是为了权限。我知道我可以设置启动顺序,但我认为这是为了重新启动整个节点。
Proxmox 不支持 VM 之间的任何依赖关系跟踪。老实说,它不应该。它所允许的只是简单的排序和交错,因此所有虚拟机不会尝试同时启动,以保护共享存储免受虚拟机启动期间发生的大量 I/O 造成的过载。
无论如何,您实际上要跟踪的是,在 VM2 中运行的服务 B 是在 VM1 中运行的服务 A 之后启动的,无论如何。不是虚拟机应该依赖,而是它们内部的服务。你需要一个合适的集群资源管理器来做到这一点。这样,即使某些 VM 因任何原因中断或初始化缓慢,您仍然是安全的,因为服务将以正确的顺序启动/停止。您可以在这些虚拟机中设置例如 Pacemaker 集群,并根据需要实现服务依赖项和约束。