KVM High Availability met SafeKit: Installeer de kvm.safe module voor failover
Snelinstallatiegids voor hoge beschikbaarheid voor KVM
Deze handleiding legt uit hoe u een mirror-cluster voor KVM instelt met SafeKit, wat zorgt voor automatische failover en synchrone replicatie zonder dat er gedeelde opslag nodig is.
Voor hulp kunt u SafeKit AI 🤖 gebruiken.
1. Overzicht
- Architectuur: maakt gebruik van een systeem met twee knooppunten (primair/secundair).
- Gegevensbescherming: implementeert synchrone replicatie in realtime voor nul gegevensverlies (RPO = 0).
2. Installatie
- Software: Installeer de SafeKit-engine op beide servers.
- Module: Download de vooraf geconfigureerde
kvm.safe-applicatiemodule.
3. Configuratie
- Webconsole: configureer de specifieke mappen die de KVM bestanden bevatten.
- Monitoren: Begin met het monitoren en beveiligen van de KVM applicatie.
Beperkingen SafeKit High Availability
| Limiet / Vereiste | Reden en impact | Aanbevolen alternatief |
|---|---|---|
| Replicatiegrootte: een paar TB | Resynchronisatietijd na storing (stap 3): • 1 Gb/s-netwerk ≈ 3 uur/TB • 10 Gb/s-netwerk ≈ 1 uur/TB (afhankelijk van de schrijfsnelheid van de schijf) | • Gebruik externe gedeelde opslag (duurder, complexer). |
| Aantal bestanden: < 1.000.000 bestanden | • Prestaties van de resynchronisatietijd na een storing (stap 3). • Tijd die nodig is om elk bestand tussen beide knooppunten te vergelijken. | • Plaats de vele bestanden die u wilt repliceren op een virtuele harde schijf/virtuele machine. • In dit geval worden alleen de bestanden die de virtuele harde schijf/virtuele machine vertegenwoordigen, gerepliceerd en opnieuw gesynchroniseerd. |
| Failovercapaciteit: ≤ 32 VM’s | • Elke VM draait in een onafhankelijke mirror-module. • Maximaal 32 mirror-modules die op hetzelfde cluster draaien. | • Gebruik een externe gedeelde opslag en een andere VM-clusteroplossing (duurder, complexer). |
| Netwerkarchitectuur: LAN/VLAN-netwerk tussen externe locaties | • Automatische failover van het virtuele IP-adres met 2 knooppunten in hetzelfde subnet. • Goede bandbreedte voor resynchronisatie (stap 3). • Lage latentie voor synchrone replicatie: doorgaans < 5 ms RTT; hogere waarden moeten worden gevalideerd aan de hand van de schrijfsnelheid van de toepassing. | • Als de twee knooppunten zich in verschillende subnets bevinden (gebruikelijk in de cloud), gebruik dan andere omleidingsopties: een load balancer, CLI’s van cloudproviders, BGP of DNS-omleiding. • Gebruik back-upoplossingen met asynchrone replicatie voor netwerken met hoge latentie. |
Overzicht van de SafeKit/KVM oplossing
De oplossing wordt hier beschreven: 💡 Eenvoudige Linux KVM hoge beschikbaarheid zonder gedeelde opslag
Installatie van de SafeKit/KVM-oplossing op Linux (kvm.safe)
Vereisten
- KVM geïnstalleerd op 2 Linux knooppunten.
- Kritieke toepassingen die in een of meer virtuele machines zijn geïnstalleerd.
- Maximaal 32 virtuele machines per KVM host.
- De totale gerepliceerde gegevens zijn beperkt tot een paar terabytes; daarboven wordt de resynchronisatietijd aanzienlijk.
- Minimale interconnectie tussen knooppunten van 1 Gb/s (10 Gb/s aanbevolen voor snellere resynchronisatie).
- IP-failover vereist dat beide knooppunten zich in hetzelfde LAN of uitgebreide LAN (L2) bevinden — gerouteerde L3-netwerken worden niet ondersteund (behalve met 🛠️ cloud load balancers).
Pakketinstallatie op Linux
- Installeer de gratis versie van SafeKit op 2 Linux knooppunten. Opmerking: de gratis proefversie bevat alle SafeKit functies. Aan het einde van de proefperiode kunt u permanente licentiesleutels activeren zonder het pakket te de-installeren.
- Nadat u het pakket safekit_xx.bin hebt gedownload, voert u het uit om het rpm-bestand en het safekitinstall-script uit te pakken en voert u vervolgens het safekitinstall-script uit
- Beantwoord de vraag over de automatische configuratie van de firewall met ja
- Stel het wachtwoord in voor de webconsole en de standaardgebruiker admin. Stel hetzelfde wachtwoord in op alle knooppunten.
Module-installatie op Linux
- Download de kvm.safe module.
De module is gratis. De module bevat de bestanden userconfig.xml en de herstartscripts. - Plaats kvm.safe in /opt/safekit/Application_Modules/generic/.
Stapsgewijze configuratie van de SafeKit/KVM oplossing
⚠️ De KVM configuratie wordt gepresenteerd met een virtuele machine met de naam VM1 en bevat de toepassing die opnieuw moet worden gestart in geval van een storing.
⚠️ U moet deze configuratie herhalen voor alle VM’s die u wilt repliceren en opnieuw wilt opstarten.
1. Vereisten
De VM1 virtuele machine-image bevindt zich in het bestand /var/lib/libvirt/images/vm1.qcow2. Voordat u SafeKit configureert, moet u de volgende configuratie uitvoeren om de virtuele machine in een vm1-specifieke map te plaatsen die door SafeKit zal worden gerepliceerd.
Op node 1:
vm1 stoppen:
virsh shutdown vm1Maak een
vm1/-directory aan:mkdir -p /var/lib/libvirt/images/vm1/Kopieer de vm1 image naar de nieuwe locatie:
cp -a /var/lib/libvirt/images/vm1.qcow2 /var/lib/libvirt/images/vm1/
De oorspronkelijke vm1 image kan worden verwijderd zodra de tests met de nieuwe locatie succesvol zijn.
Bewerk het configuratiebestand vm1:
EDITOR=vi virsh edit vm1
En wijzig de regel:
<source file='/var/lib/libvirt/images/vm1.qcow2'>
door:
<source file='/var/lib/libvirt/images/vm1/vm1.qcow2'>
Stel de cacheoptie in op ‘geen’ in hetzelfde bestand, voor gegevensintegriteit in geval van een crash:
<disk type='file' device='disk'> <driver name='qemu' type='qcow2' **cache='none'** />Sluit het configuratiebestand vm1
Automatische start van vm1 uitschakelen:
virsh autostart vm1 --disableMaak een configuratiebestand
vm1.xmlvoor vm1:virsh dumpxml vm1 > vm1.xml
Op knooppunt 2:
Kopieer het configuratiebestand
vm1.xmlvan node 1. Opmerking: telkens wanneer vm1 configuratie op node 1 wordt gewijzigd, moet u de nieuwe configuratie opnieuw toepassen op node 2.Maak vm1 aan, maar start deze niet:
virsh define vm1.xmlAutomatische start vm1 uitschakelen:
virsh autostart vm1 --disableMaak de map voor de afbeeldingslocatie aan:
mkdir -p /var/lib/libvirt/images/vm1/
2. Start de SafeKit console
- Start de webconsole in een browser op een clusterknooppunt door verbinding te maken met
http://localhost:9010. - Voer
adminin als gebruikersnaam en het wachtwoord dat tijdens de installatie is gedefinieerd.
U kunt de console ook in een browser uitvoeren op een werkstation dat zich buiten het cluster bevindt.
⚠️ De configuratie van SafeKit gebeurt op beide knooppunten vanuit één browser.
ℹ️ Raadpleeg 🛠️ 11. De SafeKit-webservice beveiligen in de gebruikershandleiding om de webconsole te beveiligen.

3. Knoopp Adressen configureren
- Voer de IP-adressen van de knooppunten in, druk op de
Tab keyom de connectiviteit te controleren en vul de namen van de knooppunten in. Als node1 of node2 rood is, controleer dan de connectiviteit van de browser met beide knooppunten en controleer de firewall op beide knooppunten voor 🛠️ probleemoplossing. - Klik vervolgens op
Save and applyom de configuratie op te slaan. - Controleer het
Success✅ op beide knooppunten. - Als de
Failure❌ optreedt op één node, open dan het ▼ accordeon voor die node en bekijk de berichten. Merk op dat u de SafeKit AI 🤖 kunt gebruiken voor hulp.
ℹ️ Indien gewenst kunt u een nieuw LAN and nodes toevoegen (eerst ➕) om een tweede heartbeat en een speciaal replicatienetwerk te creëren.
ℹ️ Als u op Advanced configuration klikt, wordt het bestand cluster.xml weergegeven. Dit bestand wordt automatisch ingevuld door de console en geïmplementeerd op de knooppunten.

4. Selecteer een module
- Klik in de
New moduleop de modulekvm.safe.
ℹ️ In de blauwe banner bovenaan staat 🛜 node1 voor de consoleverbindingsnode. Deze node stuurt verzoeken door naar node2 wanneer dat nodig is.
ℹ️ De console zoekt naar xxx.safe in de map Application_Modules/generic/ op de verbindingsnode (node1) als u daar tijdens de installatie een module hebt geplaatst.

5. De module configureren
- Kies voor een
Automaticstart van de module bij het opstarten zonder vertraging. - Normaal gesproken hebt u één
Heartbeatnetwerk waarop de replicatie wordt uitgevoerd. Maar u kunt indien nodig een privénetwerk definiëren (door een LAN toe te voegen in stap 3). - Voer in
VM_PATHhet hoofdpad van de gerepliceerde map in (/var/lib/libvirt/images). - Voer bij
VM_NAMEde naam van de virtuele machine in (vm1).
We gaan ervan uit dat de VM1 bestanden zich in /var/lib/libvirt/images/vm1/ bevinden (zie vereisten). Deze map wordt in realtime gerepliceerd door SafeKit.
ℹ️ U hoeft geen virtueel IP-adres te configureren. VM1 wordt opnieuw opgestart op de secundaire KVM met zijn fysieke IP-adres en dit IP-adres wordt omgeleid.

6. Aangepaste checker om VM-storingen te detecteren
De aangepaste checker controleert of de VM actief is (met de opdracht ‘virsh domstate’). Als de VM niet actief is, start de aangepaste checker de VM automatisch opnieuw op op dezelfde KVM node of op de andere.
- Klik op
Checkers / Custom(zie afbeelding). Resource nameidentificeert de virtuele machine met een resourcenaam in SafeKit:custom.VM_NAME_check.- Met
restartinActionwordt de VM opnieuw opgestart op dezelfde KVM node. Na 3 mislukte herstarts in 24 uur stopt de SafeKit kvm module op de primaire node en vindt er een failover van de VM plaats op de secundaire node. - Als u
stopstartinstelt inAction, vindt er een directe failover plaats op de andere KVM node zodra de VM niet meer actief is.
ℹ️ Als u de virtuele machine wilt stoppen voor onderhoud, zal de aangepaste checker deze automatisch opnieuw opstarten. Om dat te voorkomen, kunt u de checker tijdelijk opschorten 🖼️. Of u kunt deze verwijderen door de configuratieregel in de console te verwijderen.

7. Scripts bewerken (optioneel)
- Bewerk geen scripts.
8. Communicatieversleuteling (optioneel)
- De versleuteling van de communicatie tussen knooppunten behouden.

9. Opslaan en toepassen
Save and applyop beide knooppunten.

10. Controleer of de configuratie succesvol is
- Controleer het
Success✅ op beide knooppunten en klik opMonitor modules. - Als de
Failure❌ optreedt op één node, open dan het ▼ accordeon voor die node en bekijk de berichten. Merk op dat u de SafeKit AI 🤖 kunt gebruiken voor hulp.

11. Start de node met actuele gegevens
- Als knooppunt 1 de meest recente gerepliceerde map voor
vm1/heeft, selecteer deze dan en ⋯Force start▶As primary.
Wanneer knooppunt 2 wordt gestart, worden alle gegevens van knooppunt 1 naar knooppunt 2 gekopieerd.
⚠️ Als u de verkeerde keuze maakt, loopt u het risico dat u verouderde gegevens op beide knooppunten synchroniseert.
⚠️ Er wordt ook aangenomen dat VM1 is gestopt op node 1, zodat SafeKit de replicatiemechanismen installeert en vervolgens VM1 start in het start_prim script.
⚠️ Gebruik Start voor volgende starts: SafeKit behoudt de meest recente server. Starten As primary is een speciale opstart de eerste keer of tijdens uitzonderlijke bewerkingen.

12. Wacht tot de overgang naar ALONE (groen)
- Knooppunt 1 moet de ALONE status (groen) bereiken, wat betekent dat het
start_primscript op knooppunt 1 is uitgevoerd.
⚠️ Als ALONE (groen) niet wordt bereikt of als VM1 niet wordt gestart, analyseer dan waarom met het modullogboek 🖼️ van knooppunt 1.
- Klik op het 🔍 logboekpictogram van
node1om het modulelogboek te openen en zoek naar foutmeldingen, zoals een checker die een fout detecteert en de module stopt. - Klik op
start_primin het logboek: de uitvoerberichten van het script worden rechts weergegeven en fouten kunnen worden gedetecteerd, zoals VM1 die niet correct is gestart. - Gebruik de SafeKit AI 🤖 voor hulp bij logberichten.
⚠️ Als de cluster in de toestand WAIT (red) not uptodate, STOP (red) not uptodate, stop dan het WAIT knooppunt en forceer de start ervan als primair 🖼️.

13. Start knooppunt 2
- ⋯
Startknooppunt 2 met het contextmenu. - Wacht op de SECOND (groene) toestand.
ℹ️
- Knooppunt 2 blijft in de SECOND (oranje) toestand terwijl de gerepliceerde mappen opnieuw worden gesynchroniseerd (kopiëren van knooppunt 1 naar knooppunt 2).
- Dit kan even duren, afhankelijk van de grootte van de bestanden die opnieuw moeten worden gesynchroniseerd in gerepliceerde mappen en de netwerkbandbreedte.
- Om de voortgang van de kopie te zien, raadpleegt u het modullogboek 🖼️ en de replicatiebronnen 🖼️ van knooppunt 2. Gebruik de SafeKit AI 🤖 voor hulp bij logberichten.

14. Controleer of het cluster operationeel is
- Controleer of het cluster groen/groen is, met
VM1die op de PRIM node draait en niet op de SECOND-node.
In deze status worden alleen wijzigingen in bestanden in realtime gerepliceerd.

15. Testen
- Stop de PRIM node door in het contextmenu naar beneden te scrollen en
Stopte klikken. - Controleer of er een failover is op het SECOND knooppunt, dat ALONE (groen) zou moeten worden.
- Controleer met KVM tools of
VM1op node 2 draait.
⚠️ Als ALONE (groen) niet wordt bereikt op node2 of als VM1 niet is gestart, analyseer dan waarom met het modullogboek 🖼️ van node 2.
- Klik op het 🔍 logboekpictogram van
node2om het modulelogboek te openen en zoek naar foutmeldingen, zoals een checker die een fout detecteert en de module stopt. - Klik op
start_primin het logboek: de uitvoerberichten van het script worden rechts weergegeven en fouten kunnen worden gedetecteerd, zoals VM1 die niet correct is gestart. - Gebruik de SafeKit AI 🤖 voor hulp bij logberichten.
⚠️
- Als alles in orde is, start u node1 op, die de gerepliceerde mappen van node2 opnieuw synchroniseert.
- Als er iets misgaat, stop dan node2 en forceer node 1 om als primair te starten 🖼️, die opnieuw zal opstarten met zijn lokaal gezonde gegevens op het moment van de stop.
ℹ️ Let op: u hebt een 🕒 tijdlijn 🖼️ die nuttig kan zijn om te begrijpen wat er in het cluster gebeurt.

16. Configureer indien nodig een splitbrain-checker
- Raadpleeg Wat zijn de verschillende scenario’s in geval van netwerkisolatie in een cluster? om te weten of u een splitbrain-checker moet configureren.
- Ga naar de moduleconfiguratie en klik op
Checkers / Splitbrain(zie afbeelding) om de splitbrain-parameters te bewerken. Save and applyom deze opnieuw te implementeren op beide knooppunten (de module moet op beide knooppunten worden gestopt om op te slaan en toe te passen).
Parameters:
Resource nameidentificeert de getuige met een resourcenaam:splitbrain.witness. U kunt deze waarde wijzigen om de getuige te identificeren.Witness addressis het argument voor een ping wanneer een node van PRIM naar ALONE of van SECOND naar ALONE gaat. Wijzig deze waarde met het IP-adres van de witness (een robuust element, meestal een router).- Opmerking: u kunt meerdere IP-adressen instellen, gescheiden door spaties. Let op: de IP-adressen moeten toegankelijk zijn vanaf één knooppunt, maar niet vanaf het andere in het geval van netwerkisolatie.

17. Snapshots repliceren
De map die de XML-bestanden van de momentopname bevat, is:
/var/lib/libvirt/qemu/snapshot/%VM_NAME%
waarbij VM_NAME de naam is van de virtuele machine (vm1).
Opmerking: Als er geen momentopname is gemaakt, maak er dan een aan om de map te genereren (anders mislukt de SafeKit-configuratie).
Om het te repliceren:
Klik in de moduleconfiguratie op
Advanced Configuration(zie afbeelding) omuserconfig.xmlte bewerken.Voeg de onderstaande regels toe aan de
<rfs>-sectie van userconfig.xml:<replicated dir="/var/lib/libvirt/qemu/snapshot/%VM_NAME%" mode="read_only"> </replicated>Save and applyom het gewijzigde userconfig.xml bestand opnieuw te implementeren op beide knooppunten (de module moet op beide knooppunten worden gestopt om op te slaan en toe te passen).Maak snapshots op de PRIM node via virt-manager of een opdrachtregel:
virsh snapshot-create-as vm1 snapshot-name
Opmerking: wanneer u een momentopname maakt met een opdrachtregel, moet u de momentopnameweergave in virt-manager vernieuwen.
Snapshots die op de PRIM node zijn gemaakt, zijn na een failover operationeel op node 2, maar worden niet weergegeven op node 2.
Om een momentopname op node 2 te importeren, moet u de volgende opdracht uitvoeren:
virsh snapshot-create --redefine vm1 /var/lib/libvirt/qemu/snapshot/vm1/snapshot-nameDe opdrachtregel voor het weergeven van alle snapshots van vm1 is:
virsh snapshot-list vm1

18. Ondersteuning
- Om ondersteuning te krijgen, maakt u 2 SafeKit
Snapshots(2 .zip-bestanden), één voor elke node.
ℹ️ Meer informatie over de ondersteuning vindt u hier.

Demonstratie van een high-availability-oplossing op VM-niveau
SafeKit video: Clustering op virtueel machine-niveau met Hyper-V (5:15)
Ontdek in deze video hoe SafeKit hoge beschikbaarheid voor Hyper-V implementeert zonder de complexiteit van een SAN. Leer hoe u de replicatie van virtuele machines tussen twee knooppunten configureert om een naadloze failover te garanderen voor uw bedrijfskritieke gevirtualiseerde workloads. Hoewel deze demonstratie gebruikmaakt van Hyper-V op Windows, werkt de oplossing identiek met KVM op Linux.
Hoofdstukken
- 🎬 Architectuuroverzicht: 2 Hyper-V knooppunten en 2 virtuele machines (0:49)
- 🎬 De cluster- en hyperv.safe-modules configureren (1:59)
- 🎬 Live testen: VM-replicatie, -migratie en automatische failover bij een crash (2:26)
Stapsgewijze implementatie
- 🛠️ Lees de handleiding voor het instellen van een Hyper-V mirror-cluster op Windows.
- 🛠️ Lees de handleiding voor het instellen van een KVM mirror-cluster op Linux.
🔍 Ontdek SafeKit
Vind informatie over de functies, architecturen, video’s, documentatie en de gratis proefversie van SafeKit.
| Hulpbron | Beschrijving | Link |
|---|---|---|
| Belangrijkste kenmerken | Ontdek waarom SafeKit een eenvoudige en kosteneffectieve oplossing voor hoge beschikbaarheid is. | Ontdek de belangrijkste kenmerken |
| Gebruiksscenario’s | Ontdek hoe SafeKit kritieke applicaties en infrastructuur beschikbaar houdt. | Ontdek de gebruiksscenario’s |
| Implementatiemodel | SafeKit biedt hoge beschikbaarheid zonder SAN of gedeelde opslag. | Het implementatiemodel verkennen |
| Strategieën voor hoge beschikbaarheid | Vergelijk hoge beschikbaarheid voor virtuele machines met hoge beschikbaarheid voor toepassingen. | Vergelijk de twee strategieën |
| Technische specificaties | Controleer de technische vereisten en beperkingen voor SafeKit-clusters. | Lees de technische specificaties |
| Video’s | Bekijk demonstraties van de SafeKit-configuratie en automatische failover. | Bekijk de technische video’s |
| Architectuur | Ontdek hoe het SafeKit mirror-cluster bestanden in realtime repliceert en failover afhandelt. | Verken de Mirror -architectuur |
| Architectuur | Ontdek hoe het SafeKit farm-cluster het netwerkverkeer in evenwicht brengt en failover afhandelt. | Verken de architectuur Farm |
| Productvergelijking | Vergelijk SafeKit met traditionele high-availability-clusters. | Vergelijk de oplossingen |
| Technische hulpmiddelen | Vind technische documentatie, download SafeKit en krijg toegang tot de gratis proefversie. | Krijg toegang tot de documentatie en de gratis proefversie |
| Applicatiemodules | Gebruik vooraf geconfigureerde SafeKit-modules om hoge beschikbaarheid voor uw applicaties in te stellen. | Verken de applicatiemodules |