虚拟 IP 如何通过 TCP 连接故障转移到备份服务器以实现高可用性?

虚拟 IP 如何通过 TCP 连接故障转移到备份服务器以实现高可用性?

我有几个关于虚拟 IP 如何用于故障转移实现的问题。目标是实现在 TCP 服务器上运行的服务的高可用性。

该问题可以很容易地描述:

在此处输入图片描述

问题:

  1. 假设运行主服务器的计算机 A 死机。计算机 1 上的虚拟 IP 软件如何工作?客户端是否需要重新连接才能重定向到计算机 B 上的备份服务器?这台计算机/连接是否转变透明地发生?

  2. 虚拟 IP 是通过软件还是硬件实现的?您能给我一些我可以使用/测试的软件解决方案的例子吗?

  3. 虚拟 IP 软件怎么样单点故障? 如果机器 1 死机了会发生什么?虚拟 IP 软件本身是否具有某种故障转移/高可用性功能?

答案1

我们应该澄清一些术语和技术。

您显示的图像是“负载均衡器”。从技术上讲,负载均衡器通常会有一个或多个“前端”IP 地址,这些 IP 地址连接到一个或多个“后端”服务器 - 这些前端 IP 地址不是“虚拟 IP”。

当我们谈论虚拟 IP 时,我们谈论的是服务器集群。服务器集群没有负载平衡器。相反,集群中的所有服务器都采用相同的 IP 地址。它们通过心跳相互监控,并决定哪个服务器将响应它们共享的 IP 地址上的请求。

现在,显然,您可以拥有共享一个或多个 IP 地址的集群负载均衡器。

以下是一些答案:

1) 机器 1 不运行“虚拟 IP”软件。它运行“负载平衡”软件。当服务器发生故障时,客户端会发生什么完全取决于您的负载平衡器配置和后端应用程序功能。如果您有一个无状态的后端或导致状态共享的共享存储,那么当一台服务器发生故障时,用户通常会无缝连接到另一台服务器,而不会中断他们的会话。事实上,在这种情况下,客户端发出的每个请求实际上可能会在两台服务器上进行负载平衡,即使在同一会话期间也是如此。在其他情况下,状态不共享,用户必须启动到另一台服务器的新会话。

2) 再次强调,它不是虚拟 IP。虚拟 IP 是一种集群技术。负载均衡器可以有多个面向公众的 IP 地址,具体取决于您的实际物理设置。它可以通过硬件或软件来实现。软件或硬件的具体建议超出了 ServerFault 的范围。您可以使用 Google 来实现。

3) 是的,负载均衡器可能成为单点故障。如果负载均衡器出现故障,则一切都会中断。实现真正的高可用性需要大量资金和技术知识。在当今的云计算世界中,这最好留给 Microsoft Azure 和 Amazon AWS 等专业人士。他们实施高可用性、冗余的系统,您可以以极低的价格租用它们。

当谈到高可用性时,您需要考虑每个故障点。

这包括但不限于:

  1. 力量
  2. 互联网
  3. 路由器
  4. 开关
  5. 网络电缆
  6. 服务器故障(电源、主板、CPU、磁盘驱动器)
  7. 软件崩溃
  8. DDoS 和其他过度使用问题

长话短说,你画的这个场景根本无法提供高可用性环境。

相关内容