冗余服务器

冗余服务器是当前运行 0 个摄像头的服务器。在检测到正在关闭的服务器后,系统使用冗余服务器来整体替换关闭服务器的摄像头和设备处理。这意味着将在冗余服务器上移动和运行所有摄像头。视频丢失很少,只会丢失 15 秒。

启用冗余:

       在任何时候,您都必须至少有 1 个可用冗余服务器(具有 0 个摄像头的服务器)。

       冗余服务器必须与可能关闭的服务器位于同一冗余组中。

       冗余组的冗余必须处于“启用”。

组的冗余处于“启用”

 

示例

服务器场配置:

如果前两个服务器之一出现故障,其摄像头将故障转移到第三个服务器

Admin-Chap2-RH00007.png

示例 - 所有三个服务器位于同一冗余组“1”中

如果第一个服务器(冗余组 7)出现故障,则不会发生故障转移,这是因为组 7 中没有冗余服务器。

Admin-Chap2-RH00009.png

 

不同的冗余组“1”和“7”

 

示例

典型 Symphony 服务器场:

此配置描述了如何将外部数据库群集用于配置数据冗余,以及如何在故障转移后使用 NAS 或 SAN 进行历史片段文件访问。

Admin-Chap2-RH00011.png

 

 

在一个 Symphony 服务器上存在具有配置数据库的多服务器场:

如果必须设置服务器冗余,则不建议进行此设置,这是因为它包含单一故障点(即服务器 1)。如果该服务器出现故障,则其余服务器无法访问配置。

Admin-Chap2-RH00013.png

 

 

 

 

冗余组

由于文件存储的地理限制,可能需要将某些服务器仅故障转移到特定服务器。冗余组允许您对服务器分组,以使故障转移仅在同一组中的服务器之间发生。请确保每个服务器组中至少有 1 个冗余服务器。

伙伴系统

冗余组使用伙伴邻居系统,其中的每个服务器会监视其邻居(或伙伴)的运行状况。每个服务器每秒向其每个伙伴服务器广播活动状态,并且每个服务器侦听来自其他邻居的活动消息。这是一个邻居连接图,因此,如果有多个服务器关闭,始终会有某个服务器检测到它们。

每个服务器运行一个监视线程,该线程从其每个伙伴服务器处接收 UDP 套接字消息。

       如果检测阈值时间已过期,但是未从特定伙伴服务器处收到活动消息,则该服务器可能已关闭。一条服务器可能关闭消息将发送到主服务器。

       如果一半以上的伙伴通知主服务器此服务器已关闭,则确认此服务器已关闭。在这种情况下,会生成故障转移摄像头交换算法,以便将所有已关闭服务器的摄像头处理传输到冗余服务器(如果提供了冗余服务器)。

冗余配置设置

下面是可配置场冗余设置。

配置场冗余设置

设置

说明

FarmHealthStartDelayMs

在服务器启动时,将按此量延迟,然后再开始监视其伙伴服务器之一是否正在关闭。

FarmHealthSockTimeoutMs

UDP 套接字用于从所有伙伴服务器接收活动消息。每个服务器将具有此超时。(您不必更改此超时)。

FarmHealthMissedUdpMs

服务器确定已关闭并执行故障转移之前服务器可关闭多长时间(以毫秒为单位)。某些客户可能希望此时间为若干分钟,以允许 Windows 执行更新重新启动。

FarmHealthUdpPort

只有当故障转移根本未工作且 is* 日志文件指示存在端口冲突时,才更改此设置。

默认情况下,这些设置不在数据库中。要添加它们,请使用下列行。最后一个参数是使用的默认值。

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthStartDelayMs','5000')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthSockTimeoutMs','1500')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthMissedUdpMs','30000')"

dbupdater "insert into Settings (Type,ID,Section,K,V) values ('Global','','Main','FarmHealthUdpPort','5045')"