繁体   English   中英

如何在Windows Server上进行故障转移

[英]how to do failover on windows server

我们有2台Windows Server 2008 R2。 两台PC均安装了带网络应用程序的glassfish。 第一台PC(PDC)的IP为192.168.1.7,第二台PC(BDC)的IP为192.168.1.8,用户使用ip 192.168.1.7登录到应用程序。

我们要做的是,如果PC用户无法使用ip 192.168.1.7访问该应用程序,则使用192.168.1.8,而无需用户执行任何操作。

我们发现您可以用玻璃鱼来做,但是它使用apache作为中介。 如果具有apache的PC发生故障,则无法进行故障转移或使用该应用程序。 另外,我们已经看到我们可以使用EasyDNS来使用域名来实现它,但是网络无法访问Internet,因此我们也将其丢弃。

有什么方法可以进行故障转移而无需依赖Internet或中央PC中的程序?

人们需要一种在一个共享ip地址上接收请求并将请求分布在多个节点上的方法(负载平衡/高可用性故障转移)。

可选地,可以在LB / HA与后端服务之间分层中介功能,例如,卸载静态内容,某些类型的请求筛选等。

仅对于LB / HA,通常使用

  • 适用于现有平台(在您的情况下为Windows)的软件附件。 Windows具有内置的NLB功能,可用于分配负载并为多个相同的后端服务器提供故障转移。 NLB直接安装在每个后端服务器上,或者如果需要通过单独的Apache,IIS或其他前端服务直接要求在前端节点上提供分层功能。
  • 专用冗余软件负载平衡器(例如HAproxy)位于应用程序服务器前面。
  • 专用冗余硬件负载平衡器位于应用程序服务器前面。

您的问题尚不清楚,除冗余之外,您打算用Apache解决什么问题,因为冗余本身本身就是一个单点故障,所以通常不会解决。 IIS具有相同的困境,经常使用ARR附加组件将代理反向代理到后端服务器,但是它本身就是一个单点故障。 正如Windows具有NLB为多个相同配置的服务器(例如Java服务器,具有ARR节点的IIS,Apache节点)提供冗余链接一样,Linux上的Apache具有如此处所述的机制。

但是,这些功能不像使用专用负载均衡器和专用负载均衡器来前端服务器和可选IIS / Apache /其他前端Webnode那样功能丰富和高效。 另外,他们倾向于创建自己的问题域,从而限制功能集并创建其他依赖复杂性。 简而言之,除非安装非常简单,否则它们往往会过度消耗维护/开发时间。

共享同一磁盘的群集服务(如注释中建议的)通常不用于Web冗余方案,因为它们可以更好地解决其他设计问题(例如高可用性文件或打印服务)。 如本答案所述,使用Web冗余技术的一个原因是维护易于回收节点,另一个是可伸缩性因素,依此类推。 与群集解决方案相比,唯一的缺点是它们无法跟踪用户状态。 但是,由于群集解决方案通常专门针对特定的实现以保持用户会话意识,而Web交付解决方案具有广泛的会话意识分布,因此这种论点在大多数情况下都是无聊的。

人们将使用DNS之类的外围服务进行故障转移的做法容易引起人们的怀疑,因为这些例外情况(例如mx指针)几乎没有在设计时考虑到这种情况。 专用变体可能仍会受到普遍使用的DNS子系统内置的大量缓存的影响,并且在这种设置中形成弱链接。

在以下情况下,仍可以考虑将DNS作为主要冗余机制:

  • (非常长的)故障转移延迟是可以接受的,或者如果:
  • 一种是完全控制从客户端到服务器的整个分布式DNS基础结构(可以通过短TTL保证切换延迟),或者满足以下条件:
  • 可以以编程方式确保客户端/服务器代码可以利用DNS进行快速故障转移。

提供LB / HA逻辑服务器端的替代方法是将其构建到客户端中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM