Siemens SIMATIC PCS 7 : redondance & haute disponibilité avec une solution active active très simple
Avec la réplication temps réel et le basculement sur panne d'Evidian SafeKit
La solution pour Siemens SIMATIC PCS 7
Evidian SafeKit apporte la redondance et la haute disponibilité à Siemens SIMATIC PCS 7 entre deux serveurs actifs.
Cet article explique comment mettre en place rapidement un cluster Siemens SIMATIC PCS 7 sans compétences particulières. Aucune configuration spécifique de PCS 7 n'est requise pour la redondance.
Le principe de la solution est de mettre les applications PCS 7 dans des machines virtuelles sous Hyper-V. SafeKit met en œuvre la réplication en temps réel et le basculement automatique des machines virtuelles.
Pas de matériel spécifique, pas d'hyperviseur spécifique
Hyper-V est l'hyperviseur natif de Windows inclus gratuitement dans toutes les versions de Windows, même Windows pour PC. Et SafeKit fonctionne avec Windows pour serveurs et PC.
SafeKit est indépendant du matériel. C'est une solution purement logicielle qui ne nécessite aucun matériel supplémentaire. Il n'est pas nécessaire d'avoir un disque partagé, un SAN répliqué, des disques dédiés, des réseaux dédiés.
À propos des produits sous licence Siemens LMS
- Pour éviter la rupture de la licence Siemens lors du basculement, le dongle contenant la clé Siemens peut être placé dans un périphérique USB sur IP (comme DIGI AnywhereUSB).
- Le dongle peut être également inséré dans un PC externe avec le serveur de licence LMS sur le PC (par exemple le PC qui gère l'interface graphique Siemens).
Redondance et haute disponibilité au niveau de l'application
Dans ce type de solution, seules les données applicatives sont répliquées. Et seule l'application est redémarrée en cas de panne.
Avec cette solution, des scripts de reprise doivent être écrits pour redémarrer l'application. Cette solution est indépendante de la plate-forme et fonctionne avec des applications à l'intérieur de machines physiques, de machines virtuelles, dans le Cloud. Tout hyperviseur est supporté (VMware, Hyper-V...).
Redondance et haute disponibilité au niveau machine virtuelle
Dans ce type de solution, le logiciel SCADA est placé dans une machine virtuelle. La machine virtuelle (VM) complète est répliquée et redémarrée (Application + OS).
L'avantage de cette solution est qu'il n'y a pas de scripts de reprise à écrire par application. Cette solution est générique pour tous les logiciels SCADA. Elle fonctionne avec les hyperviseurs Windows/Hyper-V et Linux/KVM mais pas avec VMware. Il s'agit d'une solution active/active avec plusieurs machines virtuelles répliquées et redémarrées entre deux nœuds.
- Solutions pour une nouvelle application (pas de script de reprise à écrire) : Windows/Hyper-V, Linux/KVM
Solution préférée par Siemens
SafeKit est disponible dans le marketplace Siemens avec ses logiciels SCADA : Desigo CC (gestion technique du bâtiment), SIMATIC WinCC, SIMATIC PCS 7 et aussi avec la suite Siveillance (vidéo et contrôle d'accès).
SafeKit est déployé par Siemens en Australie, en France, aux Pays-Bas, au Qatar, en Suisse, aux Émirats arabes unis, au Royaume-Uni et aux États-Unis.
SafeKit choisi par le groupe Alstef
Alstef Group, acteur clé des systèmes de tri des bagages, déploie SafeKit pour la redondance et la haute disponibilité de sa suite logicielle SCADA, BAGware.
SafeKit a été déployé par Alstef dans de nombreux aéroports avec BAGware.
Fives Syleps a choisi SafeKit
Fives Syleps, acteur clé de la logistique automatisée, déploie SafeKit pour la redondance et la haute disponibilité de sa suite logicielle.
SafeKit a été déployé par Fives Syleps dans de nombreuses usines.
Réplication Hyper-V intégrée
- Réplication asynchrone => perte de données
- Basculement manuel (pas de basculement automatique)
- Ce n'est une solution de haute disponibilité
Clustering Microsoft (idem avec VMware HA)
- Nécessite un disque partagé
- Prix du disque partagé et de son installation (SAN, iSCSI)
- Complexité de la configuration de Windows failover cluster (AD…)
- Sites distants = stockage répliqué
Evidian SafeKit
- Simple et économique
- Réplication synchrone => pas de perte de données
- Basculement et réintégration automatiques
- Aucun disque partagé
- Essai gratuit et guide d'installation rapide
Prérequis
- Vous avez besoin du rôle Hyper-V installé sur 2 nœuds Windows (intégré gratuitement dans toutes les versions de Windows incluant les versions Windows pour PC).
- Vous devez avoir vos applications critiques installées dans une ou plusieurs machines virtuelles.
- Comme le script de basculement importe la machine virtuelle sur l'Hyper-V secondaire, faites attention aux paramètres Hyper-V et à la compatibilité du processeur entre les 2 nœuds.
Installation du package sous Windows
-
Téléchargez la version gratuite de SafeKit sur 2 nœuds Windows.
Remarque : la version gratuite inclut toutes les fonctionnalités de SafeKit. À la fin de l'essai, vous pouvez activer des clés de licence permanentes sans désinstaller le package.
-
Pour ouvrir le pare-feu Windows, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez
c:/safekit/private/bin/firewallcfg add
-
Pour initialiser le mot de passe de l'utilisateur admin par défaut de la console, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez
c:/safekit/private/bin/webservercfg.ps1 -passwd mdp
- Utilisez des caractères alphanumériques pour le mot de passe (pas de caractères spéciaux).
- mdp doit être le même sur les deux nœuds.
-
Pour synchroniser SafeKit au démarrage et à l'arrêt, sur les deux nœuds démarrez un powershell en tant qu'administrateur et tapez une seule fois
c:/safekit/private/bin/addStartupShutdown
Installation du module sous Windows
-
Téléchargez le module hyperv.safe.
Le module est gratuit. Il contient les fichiers userconfig.xml et les scripts de redémarrage.
- Mettez hyperv.safe sous C:\safekit\Application_Modules\demo (créez le répertoire de démonstration s'il n'existe pas).
La configuration Hyper-V est présentée avec une machine virtuelle nommée VM1 et contenant l'application à redémarrer en cas de panne.
Vous devrez répéter cette configuration pour toutes les VM que vous souhaitez répliquer et redémarrer. SafeKit prend en charge jusqu'à 25 machines virtuelles.
1. Prérequis
Les fichiers de la machine virtuelle VM1 (fichier de configuration de VM1, disque dur virtuel...) doivent être placés dans un même dossier : ce dossier sera répliqué par SafeKit.
Assurez-vous que le ou les noms des switchs virtuels référencés par la machine virtuelle existent sur les deux serveurs Hyper-V et correspondent au même réseau physique.
Si tous les fichiers de VM1 ne sont pas dans le même dossier, utilisez le gestionnaire Hyper-V :
- Exporter VM1 dans un dossier, par exemple dans D:\Repli-Hyper-V
- Cet export créera un dossier D:\Repli-Hyper-V\VM1\ contenant tous les fichiers de VM1
- Supprimer VM1 de l'inventaire du gestionnaire Hyper-V
- Importer VM1, précédemment exporté, dans le gestionnaire Hyper-V
2. Lancez la console SafeKit
- Lancez la console Web dans un navigateur sur un nœud en vous connectant à
http://localhost:9010
. - Entrez
admin
comme nom d'utilisateur et le mot de passe défini durant l'installation.
Vous pouvez également exécuter la console dans un navigateur sur un poste de travail externe au cluster.
La configuration de SafeKit se fait sur les deux nœuds depuis un seul navigateur.
Pour sécuriser la console Web, consultez 11. Sécurisation de la console Web SafeKit dans le Guide de l'utilisateur.
3. Configurez les adresses des nœuds
- Saisissez les adresses IP des nœuds.
- Ensuite, cliquez sur
Apply
pour enregistrer la configuration.
Si la couleur d'arrière-plan du nœud 1 ou du nœud 2 est rouge, vérifiez la connectivité du navigateur aux deux nœuds et vérifiez le pare-feu sur les deux nœuds pour résoudre le problème.
Cette opération placera les adresses IP dans le fichier cluster.xml
sur les deux nœuds (plus d'informations dans la formation avec la ligne de commande).
5. Configurez le module
- Choisissez un démarrage automatique du module au boot sans délai.
- Normalement, vous disposez d'un seul réseau heartbeat sur lequel la réplication est effectuée. Mais, vous pouvez définir un réseau privé si nécessaire.
- Mettez dans VM_PATH, le chemin racine du répertoire répliqué (D:\Repli-Hyper-V).
- Entrez dans VM_NAME, le nom de la machine virtuelle (VM1).
Nous supposons que tous les fichiers de VM1 sont dans D:\Repli-Hyper-V\VM1\ (voir prérequis). Ce répertoire sera répliqué en temps réel par SafeKit.
Les valeurs NORMAL_STOP et FORCE_STOP peuvent être "stop", "save" ou "off" :
- "stop" arrête la VM lorsque le module est arrêté.
- "save" enregistre l'état actuel de la VM (suspend) lorsque le module est arrêté.
- "off" éteint la VM (mise hors tension) lorsque le module est arrêté.
"stop" est recommandé car il provoque l'arrêt puis le redémarrage de la VM lorsque le module est arrêté et redémarré. Ainsi, l'application à l'intérieur de la VM est redémarrée.
Ce sera le cas, par exemple, lors du basculement entre les rôles primaire et secondaire.
Cette opération reportera la configuration dans le fichier userconfig.xml
sur les deux nœuds (plus d'informations dans la formation avec la ligne de commande).
7. Démarrez le nœud avec des données à jour
- Si le nœud 1 possède le répertoire répliqué
VM1\
à jour, sélectionnez-le et démarrez-le.
Lorsque le nœud 2 sera démarré, toutes les données de VM1\
seront copiées du nœud 1 vers le nœud 2.
Si vous faites le mauvais choix, vous courez le risque de synchroniser des données obsolètes sur les deux nœuds.
On suppose également que la machine virtuelle VM1 est arrêtée sur le noeud 1 afin que SafeKit installe les mécanismes de réplication puis démarre VM1 dans le script start_prim
.
8. Attendez le passage à ALONE (vert)
- Le nœud 1 doit atteindre l'état ALONE (vert), ce qui signifie que le script
start_prim
a été exécuté sur le nœud 1.
Si le statut est ALONE (vert) et que VM1 n'est pas démarré, vérifiez les messages de sortie de start_prim
dans l'Application Log du nœud 1.
Si le nœud 1 n'atteint pas l'état ALONE (vert), analysez pourquoi avec le Module Log du nœud 1.
Si le cluster est dans l'état WAIT (rouge) not uptodate - STOP (rouge) not uptodate
, arrêtez le nœud WAIT et force son démarrage en tant que primaire.
9. Démarrez le nœud 2
- Démarrez le nœud 2 avec son menu contextuel.
- Attendre l'état SECOND (vert).
Le nœud 2 reste dans l'état SECOND (magenta) pendant la resynchronisation du répertoire répliqué VM1\
(copie du nœud 1 vers le nœud 2).
Cela peut prendre un certain temps en fonction de la taille des fichiers à resynchroniser dans VM1\
et de la bande passante du réseau.
Pour voir la progression de la copie, consultez le Module Log du nœud 2 avec l'option verbose sans oubliez de rafraichir la fenêtre.
12. Testez
- Arrêtez le nœud PRIM en faisant défiler son menu contextuel et en cliquant sur Stop.
- Vérifiez qu'il y a un basculement sur le nœud SECOND qui devrait devenir ALONE (vert).
- Vérifiez le redémarrage de VM1 avec le gestionnaire Hyper-V.
Si VM1 n'est pas démarré sur le noeud 2 alors que l'état est ALONE (vert), vérifiez les messages de sortie du script start_prim
dans l'Application Log du nœud 2.
Comme le script start_prim
importe la machine virtuelle sur le nœud 2, le basculement peut échouer à cause des paramètres Hyper-V (voir cet article).
Si ALONE (vert) n'est pas atteint, analysez pourquoi avec le Module Log du nœud 2.
Journal du module
- Lisez le journal du module pour comprendre les raisons d'un basculement, d'un état d'attente etc...
Pour voir le journal du module du nœud 1 (image) :
- cliquez sur l'onglet Control
- cliquez sur node 1/PRIM sur le côté gauche pour sélectionner le serveur (il devient bleu)
- cliquez sur Module log
- cliquez sur l'icône Actualiser (flèches vertes) pour mettre à jour la console
- cliquez sur la disquette pour enregistrer le journal du module dans un fichier .txt et l'analyser dans un éditeur de texte
Cliquez sur node2 pour voir le journal du module du serveur secondaire.
Journal applicatif
- Lisez le journal applicatif pour voir les messages de sortie des scripts de redémarrage start_prim et stop_prim.
Pour voir le journal applicatif du nœud 1 (image) :
- cliquez sur l'onglet Control
- cliquez sur node 1/PRIM sur le côté gauche pour sélectionner le serveur (il devient bleu)
- cliquez sur Application Log pour voir les messages lors du démarrage et de l'arrêt des services
- cliquez sur l'icône Actualiser (flèches vertes) pour mettre à jour la console
- cliquez sur la disquette pour enregistrer le journal applicatif dans un fichier .txt et l'analyser dans un éditeur de texte
Cliquez sur le nœud 2 pour voir le journal applicatif du serveur secondaire.
Configuration avancée
- Dans l'onglet Advanced Configuration, vous pouvez modifier les fichiers internes du module : bin/start_prim et bin/stop_prim et conf/userconfig.xml.
Si vous apportez des modifications dans les fichiers internes, vous devez appliquer la nouvelle configuration par un clic droit sur l'icône/xxx sur le côté gauche (voir image) : l'interface vous permettra de redéployer les fichiers sur les deux serveurs.
Support
- Pour obtenir de l'aide, prenez 2 Snapshots SafeKit (2 fichiers .zip), un pour chaque serveur.
Si vous avez un compte sur https://support.evidian.com, téléchargez-les dans l'outil call desk.
Comment fonctionne un cluster Hyper-V avec réplication et basculement sur panne de Siemens SIMATIC PCS 7 ?
Les étapes suivantes sont décrites pour une seule machine virtuelle contenant Siemens SIMATIC PCS 7 dans un seul module miroir. Chaque machine virtuelle répliquée s'exécute dans un module miroir indépendant (dans une limite de 25 machines virtuelles) avec un serveur primaire qui peut être soit le serveur Hyper-V 1 ou le serveur Hyper-V 2.
Etape 1. Réplication en temps réel
Le serveur 1 (PRIM) exécute la VM (machine virtuelle) contenant Siemens SIMATIC PCS 7. SafeKit réplique en temps réel les fichiers de la VM (disques durs virtuels, configuration de la VM). Seules les modifications faites à l'intérieur des fichiers sont répliquées en continue à travers le réseau.
La réplication est synchrone sans perte de données en cas de panne contrairement à une réplication asynchrone.
Il vous suffit de configurer le nom du répertoire contenant la VM dans SafeKit. Il n'y a pas de pré-requis sur l'organisation du disque. Le répertoire peut se trouver sur le disque système.
Etape 2. Basculement automatique
Lorsque le serveur 1 tombe en panne, le serveur 2 prend le relais. SafeKit redémarre la VM contenant Siemens SIMATIC PCS 7 sur le serveur 2. Hyper-V trouve les fichiers répliqués par SafeKit à jour sur le serveur 2.
La VM continue de s'exécuter sur le serveur 2 en modifiant localement ses fichiers qui ne sont pas plus répliqués sur le serveur 1.
Le temps de basculement est égal au temps de détection de panne (30 secondes par défaut) plus le temps de redémarrage de la VM.
Etape 3. Réintégration après panne
A la reprise après panne du serveur 1 (réintégration du serveur 1), SafeKit resynchronise automatiquement les fichiers de la VM à partir de l'autre serveur.
La réintégration du serveur 1 se fait sans arrêter l'exécution de la VM contenant Siemens SIMATIC PCS 7 sur le serveur 2.
Etape 4. Retour à la normale
Après la réintégration, les fichiers de la VM sont à nouveau en mode miroir, comme à l'étape 1. Le système est de nouveau en mode haute disponibilité, la VM contenant Siemens SIMATIC PCS 7 s'exécutant sur le serveur 2 et SafeKit répliquant les mises à jour sur le serveur 1.
Si l'administrateur souhaite que son application s'exécute en priorité sur le serveur 1, il peut exécuter une commande de basculement, soit manuellement à un moment opportun, soit automatiquement par configuration.
Plus d'information sur une coupure de courant et un isolement du réseau dans un cluster.
Pourquoi une réplication de quelques Tera-octets ?
Temps de resynchronisation après panne (étape 3)
- Réseau 1 Gb/s ≈ 3 heures pour 1 téraoctet.
- Réseau 10 Gb/s ≈ 1 heure pour 1 téraoctet ou moins en fonction des performances d'écriture disque.
Alternative
- Pour un grand volume de données, utilisez un stockage partagé externe.
- Plus cher, plus complexe.
Pourquoi une réplication < 1 000 000 fichiers ?
- Performance du temps de resynchronisation après panne (étape 3).
- Temps pour vérifier chaque fichier entre les deux nœuds.
Alternative
- Placez les nombreux fichiers à répliquer sur un disque dur virtuel / une machine virtuelle.
- Seuls les fichiers représentant le disque dur virtuel / la machine virtuelle seront répliqués et resynchronisés dans ce cas.
Pourquoi un basculement < 25 VMs répliquées ?
- Chaque VM s'exécute dans un module miroir indépendant.
- Maximum de 25 modules miroir exécutés sur le même cluster.
Alternative
- Utilisez un stockage partagé externe et une autre solution de clustering de VMs.
- Plus cher, plus complexe.
Pourquoi un réseau LAN/VLAN entre sites distants ?
- Basculement automatique de l'adresse IP virtuelle avec 2 nœuds dans le même sous-réseau.
- Bonne bande passante pour la resynchronisation (étape 3) et bonne latence pour la réplication synchrone (quelques ms).
Alternative
- Utilisez un équilibreur de charge pour l'adresse IP virtuelle si les 2 nœuds sont dans 2 sous-réseaux (supporté par SafeKit, notamment dans le cloud).
- Utilisez des solutions de backup avec réplication asynchrone pour un réseau à latence élevée.
Partenaires, le succès avec SafeKit
Cette solution indépendante de la plateforme est idéale pour un partenaire revendant une application critique et qui souhaite proposer une option de redondance et de haute disponibilité simple à déployer auprès de nombreux clients.
Avec de nombreuses références dans de nombreux pays gagnées par des partenaires, SafeKit s'est avéré être la solution la plus simple à mettre en œuvre pour la redondance et la haute disponibilité des logiciels de gestion des bâtiments, vidéosurveillance, contrôle d'accès, systèmes SCADA...
Logiciel de gestion des bâtiments (BMS)
Logiciel de gestion vidéo (VMS)
Contrôle d'accès électroniques (EACS)
Logiciels SCADA (Industrie)
SafeKit avec le module Hyper-V ou le module KVM | Microsoft Hyper-V Cluster & VMware HA |
|
|
Notez que les solutions Hyper-V/SafeKit et KVM/SafeKit sont limitées à la réplication et au basculement de 25 machines virtuelles.
HA de VMs avec le module Hyper-V ou KVM de SafeKit | HA d'application avec les modules applicatifs de SafeKit |
SafeKit dans 2 hyperviseurs
|
SafeKit dans 2 machines virtuelles ou physiques |
Réplique plus de données (App+OS) | Réplique seulement les données applicatives |
Reboot de la machine virtuelle sur l'hyperviseur 2 si l'hyperviseur 1 crash Temps de reprise dépendant du reboot de l'OS |
Temps de reprise rapide avec redémarrage de l'application sur OS2 en cas de panne du serveur 1 Autour d'1 mn ou moins (voir RTO/RPO ici) Checker applicatif et reprise sur panne logicielle |
Solution générique pour n'importe quelle application / OS | Scripts de redémarrage à écrire dans des modules applicatifs de haute disponibilité |
|
|
Cluster de type "shared nothing"" vs cluster à disque partagé |
|
|
|
|
|
Haute disponibilité vs tolérance aux fautes |
|
|
|
Réplication synchrone vs réplication asynchrone |
|
|
|
Réplication de fichiers au niveau octet vs réplication de disque au niveau du bloc |
|
|
|
Heartbeat, reprise sur panne et quorum pour éviter 2 serveurs maîtres |
|
|
|
|
|
Partage de charge réseau et reprise sur panne |
|
Windows farm |
Linux farm |
Generic farm > | Generic farm > |
Microsoft IIS > | - |
NGINX > | |
Apache > | |
Amazon AWS farm > | |
Microsoft Azure farm > | |
Google GCP farm > | |
Other cloud > |
Architectures de clustering avancée
Plusieurs modules peuvent être déployés dans le même cluster. Ainsi, des architectures de clustering avancées peuvent être mises en œuvre :
- un cluster qui mixte ferme et miroir avec le déploiement d’un module ferme et d’un module miroir dans le même cluster,
- un cluster actif/actif avec réplication en déployant plusieurs modules miroirs sur 2 serveurs,
- un cluster Hyper-V ou un cluster KVM avec réplication temps réel et reprise de machines virtuelles complètes entre 2 hyperviseurs actifs,
- un cluster N-1 avec le déploiement de N modules miroirs sur N+1 serveurs.
Réplication de fichiers temps réel et reprise sur panne |
|||||||||||||||||||||||||||||||
Windows mirror |
Linux mirror |
||||||||||||||||||||||||||||||
Generic mirror > | Generic mirror > | ||||||||||||||||||||||||||||||
Microsoft SQL Server > | - | ||||||||||||||||||||||||||||||
Oracle > | |||||||||||||||||||||||||||||||
MariaDB > | |||||||||||||||||||||||||||||||
MySQL > | |||||||||||||||||||||||||||||||
PostgreSQL > | |||||||||||||||||||||||||||||||
Firebird > | |||||||||||||||||||||||||||||||
Windows Hyper-V > | Linux KVM > | ||||||||||||||||||||||||||||||
- | Docker > Podman > Kubernetes K3S > |
||||||||||||||||||||||||||||||
- | |||||||||||||||||||||||||||||||
- | Elasticsearch > | ||||||||||||||||||||||||||||||
Milestone XProtect > | - | ||||||||||||||||||||||||||||||
Genetec SQL Server > | - | ||||||||||||||||||||||||||||||
Hanwha Wisenet Wave > Hanwha Wisenet SSM > |
- | ||||||||||||||||||||||||||||||
Nedap AEOS > | - | ||||||||||||||||||||||||||||||
Siemens SIMATIC WinCC > Siemens SIMATIC PCS 7 > Siemens Desigo CC > Siemens Siveillance suite > Siemens Siveillance VMS > Siemens SiPass > Siemens SIPORT > |
- | ||||||||||||||||||||||||||||||
Bosch AMS > Bosch BIS > Bosch BVMS > |
- | ||||||||||||||||||||||||||||||
Amazon AWS mirror > | |||||||||||||||||||||||||||||||
Microsoft Azure mirror > | |||||||||||||||||||||||||||||||
Google GCP mirror > | |||||||||||||||||||||||||||||||
Other cloud > |
Guide de l'utilisateur
Modules applicatifs
Release Notes
Documentation d'avant vente
Introduction
- Fonctionnalités
- Architectures
- Avantages distinctifs
-
- Cluster matériel vs logiciel
- Réplication synchrone vs asynchrone
- Réplications de fichiers vs disques
- Haute disponibilité vs tolérance aux fautes
- Load balancing matériel vs logiciel
- HA de machines virtuelles vs applications
Installation, configuration, CLI
-
- Installation du package
- Configuration des nœuds
- Configuration du cluster
- Upgrade
-
- Configuration du cluster
- Onglet Configuration
- Onglet Contrôle
- Onglet Supervision
- Onglet Configuration avancée
-
- Installation silencieuse
- Administration du cluster
- Administration du module
- Command line interface
Configuration avancée
-
- userconfig.xml + restart scripts
- Heartbeat (<hearbeat>)
- Virtual IP address (<vip>)
- Real-time file replication (<rfs>)
-
- userconfig.xml + restart scripts
- Farm configuration (<farm>)
- Virtual IP address (<vip>)
-
- Failover machine (<failover>)
- Process monitoring (<errd>)
- Network and duplicate IP checkers
- Custom checker (<custom>)
- Split brain checker (<splitbrain>)
- TCP, ping, module checkers
Support
-
- Analyse des snapshots
-
- Récupérer les clés permanentes
- S'enregistrer sur support.evidian.com
- Call desk