Zelfstudie: Beschikbaarheidsgroepen configureren voor SQL Server op virtuele RHEL-machines in Azure
Van toepassing op: SQL Server op Azure VM
Notitie
In deze zelfstudie gebruiken we SQL Server 2017 (14.x) met RHEL 7.6, maar het is mogelijk om SQL Server 2019 (15.x) te gebruiken in RHEL 7 of RHEL 8 om hoge beschikbaarheid te configureren. De opdrachten voor het configureren van de Resources van het Pacemaker-cluster en de beschikbaarheidsgroep zijn gewijzigd in RHEL 8 en u kunt het artikel Resources voor beschikbaarheidsgroepen maken en RHEL 8-resources raadplegen voor meer informatie over de juiste opdrachten.
In deze zelfstudie leert u het volgende:
- Een nieuwe resourcegroep, beschikbaarheidsset en virtuele Linux-machines (VM's) maken
- Hoge beschikbaarheid inschakelen
- Een Pacemaker-cluster maken
- Een fencing-agent configureren door een STONITH-apparaat te maken
- SQL Server en MSSQL-hulpprogramma's installeren op RHEL
- AlwaysOn-beschikbaarheidsgroep in SQL Server configureren
- Resources van de beschikbaarheidsgroep configureren in het Pacemaker-cluster
- Een failover en de fencing-agent testen
In deze zelfstudie wordt de Azure CLI gebruikt om resources te implementeren in Azure.
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- Voor dit artikel is versie 2.0.30 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Een brongroep maken
Als u meerdere abonnementen hebt, stelt u het abonnement in waarvoor u deze resources wilt implementeren.
Gebruik de volgende opdracht om een resourcegroep <resourceGroupName>
in een regio te maken. Vervang <resourceGroupName>
door een naam van uw keuze. Voor deze zelfstudie gebruiken we East US 2
. Zie de volgende quickstart voor meer informatie.
az group create --name <resourceGroupName> --location eastus2
Een beschikbaarheidsset maken
In de volgende stap gaat u een beschikbaarheidsset maken. Voer de volgende opdracht uit in Azure Cloud Shell en vervang <resourceGroupName>
door de naam van de resourcegroep. Kies een naam voor <availabilitySetName>
.
az vm availability-set create \
--resource-group <resourceGroupName> \
--name <availabilitySetName> \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Wanneer de opdracht is voltooid, zou u de volgende resultaten moeten hebben:
{
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/availabilitySets/<availabilitySetName>",
"location": "eastus2",
"name": "<availabilitySetName>",
"platformFaultDomainCount": 2,
"platformUpdateDomainCount": 2,
"proximityPlacementGroup": null,
"resourceGroup": "<resourceGroupName>",
"sku": {
"capacity": null,
"name": "Aligned",
"tier": null
},
"statuses": null,
"tags": {},
"type": "Microsoft.Compute/availabilitySets",
"virtualMachines": []
}
Virtuele machines met RHEL maken in de beschikbaarheidsset
Waarschuwing
Als u een RHEL-installatiekopieën voor betalen per gebruik (PAYG) kiest en hoge beschikbaarheid (HA) configureert, moet u mogelijk uw abonnement registreren. Dit kan ertoe leiden dat u twee keer betaalt voor het abonnement, omdat er kosten in rekening worden gebracht voor het Microsoft Azure RHEL-abonnement voor de virtuele machine en een abonnement op Red Hat. Voor meer informatie raadpleegt u https://access.redhat.com/solutions/2458541.
Gebruik een RHEL-installatiekopie met hoge beschikbaarheid bij het maken van de Azure-VM om te voorkomen dat u dubbel wordt gefactureerd. Installatiekopieën die als RHEL-installatiekopieën met hoge beschikbaarheid worden aangeboden, zijn ook PAYG-installatiekopieën waarop opslagplaats met hoge beschikbaarheid vooraf is ingeschakeld.
Zo verkrijgt u een lijst met installatiekopieën van virtuele machines die RHEL met hoge beschikbaarheid aanbieden:
az vm image list --all --offer "RHEL-HA"
De volgende resultaten wordt weergegeven.
[ { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.4", "urn": "RedHat:RHEL-HA:7.4:7.4.2019062021", "version": "7.4.2019062021" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.5", "urn": "RedHat:RHEL-HA:7.5:7.5.2019062021", "version": "7.5.2019062021" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "7.6", "urn": "RedHat:RHEL-HA:7.6:7.6.2019062019", "version": "7.6.2019062019" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "8.0", "urn": "RedHat:RHEL-HA:8.0:8.0.2020021914", "version": "8.0.2020021914" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "8.1", "urn": "RedHat:RHEL-HA:8.1:8.1.2020021914", "version": "8.1.2020021914" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "80-gen2", "urn": "RedHat:RHEL-HA:80-gen2:8.0.2020021915", "version": "8.0.2020021915" }, { "offer": "RHEL-HA", "publisher": "RedHat", "sku": "81_gen2", "urn": "RedHat:RHEL-HA:81_gen2:8.1.2020021915", "version": "8.1.2020021915" } ]
Voor deze zelfstudie kiezen we de installatiekopie
RedHat:RHEL-HA:7.6:7.6.2019062019
voor het RHEL 7-voorbeeld en kiest uRedHat:RHEL-HA:8.1:8.1.2020021914
voor het RHEL 8-voorbeeld.U kunt ook SQL Server 2019 (15.x) vooraf installeren op RHEL8-HA-installatiekopieën. Voer de volgende opdracht uit om de lijst met installatiekopieën op te halen:
az vm image list --all --offer "sql2019-rhel8"
De volgende resultaten wordt weergegeven.
[ { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "enterprise", "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "enterprise", "urn": "MicrosoftSQLServer:sql2019-rhel8:enterprise:15.0.200512", "version": "15.0.200512" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "sqldev", "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "sqldev", "urn": "MicrosoftSQLServer:sql2019-rhel8:sqldev:15.0.200512", "version": "15.0.200512" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "standard", "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200317", "version": "15.0.200317" }, { "offer": "sql2019-rhel8", "publisher": "MicrosoftSQLServer", "sku": "standard", "urn": "MicrosoftSQLServer:sql2019-rhel8:standard:15.0.200512", "version": "15.0.200512" } ]
Als u een van de bovenstaande installatiekopieën gebruikt om de virtuele machines te maken, is SQL Server 2019 (15.x) vooraf geïnstalleerd. Sla de sectie SQL Server en MSSQL-hulpprogramma's installeren over zoals beschreven in dit artikel.
Belangrijk
Namen van virtuele machines voor het instellen van een beschikbaarheidsgroep mogen maximaal vijftien tekens lang zijn. De gebruikersnaam mag geen hoofdletters bevatten en wachtwoorden moeten meer dan 12 tekens bevatten.
We willen drie VM's maken in de beschikbaarheidsset. Vervang deze waarden in de volgende opdracht:
<resourceGroupName>
<VM-basename>
<availabilitySetName>
<VM-Size>
: bijvoorbeeld “Standard_D16_v3”<username>
<adminPassword>
for i in `seq 1 3`; do az vm create \ --resource-group <resourceGroupName> \ --name <VM-basename>$i \ --availability-set <availabilitySetName> \ --size "<VM-Size>" \ --image "RedHat:RHEL-HA:7.6:7.6.2019062019" \ --admin-username "<username>" \ --admin-password "<adminPassword>" \ --authentication-type all \ --generate-ssh-keys done
Met de bovenstaande opdracht worden de VM's gemaakt en wordt er een standaard virtueel netwerk voor deze VM's gemaakt. Zie het artikel over az vm create voor meer informatie over de verschillende configuraties.
Wanneer de opdracht voor elke virtuele machine is voltooid, moet u ongeveer de volgende resultaten verkrijgen:
{
"fqdns": "",
"id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<VM1>",
"location": "eastus2",
"macAddress": "<Some MAC address>",
"powerState": "VM running",
"privateIpAddress": "<IP1>",
"publicIpAddress": "",
"resourceGroup": "<resourceGroupName>",
"zones": ""
}
Belangrijk
Met de standaardinstallatiekopie die met bovenstaande opdracht is gemaakt, wordt standaard een besturingssysteemschijf van 32 GB gemaakt. Met deze standaardinstallatie komt u mogelijk ruimte tekort. U kunt de volgende parameter aan bovenstaande az vm create
-opdracht toevoegen om bijvoorbeeld een besturingssysteemschijf met 128 GB te maken: --os-disk-size-gb 128
.
Daarna kunt u LVM (Logical Volume Manager) configureren als u de juiste mapvolumes moet uitbreiden om uw installatie te kunnen voltooien.
Verbinding met de gemaakte VM's testen
Maak verbinding met VM1 of de andere virtuele machines met behulp van de volgende opdracht in Azure Cloud Shell. Als u uw VM-IP-adressen niet kunt vinden, volgt u deze quickstart in Azure Cloud Shell.
ssh <username>@publicipaddress
Als de verbinding is geslaagd, ziet u de volgende uitvoer die de Linux-terminal aangeeft:
[<username>@<VM1> ~]$
Typ exit
om de SSH-sessie te verlaten.
Hoge beschikbaarheid inschakelen
Belangrijk
Om dit gedeelte van de zelfstudie te kunnen voltooien, moet u een RHEL-abonnement hebben en de invoegtoepassing voor hoge beschikbaarheid. Als u een afbeelding gebruikt die wordt aanbevolen in de vorige sectie, hoeft u geen ander abonnement te registreren.
Verbinding maken op elk VM-knooppunt en volg deze handleiding om hoge beschikbaarheid in te schakelen. Zie Abonnement met hoge beschikbaarheid inschakelen voor RHEL voor meer informatie.
Tip
Het is eenvoudiger als u op elk van de virtuele machines tegelijk een SSH-sessie opent, omdat dezelfde opdrachten in het hele artikel moeten worden uitgevoerd op elke VM.
Als u meerdere sudo
opdrachten kopieert en plakt en om een wachtwoord wordt gevraagd, worden de extra opdrachten niet uitgevoerd. Voer deze opdrachten afzonderlijk uit.
Voer de volgende opdrachten uit op elke VIRTUELE machine om de Pacemaker-firewallpoorten te openen:
sudo firewall-cmd --permanent --add-service=high-availability sudo firewall-cmd --reload
Update en installeer Pacemaker-pakketten op alle knooppunten met behulp van de volgende opdrachten:
Notitie
nmap wordt als onderdeel van dit opdrachtenblok geïnstalleerd als een hulpprogramma voor het vinden van beschikbare IP-adressen in uw netwerk. U hoeft nmap niet te installeren, maar dit is later in deze zelfstudie handig.
sudo yum update -y sudo yum install -y pacemaker pcs fence-agents-all resource-agents fence-agents-azure-arm nmap sudo reboot
Stel het wachtwoord in voor de standaardgebruiker die is gemaakt bij het installeren van Pacemaker-pakketten. Gebruik hetzelfde wachtwoord op alle knooppunten.
sudo passwd hacluster
Gebruik de volgende opdracht om het hosts-bestand te openen en de omzetting van hostnamen in te stellen. Zie Beschikbaarheidsgroep configureren voor meer informatie over het configureren van het hosts-bestand.
sudo vi /etc/hosts
Voer in de vi-editor
i
in om tekst in te voegen en typ op een lege regel het particuliere IP-adres van de bijbehorende virtuele machine. Voeg vervolgens een spatie en de naam van de virtuele machine toe achter het IP-adres. Elke regel moet een afzonderlijke vermelding bevatten.<IP1> <VM1> <IP2> <VM2> <IP3> <VM3>
Belangrijk
U wordt aangeraden uw privé-IP-adres in het vorige voorbeeld te gebruiken. Als u in deze configuratie het openbare IP-adres gebruikt, zal de installatie mislukken; bovendien is het niet raadzaam om uw VM open te stellen voor externe netwerken.
Als u de vi-editor wilt afsluiten, drukt u eerst op de ESC-toets en voert u vervolgens de opdracht
:wq
in om het bestand te schrijven en af te sluiten.
Het Pacemaker-cluster maken
In deze sectie schakelt u de pcsd-service in en start u deze en configureert u het cluster. Voor SQL Server in Linux worden de clusterbronnen niet automatisch gemaakt. U moet de Pacemaker-resources handmatig inschakelen en maken. Zie het artikel over het configureren van een exemplaar van een failovercluster voor RHEL voor meer informatie.
Pcsd-service en Pacemaker inschakelen en starten
Voer de opdrachten uit op alle knooppunten. Met deze opdrachten kunnen de knooppunten opnieuw deelnemen aan het cluster nadat elk knooppunt opnieuw is opgestart.
sudo systemctl enable pcsd sudo systemctl start pcsd sudo systemctl enable pacemaker
Verwijder alle bestaande clusterconfiguraties uit alle knooppunten. Voer de volgende opdracht uit:
sudo pcs cluster destroy sudo systemctl enable pacemaker
Voer op het primaire knooppunt de volgende opdrachten uit om het cluster in te stellen.
- Wanneer u de
pcs cluster auth
opdracht uitvoert om de clusterknooppunten te verifiëren, wordt u om een wachtwoord gevraagd. Voer het wachtwoord in voor de hacluster-gebruiker die u eerder hebt gemaakt.
RHEL7
sudo pcs cluster auth <VM1> <VM2> <VM3> -u hacluster sudo pcs cluster setup --name az-hacluster <VM1> <VM2> <VM3> --token 30000 sudo pcs cluster start --all sudo pcs cluster enable --all
RHEL8
Voor RHEL 8 moet u de knooppunten afzonderlijk verifiëren. Voer de gebruikersnaam en het wachtwoord voor hacluster handmatig in wanneer u hierom wordt gevraagd.
sudo pcs host auth <node1> <node2> <node3> sudo pcs cluster setup <clusterName> <node1> <node2> <node3> sudo pcs cluster start --all sudo pcs cluster enable --all
- Wanneer u de
Voer de volgende opdracht uit om te controleren of alle knooppunten online zijn.
sudo pcs status
RHEL 7
Als alle knooppunten online zijn, ziet u uitvoer die lijkt op het volgende voorbeeld:
Cluster name: az-hacluster WARNINGS: No stonith devices and stonith-enabled is not false Stack: corosync Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum Last updated: Fri Aug 23 18:27:57 2019 Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2> 3 nodes configured 0 resources configured Online: [ <VM1> <VM2> <VM3> ] No resources Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
RHEL 8
Cluster name: az-hacluster WARNINGS: No stonith devices and stonith-enabled is not false Cluster Summary: * Stack: corosync * Current DC: <VM2> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum * Last updated: Fri Aug 23 18:27:57 2019 * Last change: Fri Aug 23 18:27:56 2019 by hacluster via crmd on <VM2> * 3 nodes configured * 0 resource instances configured Node List: * Online: [ <VM1> <VM2> <VM3> ] Full List of Resources: * No resources Daemon Status: * corosync: active/enabled * pacemaker: active/enabled * pcsd: active/enabled
Stel de verwachte stemmen in het live-cluster in op 3. Deze opdracht is alleen van invloed op het livecluster en wijzigt de configuratiebestanden niet.
Stel op alle knooppunten de verwachte stemmen in met de volgende opdracht:
sudo pcs quorum expected-votes 3
De fencing-agent configureren
Als u een fencing-agent wilt configureren, worden de volgende instructies voor deze zelfstudie gewijzigd. Zie Een STONITH-apparaat maken voor meer informatie.
Controleer de versie van de Azure Fence-agent om ervoor te zorgen dat deze wordt bijgewerkt. Gebruik de volgende opdracht:
sudo yum info fence-agents-azure-arm
De uitvoer moet ongeveer overeenkomen met onderstaand voorbeeld.
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
Installed Packages
Name : fence-agents-azure-arm
Arch : x86_64
Version : 4.2.1
Release : 11.el7_6.8
Size : 28 k
Repo : installed
From repo : rhel-ha-for-rhel-7-server-eus-rhui-rpms
Summary : Fence agent for Azure Resource Manager
URL : https://github.com/ClusterLabs/fence-agents
License : GPLv2+ and LGPLv2+
Description : The fence-agents-azure-arm package contains a fence agent for Azure instances.
Een nieuwe toepassing registreren in Microsoft Entra-id
Voer de volgende stappen uit om een nieuwe toepassing te registreren in Microsoft Entra ID (voorheen Azure Active Directory):
- Ga naar https://portal.azure.com.
- Open het deelvenster Eigenschappen van Microsoft Entra-id en noteer het
Tenant ID
. - Selecteer App-registraties.
- Selecteer Nieuwe registratie.
- Voer een naam in, zoals
<resourceGroupName>-app
. Voor ondersteunde accounttypen selecteert u alleen Accounts in deze organisatiemap (alleen Microsoft - Één tenant). - Selecteer Web voor omleidings-URI en voer een URL in (bijvoorbeeld
http://localhost
) en selecteer Toevoegen. De aanmeldings-URL kan elke geldige URL zijn. Als u klaar bent, selecteert u Registreren. - Kies Certificaten en geheimen voor uw nieuwe app-registratie en selecteer vervolgens Nieuw clientgeheim.
- Voer een beschrijving in voor een nieuwe sleutel (clientgeheim) en selecteer Vervolgens Toevoegen.
- Noteer de waarde van het geheim. Het wordt gebruikt als het wachtwoord voor de service-principal.
- Selecteer Overzicht. Noteer de toepassings-id. Deze wordt gebruikt als de gebruikersnaam (aanmeldings-id in de volgende stappen) van de service-principal.
Een aangepaste rol maken voor de fencing-agent
Volg de zelfstudie Een aangepaste Azure-rol maken met Azure CLI.
Uw JSON-bestand moet er ongeveer uitzien als in het volgende voorbeeld:
- Vervang
<username>
door een naam van uw keuze. Dit is om te voorkomen dat u dubbele roldefinities maakt. - Vervang
<subscriptionId>
door de id van uw Azure-abonnement.
{
"Name": "Linux Fence Agent Role-<username>",
"Id": null,
"IsCustom": true,
"Description": "Allows to power-off and start virtual machines",
"Actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/<subscriptionId>"
]
}
Voer de volgende opdracht uit om de rol toe te voegen:
- Vervang
<filename>
door de naam van het bestand. - Als u de opdracht uitvoert vanaf een ander pad dan de map waarnaar het bestand is opgeslagen, neemt u het mappad van het bestand op in de opdracht.
az role definition create --role-definition "<filename>.json"
U moet de volgende uitvoer zien:
{
"assignableScopes": [
"/subscriptions/<subscriptionId>"
],
"description": "Allows to power-off and start virtual machines",
"id": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/roleDefinitions/<roleNameId>",
"name": "<roleNameId>",
"permissions": [
{
"actions": [
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/powerOff/action",
"Microsoft.Compute/virtualMachines/start/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Linux Fence Agent Role-<username>",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
De aangepaste rol toewijzen aan de service-principal
Wijs de aangepaste rol Linux Fence Agent Role-<username>
die in de laatste stap is gemaakt, toe aan de service-principal. Gebruik de rol Eigenaar niet meer.
- Ga naar https://portal.azure.com
- Het deelvenster Alle resources openen
- De virtuele machine van het eerste clusterknooppunt selecteren
- Selecteer Toegangsbeheer (IAM)
- Selecteer Een roltoewijzing toevoegen
- Selecteer de rol
Linux Fence Agent Role-<username>
in de lijst Rol - Voer in de lijst Selecteren de naam in van de toepassing die u eerder hebt gemaakt.
<resourceGroupName>-app
- Selecteer Opslaan
- Herhaal deze stappen voor alle clusterknooppunten.
STONITH-apparaten maken
Voer de volgende opdrachten uit op knooppunt 1:
- Vervang de
<ApplicationID>
door de id uit uw toepassingsregistratie. - Vervang het
<servicePrincipalPassword>
door de waarde uit het clientgeheim. - Vervang de
<resourceGroupName>
door de resourcegroep uit uw abonnement dat u voor deze zelfstudie hebt gebruikt. - Vervang de
<tenantID>
en de<subscriptionId>
door die uit uw Azure-abonnement.
sudo pcs property set stonith-timeout=900
sudo pcs stonith create rsc_st_azure fence_azure_arm login="<ApplicationID>" passwd="<servicePrincipalPassword>" resourceGroup="<resourceGroupName>" tenantId="<tenantID>" subscriptionId="<subscriptionId>" power_timeout=240 pcmk_reboot_timeout=900
Omdat we al een regel aan onze firewall hebben toegevoegd om de HA-service (--add-service=high-availability
) toe te staan, hoeft u de volgende firewallpoorten niet te openen op alle knooppunten: 2224, 3121, 21064, 5405. Als u echter verbindingsproblemen ondervindt met hoge beschikbaarheid, gebruikt u de volgende opdracht om deze poorten te openen die zijn gekoppeld aan hoge beschikbaarheid.
Tip
Om tijd te besparen, zou u ook alle poorten in deze zelfstudie tegelijk kunnen toevoegen. De poorten die moeten worden geopend, worden uitgelegd in de relevante secties die volgen. Als u nu alle poorten wilt toevoegen, voegt u de extra poorten toe: 1433 en 5022.
sudo firewall-cmd --zone=public --add-port=2224/tcp --add-port=3121/tcp --add-port=21064/tcp --add-port=5405/tcp --permanent
sudo firewall-cmd --reload
SQL Server en MSSQL-hulpprogramma's installeren
Notitie
Als u de VM's hebt gemaakt met SQL Server 2019 (15.x) die vooraf zijn geïnstalleerd op RHEL8-HA, kunt u de onderstaande stappen overslaan om SQL Server en mssql-hulpprogramma's te installeren en de sectie Een beschikbaarheidsgroep configureren te starten nadat u het sa-wachtwoord op alle VM's hebt ingesteld door de opdracht sudo /opt/mssql/bin/mssql-conf set-sa-password
uit te voeren op alle VM's.
Gebruik de onderstaande sectie om SQL Server en MSSQL-hulpprogramma's op de virtuele machines te installeren. U kunt een van de onderstaande voorbeelden kiezen om SQL Server 2017 (14.x) te installeren op RHEL 7 of SQL Server 2019 (15.x) op RHEL 8. Voer elk van deze acties op alle knooppunten uit. Zie SQL Server installeren op een virtuele Red Hat-machine voor meer informatie.
SQL Server installeren op de VM's
De volgende opdrachten worden gebruikt om SQL Server te installeren:
RHEL 7 met SQL Server 2017
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha
RHEL 8 met SQL Server 2019
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
sudo yum install -y mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo yum install mssql-server-ha
Open firewallpoort 1433 voor externe verbindingen
U moet poort 1433 op de virtuele machine openen om extern verbinding te kunnen maken. Gebruik de volgende opdrachten om poort 1433 te openen in de firewall van elke VM:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
SQL Server-opdrachtregelprogramma's installeren
De volgende opdrachten worden gebruikt om SQL Server-opdrachtregelprogramma's te installeren. Zie De SQL Server-opdrachtregelprogramma's installeren voor meer informatie.
RHEL 7
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
sudo yum install -y mssql-tools unixODBC-devel
RHEL 8
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
sudo yum install -y mssql-tools unixODBC-devel
Notitie
Voor het gemak voegt u /opt/mssql-tools/bin/ aan de omgevingsvariabele PATH toe. U kunt de hulpprogramma's dan uitvoeren zonder het volledige pad op te geven. Voer de volgende opdrachten uit om het PAD te wijzigen voor zowel aanmeldingssessies als interactieve/niet-aanmeldingssessies:echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
De status van SQL Server controleren
Zodra u klaar bent met de configuratie, kunt u de status van SQL Server controleren en controleren of deze wordt uitgevoerd:
systemctl status mssql-server --no-pager
U moet de volgende uitvoer zien:
● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-05 17:30:55 UTC; 20min ago
Docs: https://learn.microsoft.com/sql/linux
Main PID: 11612 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─11612 /opt/mssql/bin/sqlservr
└─11640 /opt/mssql/bin/sqlservr
Een beschikbaarheidsgroep configureren
Gebruik de volgende stappen om een AlwaysOn-beschikbaarheidsgroep in SQL Server voor uw VM's te configureren. Zie AlwaysOn-beschikbaarheidsgroepen voor SQL Server configureren voor hoge beschikbaarheid in Linux voor meer informatie.
AlwaysOn-beschikbaarheidsgroepen inschakelen en MSSQL-server opnieuw starten
Schakel AlwaysOn-beschikbaarheidsgroepen in op elk knooppunt dat als host fungeert voor een SQL Server-exemplaar. Start vervolgens de MSSQL-server opnieuw op. Voer het volgende script uit:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
Een certificaat maken
AD-verificatie wordt momenteel niet ondersteund voor het eindpunt van de beschikbaarheidsgroep. Daarom moeten we een certificaat gebruiken voor eindpuntversleuteling voor beschikbaarheidsgroepen.
Verbinding maken naar alle knooppunten met behulp van SQL Server Management Studio (SSMS) of sqlcmd. Voer de volgende opdrachten uit om een AlwaysOn_health-sessie in te schakelen en een hoofdsleutel te maken:
Belangrijk
Als u extern verbinding maakt met uw SQL Server-exemplaar, moet poort 1433 zijn geopend op uw firewall. U moet ook voor elke VM binnenkomende verbindingen met poort 1433 in uw NSG toestaan. Zie Een beveiligingsregel maken voor informatie over het maken van een beveiligingsregel voor binnenkomend verkeer voor meer informatie.
- Vervang het
<Master_Key_Password>
door uw eigen wachtwoord.
ALTER EVENT SESSION AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON); GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Master_Key_Password>';
- Vervang het
Verbinding maken naar de primaire replica met behulp van SSMS of sqlcmd. Met de volgende opdrachten maakt u een certificaat op
/var/opt/mssql/data/dbm_certificate.cer
en een persoonlijke sleutel opvar/opt/mssql/data/dbm_certificate.pvk
uw primaire SQL Server-replica:- Vervang het
<Private_Key_Password>
door uw eigen wachtwoord.
CREATE CERTIFICATE dbm_certificate WITH SUBJECT = 'dbm'; GO BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/dbm_certificate.pvk', ENCRYPTION BY PASSWORD = '<Private_Key_Password>' ); GO
- Vervang het
Sluit de sqlcmd-sessie af door de exit
opdracht uit te voeren en terug te keren naar uw SSH-sessie.
Het certificaat kopiëren naar de secundaire replica's en de certificaten maken op de server
Kopieer de twee bestanden die op dezelfde locatie zijn gemaakt naar alle servers die de beschikbaarheidsreplica's zullen hosten.
Voer op de primaire server de volgende
scp
-opdracht uit om het certificaat naar de doelservers te kopiëren:- Vervang en
<VM2>
door<username>
de gebruikersnaam en doel-VM-naam die u gebruikt. - Voer deze opdracht uit voor alle secundaire replica's.
Notitie
U hoeft
sudo -i
, voor het retourneren van de hoofdomgeving, niet uit te voeren. U hoeft alleen de opdrachtsudo
vóór elke opdracht uit te voeren zoals eerder in deze zelfstudie.# The below command allows you to run commands in the root environment sudo -i
scp /var/opt/mssql/data/dbm_certificate.* <username>@<VM2>:/home/<username>
- Vervang en
Voer op de doelserver de volgende opdracht uit:
- Vervang
<username>
door uw gebruikersnaam. - Met de opdracht
mv
verplaatst u de bestanden of map van de ene locatie naar een andere. - De opdracht
chown
wordt gebruikt om de eigenaar en groep met bestanden, mappen of koppelingen te wijzigen. - Voer deze opdrachten uit voor alle secundaire replica's.
sudo -i mv /home/<username>/dbm_certificate.* /var/opt/mssql/data/ cd /var/opt/mssql/data chown mssql:mssql dbm_certificate.*
- Vervang
Met het volgende Transact-SQL-script maakt u een certificaat vanuit de back-up die u op de primaire SQL Server-replica hebt gemaakt. Werk het script bij met sterke wachtwoorden. Het wachtwoord voor ontsleuteling is hetzelfde als het wachtwoord dat u hebt gebruikt voor het maken van het PVK-bestand in de vorige stap. Als u het certificaat wilt maken, voert u het volgende script uit met behulp van sqlcmd of SSMS op alle secundaire servers:
CREATE CERTIFICATE dbm_certificate FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer' WITH PRIVATE KEY ( FILE = '/var/opt/mssql/data/dbm_certificate.pvk', DECRYPTION BY PASSWORD = '<Private_Key_Password>' ); GO
De eindpunten voor databasespiegeling maken op alle replica's
Voer het volgende script uit op alle SQL Server-exemplaren met behulp van sqlcmd of SSMS:
CREATE ENDPOINT [Hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING (
ROLE = ALL,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED;
GO
De beschikbaarheidsgroep maken
Verbinding maken naar het SQL Server-exemplaar dat als host fungeert voor de primaire replica met behulp van sqlcmd of SSMS. Voer de volgende opdracht uit om de beschikbaarheidsgroep te maken:
- Vervang
ag1
door de naam van de gewenste beschikbaarheidsgroep. - Vervang de waarden van
<VM1>
,<VM2>
en<VM3>
door de namen van de SQL Server-exemplaren die de replica's hosten.
CREATE AVAILABILITY GROUP [ag1]
WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<VM1>'
WITH (
ENDPOINT_URL = N'tcp://<VM1>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<VM2>'
WITH (
ENDPOINT_URL = N'tcp://<VM2>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<VM3>'
WITH(
ENDPOINT_URL = N'tcp://<VM3>:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
);
GO
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
GO
Een SQL Server-aanmelding maken voor Pacemaker
Maak op alle SQL Server-exemplaren een SQL Server-aanmelding voor Pacemaker. Met het volgende Transact-SQL-script maakt u een aanmelding.
- Vervang
<password>
door uw eigen complexe wachtwoord.
USE [master]
GO
CREATE LOGIN [pacemakerLogin] with PASSWORD= N'<password>';
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin];
GO
Sla op alle SQL Server-exemplaren de referenties op die voor de SQL Server aanmelding worden gebruikt.
Zo maakt u het bestand:
sudo vi /var/opt/mssql/secrets/passwd
Voeg de volgende regels toe aan het bestand:
pacemakerLogin <password>
Als u de vi-editor wilt afsluiten, drukt u eerst op de ESC-toets en voert u vervolgens de opdracht
:wq
in om het bestand te schrijven en af te sluiten.Zo maakt u het bestand alleen leesbaar voor de hoofdmap:
sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 400 /var/opt/mssql/secrets/passwd
Secundaire replica's toevoegen aan de beschikbaarheidsgroep
Als u de secundaire replica's wilt koppelen aan de beschikbaarheidsgroep, moet u poort 5022 openen op de firewall voor alle servers. Voer de volgende opdracht uit in uw SSH-sessie:
sudo firewall-cmd --zone=public --add-port=5022/tcp --permanent sudo firewall-cmd --reload
Voer op de secundaire replica's de volgende opdrachten uit om ze toe te voegen aan de beschikbaarheidsgroep:
ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE; GO
Voer het volgende Transact-SQL-script uit op de primaire replica en elke secundaire replica:
GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin; GO GRANT VIEW SERVER STATE TO pacemakerLogin; GO
Wanneer de secundaire replica's zijn toegevoegd, kunt u ze bekijken in de Objectverkenner van SQL Server Management Studio door het knooppunt AlwaysOn hoge beschikbaarheid uit te vouwen:
Een database toevoegen aan de beschikbaarheidsgroep
We volgen het artikel over het configureren van een beschikbaarheidsgroep over het toevoegen van een database.
In deze stap worden de volgende Transact-SQL-opdrachten gebruikt. Voer deze opdrachten uit in de primaire replica:
CREATE DATABASE [db1]; -- creates a database named db1
GO
ALTER DATABASE [db1] SET RECOVERY FULL; -- set the database in full recovery model
GO
BACKUP DATABASE [db1] -- backs up the database to disk
TO DISK = N'/var/opt/mssql/data/db1.bak';
GO
ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1]; -- adds the database db1 to the AG
GO
Controleren of de database is gemaakt op de secundaire servers
Voer op elke secundaire SQL Server-replica de volgende query uit om te zien of de db1-database is gemaakt en de status GESYNCHRONISEERD heeft:
SELECT * FROM sys.databases WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database', synchronization_state_desc FROM sys.dm_hadr_database_replica_states;
Als de synchronization_state_desc
GESYNCHRONISEERD vermeldt voor db1
, betekent dit dat de replica's zijn gesynchroniseerd. De secundaire replica's bevatten db1
in de primaire replica.
Resources voor beschikbaarheidsgroepen maken in het Pacemaker-cluster
We volgen de handleiding voor het maken van de resources van de beschikbaarheidsgroep in het Pacemaker-cluster.
Notitie
Oordeelloze communicatie
Dit artikel bevat verwijzingen naar de term slaaf, een term die Microsoft aanstootgevend acht wanneer deze in deze context wordt gebruikt. De term wordt weergegeven in dit artikel omdat deze momenteel in de software wordt weergegeven. Wanneer de term uit de software wordt verwijderd, wordt deze uit het artikel verwijderd.
De clusterresource voor de beschikbaarheidsgroep maken
Gebruik een van de volgende opdrachten op basis van de omgeving die u eerder hebt gekozen om de resource
ag_cluster
te maken in de beschikbaarheidsgroepag1
.RHEL 7
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s master notify=true
RHEL 8
sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s promotable notify=true
Zorg ervoor dat uw resources online zijn voordat u doorgaat met behulp van de volgende opdracht:
sudo pcs resource
U moet de volgende uitvoer zien:
RHEL 7
[<username>@VM1 ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] Masters: [ <VM1> ] Slaves: [ <VM2> <VM3> ]
RHEL 8
[<username>@VM1 ~]$ sudo pcs resource * Clone Set: ag_cluster-clone [ag_cluster] (promotable): * ag_cluster (ocf::mssql:ag) : Slave VMrhel3 (Monitoring) * ag_cluster (ocf::mssql:ag) : Master VMrhel1 (Monitoring) * ag_cluster (ocf::mssql:ag) : Slave VMrhel2 (Monitoring)
Een resource maken voor een virtueel IP-adres
Gebruik een beschikbaar statisch IP-adres van uw netwerk om een resource te maken voor een virtueel IP-adres. U kunt er een vinden met behulp van de opdracht
nmap
.nmap -sP <IPRange> # For example: nmap -sP 10.0.0.* # The above will scan for all IP addresses that are already occupied in the 10.0.0.x space.
Stel de eigenschap stonith in op false:
sudo pcs property set stonith-enabled=false
Maak de virtuele IP-resource met behulp van de volgende opdracht. Vervang door
<availableIP>
een ongebruikt IP-adres.sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<availableIP>
Beperkingen toevoegen
Om er zeker van te zijn dat het IP-adres en de resource van de beschikbaarheidsgroep op hetzelfde knooppunt worden uitgevoerd, moet u een co-locatiebeperking configureren. Voer de volgende opdracht uit:
RHEL 7
sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master
RHEL 8
sudo pcs constraint colocation add virtualip with master ag_cluster-clone INFINITY with-rsc-role=Master
Maak een volgordebeperking om ervoor te zorgen dat de resource van de beschikbaarheidsgroep actief is en wordt uitgevoerd vóór het IP-adres. Hoewel de co-locatiebeperking een volgordebeperking impliceert, wordt deze hiermee afgedwongen.
RHEL 7
sudo pcs constraint order promote ag_cluster-master then start virtualip
RHEL 8
sudo pcs constraint order promote ag_cluster-clone then start virtualip
Voer de volgende opdracht uit om de beperkingen te controleren:
sudo pcs constraint list --full
U moet de volgende uitvoer zien:
RHEL 7
Location Constraints: Ordering Constraints: promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY) Ticket Constraints:
RHEL 8
Location Constraints: Ordering Constraints: promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY) Ticket Constraints:
Stonith opnieuw inschakelen
We zijn klaar om te testen. Schakel stonith in het cluster opnieuw in door de volgende opdracht uit te voeren op knooppunt 1:
sudo pcs property set stonith-enabled=true
De clusterstatus controleren
U kunt de status van de clusterresources controleren met de volgende opdracht:
[<username>@VM1 ~]$ sudo pcs status
Cluster name: az-hacluster
Stack: corosync
Current DC: <VM3> (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
Last updated: Sat Dec 7 00:18:38 2019
Last change: Sat Dec 7 00:18:02 2019 by root via cibadmin on VM1
3 nodes configured
5 resources configured
Online: [ <VM1> <VM2> <VM3> ]
Full list of resources:
Master/Slave Set: ag_cluster-master [ag_cluster]
Masters: [ <VM2> ]
Slaves: [ <VM1> <VM3> ]
virtualip (ocf::heartbeat:IPaddr2): Started <VM2>
rsc_st_azure (stonith:fence_azure_arm): Started <VM1>
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Testfailover
Om ervoor te zorgen dat de configuratie tot nu toe is geslaagd, testen we een failover. Zie Failover van AlwaysOn-beschikbaarheidsgroep op Linux voor meer informatie.
Voer de volgende opdracht uit om handmatig een failover van de primaire replica uit te voeren naar
<VM2>
. Vervang<VM2>
door de waarde van de servernaam.RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master
U kunt ook een extra optie opgeven, zodat de tijdelijke beperking die is gemaakt om de resource naar een gewenst knooppunt te verplaatsen, automatisch wordt uitgeschakeld en u hoeft stap 2 en 3 niet uit te voeren in de volgende instructies.
RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master lifetime=30S
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master lifetime=30S
Een ander alternatief voor het automatiseren van stap 2 en 3, waardoor de tijdelijke beperking in de opdracht voor het verplaatsen van resources zelf wordt gewist, is door meerdere opdrachten op één regel te combineren.
RHEL 7
sudo pcs resource move ag_cluster-master <VM2> --master && sleep 30 && pcs resource clear ag_cluster-master
RHEL 8
sudo pcs resource move ag_cluster-clone <VM2> --master && sleep 30 && pcs resource clear ag_cluster-clone
Als u de beperkingen opnieuw controleert, ziet u dat er een andere beperking is toegevoegd vanwege de handmatige failover:
RHEL 7
[<username>@VM1 ~]$ sudo pcs constraint list --full Location Constraints: Resource: ag_cluster-master Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-master) Ordering Constraints: promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY) Ticket Constraints:
RHEL 8
[<username>@VM1 ~]$ sudo pcs constraint list --full Location Constraints: Resource: ag_cluster-master Enabled on: VM2 (score:INFINITY) (role: Master) (id:cli-prefer-ag_cluster-clone) Ordering Constraints: promote ag_cluster-clone then start virtualip (kind:Mandatory) (id:order-ag_cluster-clone-virtualip-mandatory) Colocation Constraints: virtualip with ag_cluster-clone (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-clone-INFINITY) Ticket Constraints:
Verwijder de beperking met id
cli-prefer-ag_cluster-master
met behulp van de volgende opdracht:RHEL 7
sudo pcs constraint remove cli-prefer-ag_cluster-master
RHEL 8
sudo pcs constraint remove cli-prefer-ag_cluster-clone
Als u uw clusterresources controleert met de opdracht
sudo pcs resource
, ziet u dat het primaire exemplaar nu<VM2>
is.[<username>@<VM1> ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] ag_cluster (ocf::mssql:ag): FAILED <VM1> (Monitoring) Masters: [ <VM2> ] Slaves: [ <VM3> ] virtualip (ocf::heartbeat:IPaddr2): Started <VM2> [<username>@<VM1> ~]$ sudo pcs resource Master/Slave Set: ag_cluster-master [ag_cluster] Masters: [ <VM2> ] Slaves: [ <VM1> <VM3> ] virtualip (ocf::heartbeat:IPaddr2): Started <VM2>
Fencing testen
U kunt fencing testen door de volgende opdracht uit te voeren. Probeer onderstaande opdracht vanuit <VM1>
uit te voeren voor <VM3>
.
sudo pcs stonith fence <VM3> --debug
Notitie
Met de fence-actie wordt het knooppunt standaard uit- en weer ingeschakeld. Als u het knooppunt alleen offline wilt zetten, gebruikt u de optie --off
in de opdracht.
De volgende uitvoer moet worden weergegeven:
[<username>@<VM1> ~]$ sudo pcs stonith fence <VM3> --debug
Running: stonith_admin -B <VM3>
Return Value: 0
--Debug Output Start--
--Debug Output End--
Node: <VM3> fenced
Zie voor meer informatie over het testen van een fencing-apparaat het volgende Red Hat-artikel.