Zoeken in SafeKit

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 / VereisteReden en impactAanbevolen alternatief
Replicatiegrootte: een paar TBResynchronisatietijd 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.

SafeKit (Linux) downloaden >

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/.

kvm.safe downloaden (Linux) >

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 vm1
    
  • Maak 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 --disable
    
  • Maak een configuratiebestand vm1.xml voor vm1:

    virsh dumpxml vm1 > vm1.xml
    

Op knooppunt 2:

  • Kopieer het configuratiebestand vm1.xml van 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.xml
    
  • Automatische start vm1 uitschakelen:

    virsh autostart vm1 --disable
    
  • Maak 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 admin in 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.

Start de SafeKit webconsole om het KVM cluster te configureren

3. Knoopp Adressen configureren

  • Voer de IP-adressen van de knooppunten in, druk op de Tab key om 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 apply om 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.

Voer de knooppunten van het KVM cluster in

4. Selecteer een module

  • Klik in de New module op de module kvm.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.

Kies de module voor KVM

5. De module configureren

  • Kies voor een Automatic start van de module bij het opstarten zonder vertraging.
  • Normaal gesproken hebt u één Heartbeat netwerk 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_PATH het hoofdpad van de gerepliceerde map in (/var/lib/libvirt/images).
  • Voer bij VM_NAME de 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.

Voer de KVM parameters in

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 name identificeert de virtuele machine met een resourcenaam in SafeKit: custom.VM_NAME_check.
  • Met restart in Action wordt 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 stopstart instelt in Action, 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.

Voer de parameters voor de aangepaste KVM controle in

7. Scripts bewerken (optioneel)

  • Bewerk geen scripts.

8. Communicatieversleuteling (optioneel)

  • De versleuteling van de communicatie tussen knooppunten behouden.

Communicatieversleuteling van de KVM module

9. Opslaan en toepassen

  • Save and apply op beide knooppunten.

De configuratie van de KVM module opslaan en toepassen

10. Controleer of de configuratie succesvol is

  • Controleer het Success ✅ op beide knooppunten en klik op Monitor 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.

Controleer of de configuratie van de KVM module is geslaagd

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.

Start de KVM node met de meest recente gegevens als primaire node

12. Wacht tot de overgang naar ALONE (groen)

  • Knooppunt 1 moet de ALONE status (groen) bereiken, wat betekent dat het start_prim script 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 node1 om het modulelogboek te openen en zoek naar foutmeldingen, zoals een checker die een fout detecteert en de module stopt.
  • Klik op start_prim in 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 🖼️.

Het eerste KVM knooppunt start als primair en wordt ALONE

13. Start knooppunt 2

  • ⋯ Start knooppunt 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.

Start de KVM node 2

14. Controleer of het cluster operationeel is

  • Controleer of het cluster groen/groen is, met VM1 die op de PRIM node draait en niet op de SECOND-node.

In deze status worden alleen wijzigingen in bestanden in realtime gerepliceerd.

KVM node 2 is SECOND (groen)

15. Testen

  • Stop de PRIM node door in het contextmenu naar beneden te scrollen en Stop te klikken.
  • Controleer of er een failover is op het SECOND knooppunt, dat ALONE (groen) zou moeten worden.
  • Controleer met KVM tools of VM1 op 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 node2 om het modulelogboek te openen en zoek naar foutmeldingen, zoals een checker die een fout detecteert en de module stopt.
  • Klik op start_prim in 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.

Stop de KVM module op de PRIM server

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 apply om 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 name identificeert de getuige met een resourcenaam: splitbrain.witness. U kunt deze waarde wijzigen om de getuige te identificeren.
  • Witness address is 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.

Voer de splitbrain-parameters KVM in

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) om userconfig.xml te 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 apply om 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-name
    
  • De opdrachtregel voor het weergeven van alle snapshots van vm1 is:

    virsh snapshot-list vm1
    

Voer de KVM parameters in

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.

Maak KVM momentopnamen voor ondersteuning

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

  1. 🎬 Architectuuroverzicht: 2 Hyper-V knooppunten en 2 virtuele machines (0:49)
  2. 🎬 De cluster- en hyperv.safe-modules configureren (1:59)
  3. 🎬 Live testen: VM-replicatie, -migratie en automatische failover bij een crash (2:26)

Stapsgewijze implementatie

🔍 Ontdek SafeKit

Vind informatie over de functies, architecturen, video’s, documentatie en de gratis proefversie van SafeKit.

HulpbronBeschrijvingLink
Belangrijkste kenmerkenOntdek waarom SafeKit een eenvoudige en kosteneffectieve oplossing voor hoge beschikbaarheid is.Ontdek de belangrijkste kenmerken
Gebruiksscenario’sOntdek hoe SafeKit kritieke applicaties en infrastructuur beschikbaar houdt.Ontdek de gebruiksscenario’s
ImplementatiemodelSafeKit biedt hoge beschikbaarheid zonder SAN of gedeelde opslag.Het implementatiemodel verkennen
Strategieën voor hoge beschikbaarheidVergelijk hoge beschikbaarheid voor virtuele machines met hoge beschikbaarheid voor toepassingen.Vergelijk de twee strategieën
Technische specificatiesControleer de technische vereisten en beperkingen voor SafeKit-clusters.Lees de technische specificaties
Video’sBekijk demonstraties van de SafeKit-configuratie en automatische failover.Bekijk de technische video’s
ArchitectuurOntdek hoe het SafeKit mirror-cluster bestanden in realtime repliceert en failover afhandelt.Verken de Mirror -architectuur
ArchitectuurOntdek hoe het SafeKit farm-cluster het netwerkverkeer in evenwicht brengt en failover afhandelt.Verken de architectuur Farm
ProductvergelijkingVergelijk SafeKit met traditionele high-availability-clusters.Vergelijk de oplossingen
Technische hulpmiddelenVind technische documentatie, download SafeKit en krijg toegang tot de gratis proefversie.Krijg toegang tot de documentatie en de gratis proefversie
ApplicatiemodulesGebruik vooraf geconfigureerde SafeKit-modules om hoge beschikbaarheid voor uw applicaties in te stellen.Verken de applicatiemodules
SafeKit AI Chat SafeKit AI