Articles of 高可用性

是否有可能实时同步TCP代理的状态(SLB的实际高可用性)?

考虑有两个服务器负载均衡器在tcp代理模式下工作(例如,对于L7负载平衡)。 是否有可能实时同步他们的状态,以便他们可以互相备份? 如果一个端口closures,另一个端口仍然具有所有必要的状态来不间断地支持所有现有的TCP连接。 我知道这很难,但我想知道任何免费/商业LB已经支持这个function。 谢谢!

Ganeti和自动故障转移

我正在用Ganeti + DRBD构build一个简单的双节点群集…build议设置自动故障转移的方式是什么? 我习惯了心跳,但他们说应该避免使用我的设置。

Azure可用性设置跨2个地区(都柏林,阿姆斯特丹)

是否有可能在两个不同的地区(西欧和北欧)configuration两台虚拟机,并将其保留在相同的可用性集合中? 地区是指北欧数据中心的正确词汇吗?还是应该将其称为次地区?

VMware高可用性问题

我似乎无法在vSphere 5文档中心find这些问题的答案,所以如果您知道这些问题的任何方面,请分享。 为高可用性(HA)configuration的故障虚拟机会发生什么情况? 容错(FT)? 它会自动停止并释放其资源(但重新启动(HA)或辅助实例接pipe(FT))? debugging发生故障的虚拟机的典型方法是什么? 通过日志或VMware VM监视UI? 会通知用户虚拟机故障? 是否有可能克隆一个虚拟机重新启动或故障转移到后来debugging发生了什么? 谢谢!!

OpenVPN超时重新连接失败需要很长时间

我正在尝试为我的OpenVPN服务器创build一个高可用性环境。 我这样做有两个相同的VPN服务器,并在我的客户端configuration指定多个远程的: # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote vpn1 1194 remote vpn2 1194 remote-random 这似乎工作。 我有两个VPN服务器和两个客户端的Vagrant环境。 一旦networking运行,我停止其中一台VPN服务器上的OpenVPN,另一台服务器接pipe。 但是,在其他服务器接pipe之前,实际上需要很长的时间。 如果我的客户端互相ping通,大约需要3分钟才能ping通。 我的猜测是,客户正在尝试重新连接,超时是这里的问题。 在我的OpenVPN client.conf我使用了以下设置,但是它似乎没有任何区别(是的,我在更改configuration后在客户端上重新启动OpenVPN): connect-retry 2 connect-retry-max 2 我怎样才能调整客户端的连接超时,使他们更快地切换到不同的OpenVPN服务器?

防止HAProxy从后备切换回主

我们有Redis的主从设置,我们希望一旦主设备出现故障就回退到从设备。 但是,如果失败了,即使主站再次联机,它也不应该回切换。 这可能吗?

高可用性,无需连接

是否有可能有一个高可用性的设置,在这个例子去2个networking服务器,并允许它故障转移,而不会丢失连接? 我有两个使用彗星的Web服务器,这是一种HTTP技术,在这种技术中,您拥有长久的HTTP连接。 我有两个负载均衡器在运行心跳与共享的IP。 如果其中一台前端服务器停机,则所有连接都将丢失。 我听说有一种技术,可能是HAProxy,两台服务器跟踪连接状态,如果其中一台服务器发生故障,另一台服务器接pipe,而不会丢失连接。 我似乎无法找出如何做到这一点。

分裂脑创造安全缺陷的networking分区风险

我期望通过使用分布式数据系统来创build高可用性,可伸缩的networking解决scheme。 这里的一个节点描述了一个可以控制一个数据副本的networking。 这些节点可能包含多台机器,但有一个数据副本。 节点将包含可以处于使用状态或未使用状态的数据logging。 客户可以请求logging的转换从未用完状态转换为已用状态(请求花费)。 如果他们能够不止一次成功地做到这一点,就有安全风险。 如果一个节点与所有其他节点有连接,则单个节点可以告诉节点已经请求花费,并且可以确保没有其他节点想要访问该数据并且支出尚未发生。 节点可以将数据的状态改变为花费,其他节点不会这样做,因为他们知道其中一个节点正在更新它并处理花费。 所有节点都将更改数据,因此logging处于已用状态。 如果一个节点不能到达另一个节点,它可以假设另一个节点closures,并且将继续与其他节点一起工作,直到另一个节点恢复。 在这种情况下,节点将把所有更新发送到备份的节点。 如果这个失败的节点正处于当时不完整的花费操作的中间,那么它可以完成它。 这会造成一些操作的轻微停机时间。 这是在一个节点告诉其他节点它将花费,然后在它可以完成花费过程之前失败的情况。 在这种情况下,其他节点被阻止更新,因此失败的节点需要重新联机才能完成。 问题是,花费的处理只能发生一次。 如果networking被分区,攻击者知道这可能会要求在一个分区和另一个分区上花费。 networking的每个分区都会假定另一个分区被closures,所以会独立运行。 这可能会导致花费不止一次的处理。 如果networking双方的请求在分区的时候没有被提出,这不会成为问题。 当连接重新build立时,networking将变得最终一致。 如果攻击成功,则节点将在重新build立连接时了解攻击,因为networking的两侧将宣布相同的更改。 所以这是可以检测到的攻击,但实际上可能吗? 攻击者需要刻意去做这件事。 该软件的devise目的不是要一次进行多个支出请求。 攻击有一定的时间成本。 如果攻击者失败了,需要时间才能重新创build未使用的logging。 创build未使用的logging需要钱。 更多的钱将需要在一次攻击中使用,以获得更高的利益。 有一个时间成本的原因是,它需要一段时间才能收回钱重试。 他们可以承受许多较小的攻击,那么对他们的好处就会less一些,造成的损害也较less。 当然,分区自然是非常罕见的,如果攻击者随时都有攻击,那么攻击者必须有可笑的胜利。 如果连接自然丢失,则节点可以停止所有操作并尝试重新连接。 使用较低的超时连接到节点意味着它不必造成任何停机时间(可能只有极less的增加的延迟)。 如果重新连接失败,它将继续尝试,但随后重新启动操作(假设节点closures)。 会这样的事情,以防止偶尔的连接错误? 那么攻击者是否能够在networking中检测/导致分区? 分区发生的可能性和多久? 如果可能的话,哪些方法可以解决问题? 谢谢。

UDP数据包循环负载均衡

我需要在许多“真实服务器”之间对UDPstream量进行负载平衡,并以真正的循环方式进行。 我已经开始keepalived,但意外地发现,LVS把UDPstream量视为“连接”(无论是在UDP ..)。 实际上,这意味着所有来自特定客户端的stream量都会一直到达同一个“真实服务器”(这是一个大问题,因为有些客户端可能会产生如此大的stream量,单个后端将不堪重负) 。 显然,这是预期的行为, 但是最近的LVS版本有一个“–ops”标志,这使得LVS绕过了上述的行为,使得每个UDP数据报都被独立处理(这就是我想要的!)。 但是(总是有一个但是..)这个function没有暴露在keepalived.conf。 有没有解决scheme,这将让我 在UDP后端之间进行循环分配 检测“死”的后端,并将它们从循环中删除(当它们变成“活着”时将它们加回来也是有用的) 应该是基于Linux的,显然。 任何forms的DNS循环都不会在这里真正起作用,因为客户端不能识别DNS。 PS我会尝试脉冲/食人鱼,但从阅读我收集的文件,它并不暴露“ – ”标志以及。 我也打算试一试(通过直接调用ipvsadm来使后端检测和添加/删除realserver)。

keepalived和corosync有什么区别?

我正在为服务器集群构build故障转移防火墙,并开始查看各种选项。 我更熟悉freebsd上的鲤鱼,但需要使用linux来完成这个项目。 search谷歌已经产生了几个不同的项目,但没有明确的信息,他们提供的function。 CARP提供了故障转移的虚拟接口,我不清楚corosync是做什么的,还是起搏器做的是什么? 另一方面,我确实设法让keepalived工作。 但是,我注意到corosync提供了对infiniband的本地支持。 这对我有用。 也许有人可以从以下方面了解一下: corosync 活着 起搏器 心跳 哪个产品最适合路由器故障切换? 编辑:所以我制定了更多一点… 起搏器是可以使用Corosync&Pacemaker的更大的项目。 Corosync&Heartbeat似乎基本上做同样的事情。 所以你select一个或另一个。 心跳似乎是一个较老的项目,但仍在努力。 另一方面,Keepalive是一个完全不同的项目,并且实现了VRRP协议。 它有比其他的function。 它似乎仍然被广泛使用,但缺less最近的文档。 不幸的是,对于防火墙/路由器故障转移,只有很less的例子。 有没有人find一些不错的howto's? 我find一个用西class牙语写的。