Milestone XProtect: the simplest high availability cluster between two redundant servers

Evidian SafeKit

How the Evidian SafeKit software simply implements a Milestone XProtect high availability cluster with real-time replication and failover between two redundant servers without shared disk

Evidian SafeKit brings high availability to Milestone XProtect, the CCTV video surveillance system between two redundant servers. This article explains how to implement quickly a Milestone cluster with real-time replication and automatic failover of the management services and the SQL database, and without the complexity of Microsoft failover clustering (without shared disk and without domain controller configuration). The milestone.safe high availability module and a free trial are offered in the Installation tab below.

This clustering solution is recognized as the simplest to implement by our Milestone partners. It is also a complete solution that solves hardware failures (20% of problems) including the complete failure of a computer room, software failures (40% of problems) including smooth upgrade server by server and human errors (40% of problems) thanks to its simplicity of administration.

In the Milestone system architecture, SafeKit clusters can be installed for high availability of Milestone XProtect (any edition) with:

  • Microsoft SQL Server (including the Express edition),
  • Management server,
  • Log server,
  • Event server.

All the services (SQL+Management+Log+Event) can be installed on a single cluster and we consider this use case in this article. The configuration can also be easily split on several clusters.

The SafeKit solution has been verified by Milestone. Note that high availability of recording servers is already managed by the Milestone built-in solution.

How the Evidian SafeKit mirror cluster implements Milestone XProtect high availability with synchronous replication and failover?

On the figure with two redundant servers, the server 1/PRIM runs Milestone XProtect and SQL services (any edition). Users are connected to the virtual IP address of the mirror cluster.  SafeKit replicates files opened by Milestone XProtect and SQL services in real time.  Only changes in the files are replicated across the network, thus limiting traffic (byte-level file replication). Names of file directories containing Milestone XProtect and SQL data are simply configured in SafeKit.  There are no pre-requisites on disk organization for the two servers. Directories to replicate may be located in the system disk. SafeKit implements synchronous replication with no data loss on failure contrary to asynchronous replication.

In case of server 1 failure, there is an automatic failover on server 2 with virtual IP failover and restart of Milestone XProtect and SQL services. Then, when server 1 is restarted, SafeKit implements automatic failback with reintegration of data without stopping Milestone XProtect and SQL services on server 2. Finally, the system returns to synchronous replication between server 2 and server 1. The administrator can decide to swap the role of primary and secondary and to run Milestone XProtect and SQL services on server 1.  The swap can also be done automatically by configuration.

Note that there is another SafeKit architecture very easy to deploy and based on Hyper-V to replicate Milestone XProtect server. The SafeKit/Hyper-V architecture replicates the full Hyper-V virtual machine containing Milestone XProtect and restart it in case of failure. Hyper-V manager is freely included in all versions of Windows including Windows 10 Pro. High availability at the application level is better than high availability at the virtual machine level as explained here.

Free trial + milestone.safe module and step by step installation procedure of SafeKit between two redundant Milestone XProtect servers

Installation of a SafeKit / Milestone XProtect and SQL high availability cluster with real-time synchronous replication and failover between two redundant servers

Prerequisites

  • you need Milestone XProtect and SQL installed on 2 nodes (virtual machines or physical servers)
  • on Windows, with Windows services manager, put Milestone XProtect and SQL services with Boot Startup Type = Manual on both nodes. SafeKit controls start of Milestone XProtect and SQL services in start_prim. Edit start_prim during the configuration to check if you have put all services in Manual boot including the new ones that you can add.
  • on Windows 10, enable execution of powershell scripts on both nodes

Package installation on Windows

  • Install the free version of SafeKit on 2 Windows nodes with Milestone XProtect and SQL services installed on both nodes
  • Download the Windows module

    The module contains the files userconfig.xml, start_prim and stop_prim described in the internals tab
  • Put milestone.safe under C:\safekit\Application_Modules\demo\ (create the demo directory if it does not exist)
  • To open the Windows firewall, on both nodes start a command line as administrator, goto C:\safekit\private\bin and type  .\firewallcfg.cmd add
  • For synchronizing SafeKit at boot and at shutdown, on both nodes start a command line as administrator, goto C:\safekit\private\bin and type  .\addStartupShutdown.cmd only once

Note    User's guide available here

Go to the Configuration tab (above)

Warning  Important. A new milestone.safe module is delivered since Milestone 2019 R2 with its identity server: follow the special configuration instructions in the Configuration tab.

SafeKit High Availability Differentiators against Competition

Key differentiators of a mirror cluster with replication and failover

Evidian SafeKit mirror cluster with real-time file replication and failover

All clustering features  All clustering features

Like  A SafeKit cluster runs on Windows and Linux without the need for expensive shared or replicated disk bays

Like  SafeKit includes all clustering features: synchronous real-time file replication, monitoring of server/network/software failures, automatic Milestone XProtect and SQL restart, virtual IP address switched in case of failure to reroute clients

Dislike  This is not the case with replication-only solutions like replication at the database level which implements only replication

Like   The cluster configuration is very simple and made with the milestone.safe module. There is no domain controller or active directory to configure as with Microsoft cluster

Like   Other services and other replicated directories can be added to the milestone.safe module to complement the SafeKit / Milestone XProtect and SQL high availability solution

Like  SafeKit implements quick Milestone XProtect and SQL restart in case of failure: around 1 mn or less (see RTO/RPO here)

Dislike  Quick Milestone XProtect and SQL restart is not ensured with full virtual machines replication. In case of hypervisor failure, a full VM must be rebooted on a new hypervisor with a recovery time depending on the OS reboot as with VMware HA or Hyper-V cluster

Synchronous replication  Synchronous replication

Like  The real-time replication is synchronous with no data loss on failure

Dislike  This is not the case with asynchronous replication

Fully automated failback procedure  Automatic failback

Like  After a failure when a server reboots, the replication failback procedure is fully automatic and the failed server reintegrates the cluster without stopping Milestone XProtect and SQL on the only remaining server

Dislike  This is not the case with most replication solutions particularly with replication at the database level. Manual operations are required for resynchronizing a failed server. Milestone XProtect and SQL may even be stopped on the only remaining server during the resynchonization of the failed server

Replication of any type of data 

Like  The replication is working for Milestone XProtect and SQL but also for any files which shall be replicated

Dislike  This not the case for replication at the database level

File replication vs disk replication  File replication vs disk replication

Like  The replication is based on file directories that can be located anywhere (even in the system disk)

Disike  This is not the case with disk replication where special Milestone XProtect and SQL configuration must be made to put the application data in a special disk

File replication vs shared disk  File replication vs shared disk

Like  The servers can be put in two remote sites

Dislike  This is not the case with shared disk solutions

Remote sites and virtual IP address  Remote sites

Like  All SafeKit clustering features are working for 2 servers in remote sites. Performances of replication depends on the interconnect latency for real-time synchronous replication and on the bandwidth for resynchronizing data on a failed server

Like  If both servers are connected to the same IP network through an extended LAN between two remote sites, the virtual IP address of SafeKit is working with rerouting at level 2

Like  If both servers are connected to two different IP networks between two remote sites, the virtual IP address can be configured at the level of a load balancer. SafeKit offers a health check: the load balancer is configured with a URL managed by SafeKit which returns OK on the primary server and NOT FOUND else. This solution is implemented for SafeKit in the Cloud but it can be also implemented with a load balancer on premise

Quorum  Quorum

Like  With remote sites, the solution works with only 2 servers and for the quorum (network isolation), a simple split brain checker to a router is offered to support a single execution

Like  This is not the case for most clustering solutions where a 3rd server is required for the quorum

Active/active cluster  Active active mirror cluster

Like  The secondary server is not dedicated to the restart of the primary server. The cluster can be active-active by running 2 different mirror modules

Dislike  This is not the case with a fault-tolerant system where the secondary is dedicated to the execution of the same application synchronized at the instruction level

Uniform high availability solution  Uniform high availability solution

Like  SafeKit implements a mirror cluster with replication and failover. But it imlements also a farm cluster with load balancing and failover. Thus a N-tiers architecture can be made highly available and load balanced with the same solution on Windows and Linux (same installation, configuration, administration with the SafeKit console or with the command line interface). This is unique on the market

Dislike  This is not the case with an architecture mixing different technologies for load balancing, replication and failover

High availability architectures comparison

Feature

SafeKit cluster

Other clusters

Software clustering vs hardware clustering  A software cluster with SafeKit installed on two servers

Like  A simple software cluster with the SafeKit package just installed on two servers
Hardware clustering with external shared storage Network load balancers or dedicated proxy servers



Dislike  Complex hardware clustering with external storage or network load balancers
Shared nothing vs a shared disk cluster  SafeKit shared-nothing cluster: easy to deploy even in remote sites

Like  SafeKit is a shared-nothing cluster: easy to deploy even in remote sites
Shared disk cluster: complex to deploy

Dislike  A shared disk cluster is complex to deploy
Application High Availability vs Full Virtual Machine High Availability 

Like  Application HA supports hardware failure and software failure with a quick recovery time (RTO around 1 mn or less).
Smooth upgrade of application and OS possible server by server (version N and N+1 can coexist)
Virtual machines high availability supports only hardware failure with an recovery time depending on the OS reboot

Dislike  Full virtual machines HA supports only hardware failure with a VM reboot and a recovery time depending on the OS reboot.
Smooth upgrade not possible
High availability vs fault tolerance SafeKit high availability vs fault-tolerance

Like  No dedicated server with SafeKit. Each server can be the failover server of the other one.
Software failure with restart in another OS environment.
Smooth upgrade of application and OS possible server by server (version N and N+1 can coexist)
Fault tolerance system

Dislike  Secondary server dedicated to the execution of the same application synchronized at the instruction level.
Software exception on both servers at the same time.
Smooth upgrade not possible
Synchronous replication vs asynchronous replication 

Like  SafeKit implements real-time synchronous replication with no data loss in case of failure
Asynchronous replication with data loss on failure

Dislike  With asynchronous replication, there is data loss on failure
Byte-level file replication vs block-level disk replication  SafeKit cluster with byte-level file replication: simply replicates directories even in the system disk

Like  SafeKit implements real-time byte-level file replication and is simply configured with application directories to replicate even in the system disk
Cluster with block-level disk replication: complex and require to put application data in a special disk

Dislike  Block-level disk replication is complex to configure and requires to put application data in a special disk
Heartbeat, failover and quorum to avoid 2 master nodes  Simple quorum in a SafeKit cluster with a split brain checker configured on a router

Like  To avoid 2 masters, SafeKit proposes a simple split brain checker configured on a router
Complex quorum in other clusters: third machine, special quorum disk, remote hardware reset

Dislike  To avoid 2 masters, other clusters require a complex configuration with a third machine, a special quorum disk, a special interconnect
Virtual IP address
primary/secondary, network load balancing, failover 
No special network configuration in a SafeKit cluster

Like  No dedicated proxy servers and no special network configuration are required in a SafeKit cluster for virtual IP addresses
Special network configuration in other clusters

Dislike  Special network configuration is required in other clusters for virtual IP addresses. Note that SafeKit offers a health check adapted to load balancers

Customers of SafeKit High Availability Software in all Business Activities

Demonstrations of SafeKit High Availability Software

SafeKit Webinar

This webinar presents in 10 minutes Evidian SafeKit.

In this webinar, you will understand:

  • mirror and farm clusters
  • cost savings against hardware clustering solutions
  • best use cases
  • the integration process for a new application

Milestone XProtect Cluster

This video shows the configuration of a Milestone XProtect mirror module with synchronous real-time replication and failover.

After a failover, automatic restart and reconnection of a Recording Server is also demonstrated.

Free trial here

Apache Cluster

This video shows a farm module configuration with load balancing and failover.

The load balancing and the failover are configured for Apache but it works in the same manner for other web services.

Free trial here

Hyper-V Cluster

This video shows a Hyper-V cluster with full replications of virtual machines.

Virtual machines can run on both Hyper-V servers and they are restarted in case of failure.

Free trial here

Free On-Line Training on SafeKit High Availability Software

SafeKit Modules for Plug&Play High Availability Solutions

SafeKit Modules for Plug&Play High Availability Solutions

Network load balancing and failover: click on the blue buttons

Farm modules

Windows

Linux

New application
IIS-
Apache
Amazon AWS farm
Microsoft Azure farm
Google GCP farm
Cloud generic farm

Real-time file replication and failover: click on the blue buttons

Mirror modules

Windows

Linux

New application
Microsoft SQL Server-
Oracle
MySQL
PostgreSQL
Firebird
Hyper-V-
KVM-
Docker-
Elasticsearch-
Milestone XProtect-
Hanwha Wisenet SSM-
Nedap AEOS-
Amazon AWS mirror
Microsoft Azure mirror
Google GCP mirror
Cloud generic mirror