Haute disponibilité de Milestone XProtect avec réplication synchrone et tolérance aux pannes

Evidian SafeKit apporte la haute disponibilité à Milestone XProtect, le système de vidéosurveillance (CCTV). Cet article explique comment implémenter rapidement un cluster Milestone avec les services de management, d'event et la base Microsoft SQL Server sans disque partagé et sans la complexité de Microsoft cluster. Un essai gratuit est offert.

Architecture de haute disponibilité de Milestone XProtect avec des clusters SafeKit

Clusters Evidian SafeKit - Haute disponibilité de Milestone XProtect Corporate avec réplication synchrone temps réel et tolérance aux pannes sans disque partagé

Dans le document d'architecture du système Milestone, des clusters SafeKit peuvent être installés pour la haute disponibilité de:

L'ensemble des services (SQL Server, Event, Management) peuvent être installés sur un seul cluster et nous considérons ce cas d'utilisation dans cet article. Mais la configuration peut être également facilement éclatée sur plusieurs clusters.

La haute disponibilité des serveurs de Recording est gérée par la solution intégrée à Milestone et non par SafeKit. Le failover des serveurs de Recording est expliqué dans le document Milestone suivant. Notez que Milestone peut offrir une solution active/active dans laquelle la même caméra est configurée pour enregistrer sur deux serveurs distincts disposant de leur propre système de stockage. Ainsi, une caméra envoie son flux au serveur d'enregistrement 1 et la même caméra envoie le même flux au serveur d'enregistrement 2 pour avoir une configuration serveur/stockage entièrement redondante. Les services Recording peuvent être mis sur un unique cluster avec SafeKit, mais ils ne seront pas gérés par SafeKit.

Comment le logiciel Evidian SafeKit met en œuvre simplement la haute disponibilité de Milestone XProtect avec réplication synchrone temps réel  et tolérance aux pannes sans disque partagé

Comment Evidian SafeKit met en œuvre la haute disponibilité de Milestone XProtect avec réplication temps réel et tolérance aux pannes

Sur la figure précédente, le serveur 1 / PRIM (Windows) exécute Milestone XProtect Corporate. Les utilisateurs sont connectés à l'adresse IP virtuelle du cluster miroir. SafeKit réplique les fichiers ouverts par Milestone XProtect Corporate en temps réel (la base de données Microsoft SQL Server). Seules les modifications apportées aux fichiers sont répliquées sur le réseau, limitant ainsi le trafic (réplication de fichiers au niveau octet). Les noms des répertoires de fichiers contenant la base de données Microsoft SQL Server sont simplement configurés dans SafeKit. Il n'existe pas de pré-requis sur l'organisation des disques entre les deux serveurs. Les répertoires à répliquer peuvent se trouver dans le disque système. SafeKit met en œuvre une réplication synchrone sans perte de données en cas de panne, contrairement à une réplication asynchrone.

En cas de défaillance du serveur 1, il y a un basculement automatique sur le serveur 2 avec redémarrage de Milestone XProtect Corporate. Ensuite, lorsque le serveur 1 est redémarré, SafeKit met en œuvre son retour dans le cluster avec la réintégration de la base de données Microsoft SQL Server sans arrêter Milestone XProtect Corporate sur le serveur 2. Enfin, le système retourne à la réplication synchrone entre le serveur 2 et le serveur 1. L'administrateur peut décider d'échanger le rôle du primaire et du secondaire pour revenir à un serveur 1 qui exécute Milestone XProtect Corporate. Ce changement de rôle peut également être fait automatiquement par configuration.

Vue générale sur la configuration de la haute disponibilité de Milestone XProtect avec réplication synchrone et tolérance aux pannes

Avec SafeKit, on peut configurer soit un module applicatif ferme, soit un module applicatif miroir suivant l'architecture de haute disponibilité adaptée à l'application critique à sécuriser. Pour la haute disponibilité de Milestone XProtect avec réplication synchrone et tolérance aux pannes, le bon module est le module miroir.

Vue générale sur la configuration de la haute disponibilité de Milestone XProtect avec réplication et tolérance aux pannes

Les fichiers de configuration pour la haute disponibilité de Milestone XProtect sont donnés ici.

Ils comprennent :

1. les scripts d'arrêt et de démarrage de Milestone XProtect Corporate,

2. le fichier de configuration userconfig.xml qui contient :

Le déploiement de la haute disponibilité de Milestone XProtect Corporate avec réplication synchrone et tolérance aux pannes ne nécessite aucune compétence informatique spécifique :

Fichiers de configuration SafeKit sur Windows pour la haute disponibilité de Milestone XProtect avec réplication synchrone et tolérance aux pannes

Instructions d'installation

userconfig.xml

<!DOCTYPE safe>
<safe>
<service mode="mirror" defaultprim="alone" maxloop="3" loop_interval="24" failover="on">
  <!-- Heartbeat Configuration -->
  <!-- Names or IP addresses on the default network are set during initialization in the console -->
  <heart pulse="700" timeout="30000">
    <heartbeat name="default" ident="flow">
    </heartbeat>
  </heart>
  <!-- Virtual IP Configuration -->
  <!-- Replace
     * VIRTUAL_TO_BE_DEFINED by the name of your virtual server 
  -->
  <vip>
    <interface_list>
        <interface check="on" arpreroute="on"> 
	  <real_interface>
               <virtual_addr addr="VIRTUAL_TO_BE_DEFINED" where="one_side_alias" />
          </real_interface>
        </interface>
    </interface_list>
  </vip>
  <!-- Software Error Detection Configuration -->
  <errd polltimer="10">
    <!-- SQL Server process -->
    <proc name="sqlservr.exe" atleast="1" action="restart" class="prim" />
  </errd>
  <!-- File Replication Configuration -->
  <!-- Adapt with the directory of your SQL Server database and logs
  -->
  <rfs async="second" acl="off" nbrei="3">
	<replicated dir="C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA" mode="read_only" />
	<replicated dir="C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Log" mode="read_only" />
  </rfs>
  <!-- User scripts activation -->
  <user nicestoptimeout="300" forcestoptimeout="300" logging="userlog" />
</service>
</safe>

start_prim.cmd

@echo off

rem Script called on the primary server for starting application services 

rem For logging into SafeKit log use:
rem "%SAFE%\safekit" printi | printe "message"

rem stdout goes into Application log
echo "Running start_prim %*" 

set res=0

rem TODO: set to manual the start of services when the system boots

net start "MSSQLServer"
if not %errorlevel% == 0 (%SAFE%\safekit printi "SQL Server (MSSQLServer) start failed") 
else (%SAFE%\safekit printi "SQL Server (MSSQLServer) started")

net start "Milestone XProtect Management Server"
if not %errorlevel% == 0 (%SAFE%\safekit printi "Milestone XProtect Management Server start failed") 
else (%SAFE%\safekit printi "Milestone XProtect Management Server started")

net start "MilestoneEventServerService"
if not %errorlevel% == 0 (%SAFE%\safekit printi "MilestoneEventServerService start failed") 
else (%SAFE%\safekit printi "MilestoneEventServerService started")

net start "Milestone XProtect Data Collector Server"
if not %errorlevel% == 0 (%SAFE%\safekit printi "Milestone XProtect Data Collector Server start failed") 
else (%SAFE%\safekit printi "Milestone XProtect Data Collector Server started")

set res=%errorlevel%

if %res% == 0 goto end

:stop
"%SAFE%\safekit" printe "start_prim failed"

rem uncomment to stop SafeKit when critical
rem "%SAFE%\safekit" stop -i "start_prim"

:end

stop_prim.cmd

@echo off

rem Script called on the primary server for stopping application services 

rem For logging into SafeKit log use:
rem "%SAFE%\safekit" printi | printe "message"

rem ----------------------------------------------------------
rem
rem 2 stop modes:
rem
rem - graceful stop
rem   call standard application stop with net stop
rem
rem - force stop (%1=force)
rem   kill application's processes
rem
rem ----------------------------------------------------------

rem stdout goes into Application log
echo "Running stop_prim %*" 

set res=0

rem default: no action on forcestop
if "%1" == "force" goto end

%SAFE%\safekit printi "Stopping Milestone XProtect Data Collector Server"
net stop "Milestone XProtect Data Collector Server"

%SAFE%\safekit printi "Stopping Milestone Event Server Service"
net stop "MilestoneEventServerService"

%SAFE%\safekit printi "Stopping Milestone XProtect Management Server"
net stop "Milestone XProtect Management Server"

%SAFE%\safekit printi "Stopping SQL Server (MSSQLSERVER)"
net stop "MSSQLSERVER"

rem Wait a little for the real stop of services
"%SAFEBIN%\sleep" 10

if %res% == 0 goto end

"%SAFE%\safekit" printe "stop_prim failed"

:end

Démonstration

Cette démonstration est réalisée avec uniquement Microsoft SQL Server Express mais le mode opératoire est le même que celui de Milestone XProtect.

Plus d'information sur SafeKit

Autres exemples de modules de haute disponibilité :

Modules miroirs

Windows

Linux

Microsoft SQL Servermodule Windows-
Oraclemodule Windowsmodule Linux
MySQLmodule Windowsmodule Linux
PostgreSQLmodule Windowsmodule Linux
Firebirdmodule Windowsmodule Linux
Hyper-Vmodule Windows-
Milestone XProtect (basé sur Microsoft SQL Server)module Windows-
Hanwha SSM (basé sur PostgreSQL Server)module Windows-
Module génériquemodule Windowsmodule Linux

Modules fermes

Windows

Linux

Module IISmodule Windows-
Module Apachemodule Windowsmodule Linux
Module génériquemodule Windowsmodule Linux
contact
CONTACT
Démonstration

Evidian SafeKit Prix





Livres blancs

NEWS

Pour recevoir des informations d'Evidian, veuillez remplir le formulaire suivant.