答案1
我们应该澄清一些术语和技术。
您显示的图像是“负载均衡器”。从技术上讲,负载均衡器通常会有一个或多个“前端”IP 地址,这些 IP 地址连接到一个或多个“后端”服务器 - 这些前端 IP 地址不是“虚拟 IP”。
当我们谈论虚拟 IP 时,我们谈论的是服务器集群。服务器集群没有负载平衡器。相反,集群中的所有服务器都采用相同的 IP 地址。它们通过心跳相互监控,并决定哪个服务器将响应它们共享的 IP 地址上的请求。
现在,显然,您可以拥有共享一个或多个 IP 地址的集群负载均衡器。
以下是一些答案:
1) 机器 1 不运行“虚拟 IP”软件。它运行“负载平衡”软件。当服务器发生故障时,客户端会发生什么完全取决于您的负载平衡器配置和后端应用程序功能。如果您有一个无状态的后端或导致状态共享的共享存储,那么当一台服务器发生故障时,用户通常会无缝连接到另一台服务器,而不会中断他们的会话。事实上,在这种情况下,客户端发出的每个请求实际上可能会在两台服务器上进行负载平衡,即使在同一会话期间也是如此。在其他情况下,状态不共享,用户必须启动到另一台服务器的新会话。
2) 再次强调,它不是虚拟 IP。虚拟 IP 是一种集群技术。负载均衡器可以有多个面向公众的 IP 地址,具体取决于您的实际物理设置。它可以通过硬件或软件来实现。软件或硬件的具体建议超出了 ServerFault 的范围。您可以使用 Google 来实现。
3) 是的,负载均衡器可能成为单点故障。如果负载均衡器出现故障,则一切都会中断。实现真正的高可用性需要大量资金和技术知识。在当今的云计算世界中,这最好留给 Microsoft Azure 和 Amazon AWS 等专业人士。他们实施高可用性、冗余的系统,您可以以极低的价格租用它们。
当谈到高可用性时,您需要考虑每个故障点。
这包括但不限于:
- 力量
- 互联网
- 路由器
- 开关
- 网络电缆
- 服务器故障(电源、主板、CPU、磁盘驱动器)
- 软件崩溃
- DDoS 和其他过度使用问题
长话短说,你画的这个场景根本无法提供高可用性环境。