Zelfstudie: Beschikbaarheidsgroepen configureren voor SQL Server op virtuele SLES-machines in Azure
Van toepassing op: SQL Server op Azure VM
Notitie
In deze zelfstudie gebruiken we SQL Server 2022 (16.x) met SUSE Linux Enterprise Server (SLES) v15, maar het is mogelijk om SQL Server 2019 (15.x) te gebruiken met SLES v12 of SLES v15 om hoge beschikbaarheid te configureren.
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-tools installeren op SLES
- 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 meer dan één abonnement hebt, stelt u het abonnement in waarop 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. In deze zelfstudie wordt East US 2
gebruikt. 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": []
}
Een virtueel netwerk en een subnet maken
Maak een benoemd subnet met een vooraf toegewezen IP-adresbereik. Vervang deze waarden in de volgende opdracht:
<resourceGroupName>
<vNetName>
<subnetName>
az network vnet create \ --resource-group <resourceGroupName> \ --name <vNetName> \ --address-prefix 10.1.0.0/16 \ --subnet-name <subnetName> \ --subnet-prefix 10.1.1.0/24
Met de vorige opdracht maakt u een VNet en een subnet met een aangepast IP-bereik.
SLES-VM's maken in de beschikbaarheidsset
Bekijk een lijst met installatiekopieën van virtuele machines die SLES v15 SP4 aanbieden met BYOS (Bring Your Own Subscription). U kunt ook de SUSE Enterprise Linux 15 SP4 + Patching-VM (
sles-15-sp4-basic
) gebruiken.az vm image list --all --offer "sles-15-sp3-byos" # if you want to search the basic offers you could search using the command below az vm image list --all --offer "sles-15-sp3-basic"
U ziet de volgende resultaten wanneer u zoekt naar de BYOS-installatiekopieën:
[ { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.05.05", "version": "2022.05.05" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.07.19", "version": "2022.07.19" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen1", "urn": "SUSE:sles-15-sp3-byos:gen1:2022.11.10", "version": "2022.11.10" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.05.05", "version": "2022.05.05" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.07.19", "version": "2022.07.19" }, { "offer": "sles-15-sp3-byos", "publisher": "SUSE", "sku": "gen2", "urn": "SUSE:sles-15-sp3-byos:gen2:2022.11.10", "version": "2022.11.10" } ]
In deze zelfstudie wordt
SUSE:sles-15-sp3-byos:gen1:2022.11.10
gebruikt.Belangrijk
Computernamen moeten minder dan 15 tekens lang zijn om een beschikbaarheidsgroep in te stellen. Gebruikersnamen mogen geen hoofdletters bevatten en wachtwoorden moeten tussen de 12 en 72 tekens bevatten.
Maak drie VM's in de beschikbaarheidsset. Vervang deze waarden in de volgende opdracht:
<resourceGroupName>
<VM-basename>
<availabilitySetName>
<VM-Size>
- Een voorbeeld is 'Standard_D16s_v3'<username>
<adminPassword>
<vNetName>
<subnetName>
for i in `seq 1 3`; do az vm create \ --resource-group <resourceGroupName> \ --name <VM-basename>$i \ --availability-set <availabilitySetName> \ --size "<VM-Size>" \ --os-disk-size-gb 128 \ --image "SUSE:sles-15-sp3-byos:gen1:2022.11.10" \ --admin-username "<username>" \ --admin-password "<adminPassword>" \ --authentication-type all \ --generate-ssh-keys \ --vnet-name "<vNetName>" \ --subnet "<subnetName>" \ --public-ip-sku Standard \ --public-ip-address "" done
Met de vorige opdracht worden de VM's gemaakt met behulp van het eerder gedefinieerde VNet. Zie het artikel over az vm create voor meer informatie over de verschillende configuraties.
De opdracht bevat ook de parameter voor het --os-disk-size-gb
maken van een aangepaste grootte van het besturingssysteemstation van 128 GB. Als u deze grootte later vergroot, vouwt u de juiste mapvolumes uit om tegemoet te komen aan uw installatie, configureert u de LVM (Logical Volume Manager).
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/sles1",
"location": "westus",
"macAddress": "<Some MAC address>",
"powerState": "VM running",
"privateIpAddress": "<IP1>",
"resourceGroup": "<resourceGroupName>",
"zones": ""
}
Verbinding met de gemaakte VM's testen
Verbinding maken naar elk van de VM's 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>@sles1 ~]$
Typ exit
om de SSH-sessie te verlaten.
Registreren bij SUSE Verbinding maken en pakketten met hoge beschikbaarheid installeren
Als u deze zelfstudie wilt voltooien, moeten uw VM's zijn geregistreerd bij SUSE Verbinding maken om updates en ondersteuning te ontvangen. Vervolgens kunt u de extensiemodule voor hoge beschikbaarheid of het patroon installeren. Dit is een set pakketten die hoge beschikbaarheid mogelijk maakt.
Het is eenvoudiger om tegelijkertijd een SSH-sessie te openen op elk van de VM's (knooppunten), omdat dezelfde opdrachten moeten worden uitgevoerd op elke VIRTUELE machine in het hele artikel.
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.
Verbinding maken op elk VM-knooppunt om de volgende stappen uit te voeren.
Registreer de VIRTUELE machine bij SUSE Verbinding maken
Als u uw VM-knooppunt wilt registreren bij SUSE Verbinding maken vervangt u deze waarden in de volgende opdracht op alle knooppunten:
<subscriptionEmailAddress>
<registrationCode>
sudo SUSEConnect
--url=https://scc.suse.com
-e <subscriptionEmailAddress> \
-r <registrationCode>
Extensie voor hoge beschikbaarheid installeren
Als u de extensie voor hoge beschikbaarheid wilt installeren, voert u de volgende opdracht uit op alle knooppunten:
sudo SUSEConnect -p sle-ha/15.3/x86_64 -r <registration code for Partner Subscription for High Availability Extension>
SSH-toegang zonder wachtwoord tussen knooppunten configureren
Met SSH-toegang zonder wachtwoord kunnen uw VM's met elkaar communiceren met behulp van openbare SSH-sleutels. U moet SSH-sleutels op elk knooppunt configureren en deze sleutels naar elk knooppunt kopiëren.
Nieuwe SSH-sleutels genereren
De vereiste SSH-sleutelgrootte is 4096 bits. Ga op elke VIRTUELE machine naar de /root/.ssh
map en voer de volgende opdracht uit:
ssh-keygen -t rsa -b 4096
Tijdens deze stap wordt u mogelijk gevraagd een bestaand SSH-bestand te overschrijven. U moet akkoord gaan met deze prompt. U hoeft geen wachtwoordzin in te voeren.
De openbare SSH-sleutels kopiëren
Op elke virtuele machine moet u de openbare sleutel kopiëren van het knooppunt dat u zojuist hebt gemaakt, met behulp van de ssh-copy-id
opdracht. Als u de doelmap op de doel-VM wilt opgeven, kunt u de -i
parameter gebruiken.
In de volgende opdracht kan het account hetzelfde account zijn dat u voor elk knooppunt hebt geconfigureerd bij het <username>
maken van de virtuele machine. U kunt het root
account ook gebruiken, maar dit wordt niet aanbevolen in een productieomgeving.
sudo ssh-copy-id <username>@sles1
sudo ssh-copy-id <username>@sles2
sudo ssh-copy-id <username>@sles3
Toegang zonder wachtwoord controleren vanaf elk knooppunt
Gebruik de ssh
opdracht van elk knooppunt om te bevestigen dat de openbare SSH-sleutel naar elk knooppunt is gekopieerd. Als u de sleutels correct hebt gekopieerd, wordt u niet om een wachtwoord gevraagd en wordt de verbinding tot stand gebracht.
In dit voorbeeld maken we verbinding met de tweede en derde knooppunten vanaf de eerste VM (sles1
). Het account kan opnieuw <username>
hetzelfde account zijn dat u voor elk knooppunt hebt geconfigureerd bij het maken van de VIRTUELE machine
ssh <username>@sles2
ssh <username>@sles3
Herhaal dit proces van alle drie de knooppunten, zodat elk knooppunt met de andere kan communiceren zonder wachtwoorden.
Naamomzetting configureren
U kunt naamomzetting configureren met behulp van DNS of door het etc/hosts
bestand handmatig op elk knooppunt te bewerken.
Zie Sql Server toevoegen op een Linux-host aan een Active Directory-domein voor meer informatie over DNS en Active Directory.
Belangrijk
U wordt aangeraden uw privé-IP-adres in het vorige voorbeeld te gebruiken. Als u het openbare IP-adres in deze configuratie gebruikt, mislukt de installatie en wordt uw VIRTUELE machine blootgesteld aan externe netwerken.
De VM's en hun IP-adres die in dit voorbeeld worden gebruikt, worden als volgt weergegeven:
sles1
: 10.0.0.85sles2
: 10.0.0.86sles3
: 10.0.0.87
Het cluster configureren
Voor deze zelfstudie is uw eerste VM (sles1
) knooppunt 1, uw tweede VM (sles2
) knooppunt 2 en uw derde VM (sles3
) knooppunt 3. Zie Pacemaker instellen op SUSE Linux Enterprise Server in Azure voor meer informatie over clusterinstallatie.
Clusterinstallatie
Voer de volgende opdracht uit om het
ha-cluster-bootstrap
pakket op knooppunt 1 te installeren en start het knooppunt opnieuw op. In dit voorbeeld is dit desles1
virtuele machine.sudo zypper install ha-cluster-bootstrap
Nadat het knooppunt opnieuw is opgestart, voert u de volgende opdracht uit om het cluster te implementeren:
sudo crm cluster init --name sqlcluster
U ziet een vergelijkbare uitvoer als in het volgende voorbeeld:
Do you want to continue anyway (y/n)? y Generating SSH key for root The user 'hacluster' will have the login shell configuration changed to /bin/bash Continue (y/n)? y Generating SSH key for hacluster Configuring csync2 Generating csync2 shared key (this may take a while)...done csync2 checking files...done Detected cloud platform: microsoft-azure Configure Corosync (unicast): This will configure the cluster messaging layer. You will need to specify a network address over which to communicate (default is eth0's network, but you can use the network address of any active interface). Address for ring0 [10.0.0.85] Port for ring0 [5405] Configure SBD: If you have shared storage, for example a SAN or iSCSI target, you can use it avoid split-brain scenarios by configuring SBD. This requires a 1 MB partition, accessible to all nodes in the cluster. The device path must be persistent and consistent across all nodes in the cluster, so /dev/disk/by-id/* devices are a good choice. Note that all data on the partition you specify here will be destroyed. Do you wish to use SBD (y/n)? n WARNING: Not configuring SBD - STONITH will be disabled. Hawk cluster interface is now running. To see cluster status, open: https://10.0.0.85:7630/ Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! Waiting for cluster..............done Loading initial cluster configuration Configure Administration IP Address: Optionally configure an administration virtual IP address. The purpose of this IP address is to provide a single IP that can be used to interact with the cluster, rather than using the IP address of any specific cluster node. Do you wish to configure a virtual IP address (y/n)? y Virtual IP []10.0.0.89 Configuring virtual IP (10.0.0.89)....done Configure Qdevice/Qnetd: QDevice participates in quorum decisions. With the assistance of a third-party arbitrator Qnetd, it provides votes so that a cluster is able to sustain more node failures than standard quorum rules allow. It is recommended for clusters with an even number of nodes and highly recommended for 2 node clusters. Do you want to configure QDevice (y/n)? n Done (log saved to /var/log/crmsh/ha-cluster-bootstrap.log)
Controleer de status van het cluster op knooppunt 1 met behulp van de volgende opdracht:
sudo crm status
De uitvoer moet de volgende tekst bevatten als deze is geslaagd:
1 node configured 1 resource instance configured
Wijzig op alle knooppunten het wachtwoord voor
hacluster
iets veiliger met behulp van de volgende opdracht. U moet ook uwroot
gebruikerswachtwoord wijzigen:sudo passwd hacluster
sudo passwd root
Voer de volgende opdracht uit op knooppunt 2 en knooppunt 3 om het
crmsh
pakket eerst te installeren:sudo zypper install crmsh
Voer nu de opdracht uit om deel te nemen aan het cluster:
sudo crm cluster join
Hier volgen enkele interacties die u kunt verwachten:
Join This Node to Cluster: You will be asked for the IP address of an existing node, from which configuration will be copied. If you have not already configured passwordless ssh between nodes, you will be prompted for the root password of the existing node. IP address or hostname of existing node (e.g.: 192.168.1.1) []10.0.0.85 Configuring SSH passwordless with root@10.0.0.85 root@10.0.0.85's password: Configuring SSH passwordless with hacluster@10.0.0.85 Configuring csync2...done Merging known_hosts WARNING: scp to sles2 failed (Exited with error code 1, Error output: The authenticity of host 'sles2 (10.1.1.5)' can't be established. ECDSA key fingerprint is SHA256:UI0iyfL5N6X1ZahxntrScxyiamtzsDZ9Ftmeg8rSBFI. Are you sure you want to continue connecting (yes/no/[fingerprint])? lost connection ), known_hosts update may be incomplete Probing for new partitions...done Address for ring0 [10.0.0.86] Hawk cluster interface is now running. To see cluster status, open: https://10.0.0.86:7630/ Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! Waiting for cluster.....done Reloading cluster configuration...done Done (log saved to /var/log/crmsh/ha-cluster-bootstrap.log)
Zodra u alle machines aan het cluster hebt toegevoegd, controleert u uw resource om te zien of alle VM's online zijn:
sudo crm status
U moet de volgende uitvoer zien:
Stack: corosync Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum Last updated: Mon Mar 6 18:01:17 2023 Last change: Mon Mar 6 17:10:09 2023 by root via cibadmin on sles1 3 nodes configured 1 resource instance configured Online: [ sles1 sles2 sles3 ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started sles1
Installeer het clusterresourceonderdeel. Voer de volgende opdracht uit op alle knooppunten.
sudo zypper in socat
Installeer het
azure-lb
onderdeel. Voer de volgende opdracht uit op alle knooppunten.sudo zypper in resource-agents
Configureer het besturingssysteem. Doorloop de volgende stappen op alle knooppunten.
Bewerk het configuratiebestand:
sudo vi /etc/systemd/system.conf
Wijzig de
DefaultTasksMax
waarde in4096
:#DefaultTasksMax=512 DefaultTasksMax=4096
Sla de vi-editor op en sluit deze af.
Voer de volgende opdracht uit om deze instelling te activeren:
sudo systemctl daemon-reload
Test of de wijziging is geslaagd:
sudo systemctl --no-pager show | grep DefaultTasksMax
Verklein de grootte van de vuile cache. Doorloop de volgende stappen op alle knooppunten.
Bewerk het configuratiebestand voor systeembeheer:
sudo vi /etc/sysctl.conf
Voeg de volgende twee regels toe aan het bestand:
vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
Sla de vi-editor op en sluit deze af.
Installeer de Azure Python SDK op alle knooppunten met de volgende opdrachten:
sudo zypper install fence-agents # Install the Azure Python SDK on SLES 15 or later: # You might need to activate the public cloud extension first. In this example, the SUSEConnect command is for SLES 15 SP1 SUSEConnect -p sle-module-public-cloud/15.1/x86_64 sudo zypper install python3-azure-mgmt-compute sudo zypper install python3-azure-identity
Fencing-agent configureren
Een STONITH-apparaat biedt een fencing-agent. De onderstaande instructies zijn voor deze zelfstudie gewijzigd. Zie Een Azure Fence Agent 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 zypper info resource-agents
De uitvoer moet ongeveer overeenkomen met onderstaand voorbeeld.
Information for package resource-agents:
----------------------------------------
Repository : SLE-Product-HA15-SP3-Updates
Name : resource-agents
Version : 4.8.0+git30.d0077df0-150300.8.37.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Support Level : Level 3
Installed Size : 2.5 MiB
Installed : Yes (automatically)
Status : up-to-date
Source package : resource-agents-4.8.0+git30.d0077df0-150300.8.37.1.src
Upstream URL : http://linux-ha.org/
Summary : HA Reusable Cluster Resource Scripts
Description : A set of scripts to interface with several services
to operate in a High Availability environment for both
Pacemaker and rgmanager service managers.
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 onderstaande stappen) van de service-principal.
Aangepaste rol maken voor de omheiningsagent
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>
toe die in de laatste stap is gemaakt, aan de service-principal. Herhaal deze stappen voor alle knooppunten.
Waarschuwing
Gebruik hier niet de rol Eigenaar.
- Ga naar https://portal.azure.com
- Het deelvenster Alle resources openen
- De virtuele machine van het eerste clusterknooppunt selecteren
- Selecteer Toegangsbeheer (IAM)
- Selecteer Roltoewijzingen toevoegen
- Selecteer de rol
Linux Fence Agent Role-<username>
in de lijst Rol - Laat Wijs toegang toe als de standaardwaarde
Users, group, or service principal
. - Voer in de lijst Selecteren de naam in van de toepassing die u eerder hebt gemaakt, bijvoorbeeld
<resourceGroupName>-app
. - Selecteer Opslaan.
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.
- Vervang de
Voer deze opdracht uit
crm configure
om de CRM-prompt te openen:sudo crm configure
Voer in de CRM-prompt de volgende opdracht uit om de resource-eigenschappen te configureren, waarmee de resource wordt gemaakt die wordt aangeroepen
rsc_st_azure
, zoals wordt weergegeven in het volgende voorbeeld:primitive rsc_st_azure stonith:fence_azure_arm params subscriptionId="subscriptionID" resourceGroup="ResourceGroup_Name" tenantId="TenantID" login="ApplicationID" passwd="servicePrincipalPassword" pcmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_host_map="sles1:sles1;sles2:sles2;sles3:sles3" op monitor interval=3600 timeout=120 commit quit
Voer de volgende opdrachten uit om de fencing-agent te configureren:
sudo crm configure property stonith-timeout=900 sudo crm configure property stonith-enabled=true sudo crm configure property concurrent-fencing=true
Controleer de status van uw cluster om te zien dat STONITH is ingeschakeld:
sudo crm status
Als het goed is, ziet u uitvoer die lijkt op de volgende tekst:
Stack: corosync Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum Last updated: Mon Mar 6 18:20:17 2023 Last change: Mon Mar 6 18:10:09 2023 by root via cibadmin on sles1 3 nodes configured 2 resource instances configured Online: [ sles1 sles2 sles3 ] Full list of resources: admin-ip (ocf::heartbeat:IPaddr2): Started sles1 rsc_st_azure (stonith:fence_azure_arm): Started sles2
SQL Server en MSSQL-hulpprogramma's installeren
Gebruik de onderstaande sectie om SQL Server en mssql-tools te installeren. Zie SQL Server installeren op SUSE Linux Enterprise Server voor meer informatie.
Voer deze stappen uit op alle knooppunten in deze sectie.
SQL Server installeren op de VM's
De volgende opdrachten worden gebruikt om SQL Server te installeren:
Download het configuratiebestand voor de SLES-opslagplaats van Microsoft SQL Server 2019:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/mssql-server-2022.repo
Vernieuw uw opslagplaatsen.
sudo zypper --gpg-auto-import-keys refresh
Gebruik de volgende opdracht om de sleutel voor microsoft-pakketondertekening op uw systeem te importeren om ervoor te zorgen dat de ondertekeningssleutel van Microsoft-pakketten op uw systeem is geïnstalleerd:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
Voer de volgende opdrachten uit om SQL Server te installeren:
sudo zypper install -y mssql-server
Nadat de installatie van het pakket is voltooid, voert
mssql-conf setup
u de aanwijzingen uit om het SA-wachtwoord in te stellen en kiest u uw editie.sudo /opt/mssql/bin/mssql-conf setup
Notitie
Zorg ervoor dat u een sterk wachtwoord opgeeft voor het SA-account (minimale lengte 8 tekens, inclusief hoofdletters en kleine letters, grondtal 10 cijfers en/of niet-alfanumerieke symbolen).
Zodra de configuratie is voltooid, controleert u of de service wordt uitgevoerd:
systemctl status mssql-server
SQL Server-opdrachtregelprogramma's installeren
Met de volgende stappen installeert u de opdrachtregelprogramma's van SQL Server, namelijk sqlcmd en bcp.
Voeg de Microsoft SQL Server-opslagplaats toe aan Zypper.
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/prod.repo
Vernieuw uw opslagplaatsen.
sudo zypper --gpg-auto-import-keys refresh
Installeer mssql-tools met het
unixODBC
ontwikkelaarspakket. Zie Het Microsoft ODBC-stuurprogramma voor SQL Server (Linux) installeren voor meer informatie.sudo zypper install -y mssql-tools unixODBC-devel
Voor het gemak kunt u toevoegen /opt/mssql-tools/bin/
aan uw PATH
omgevingsvariabele. U kunt de hulpprogramma's dan uitvoeren zonder het volledige pad op te geven. Voer de volgende opdrachten uit als u PATH wilt 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
SQL Server-agent voor hoge beschikbaarheid installeren
Voer de volgende opdracht uit op alle knooppunten om het agentpakket voor hoge beschikbaarheid voor SQL Server te installeren:
sudo zypper install mssql-server-ha
Poorten openen voor services met hoge beschikbaarheid
U kunt de volgende firewallpoorten openen op alle knooppunten voor SQL Server- en HA-services: 1433, 2224, 3121, 5022, 5405, 21064.
sudo firewall-cmd --zone=public --add-port=1433/tcp --add-port=2224/tcp --add-port=3121/tcp --add-port=5022/tcp --add-port=5405/tcp --add-port=21064 --permanent sudo firewall-cmd --reload
Een beschikbaarheidsgroep configureren
Gebruik de volgende stappen om een AlwaysOn-beschikbaarheidsgroep in SQL Server voor uw VM's te configureren. Zie AlwaysOn-beschikbaarheidsgroep in SQL Server configureren voor hoge beschikbaarheid op Linux voor meer informatie
Beschikbaarheidsgroepen inschakelen en SQL Server opnieuw starten
Schakel beschikbaarheidsgroepen in op elk knooppunt dat als host fungeert voor een SQL Server-exemplaar. Start vervolgens de mssql-server
service opnieuw op. Voer de volgende opdrachten uit op elk knooppunt:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
Een certificaat maken
Microsoft biedt geen ondersteuning voor Active Directory-verificatie voor het AG-eindpunt. Daarom moet u een certificaat gebruiken voor AG-eindpuntversleuteling.
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
<MasterKeyPassword>
door uw eigen wachtwoord.
ALTER EVENT SESSION AlwaysOn_health ON SERVER WITH (STARTUP_STATE = ON); GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<MasterKeyPassword>'; GO
- Vervang het
Verbinding maken naar de primaire replica met behulp van SSMS of sqlcmd. Met de onderstaande 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
<PrivateKeyPassword>
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 = '<PrivateKeyPassword>' ); 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
sles2
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 kunt desudo
opdracht vóór elke opdracht uitvoeren.# The below command allows you to run commands in the root environment sudo -i
scp /var/opt/mssql/data/dbm_certificate.* <username>@sles2:/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 = '<PrivateKeyPassword>' ); 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 door
ag1
de gewenste AG-naam. - Vervang de waarden van
sles1
,sles2
ensles3
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'sles1'
WITH (
ENDPOINT_URL = N'tcp://sles1:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'sles2'
WITH (
ENDPOINT_URL = N'tcp://sles2:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'sles3'
WITH (
ENDPOINT_URL = N'tcp://sles3: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 twee 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
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
Deze sectie volgt het artikel voor het toevoegen van een database aan een beschikbaarheidsgroep.
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;
GO
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
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.
In dit artikel wordt verwezen naar de handleiding voor het maken van de resources van de beschikbaarheidsgroep in een Pacemaker-cluster.
Pacemaker inschakelen
Schakel Pacemaker in zodat deze automatisch wordt gestart.
Voer de volgende opdracht uit op alle knooppunten in het cluster.
sudo systemctl enable pacemaker
De clusterresource voor de beschikbaarheidsgroep maken
Voer deze opdracht uit
crm configure
om de CRM-prompt te openen:sudo crm configure
Voer in de CRM-prompt de volgende opdracht uit om de resource-eigenschappen te configureren. Met de volgende opdrachten maakt u de resource
ag_cluster
in de beschikbaarheidsgroepag1
.primitive ag_cluster ocf:mssql:ag params ag_name="ag1" meta failure-timeout=60s op start timeout=60s op stop timeout=60s op promote timeout=60s op demote timeout=10s op monitor timeout=60s interval=10s op monitor timeout=60s interval=11s role="Master" op monitor timeout=60s interval=12s role="Slave" op notify timeout=60s ms ms-ag_cluster ag_cluster meta master-max="1" master-node-max="1" clone-max="3" clone-node-max="1" notify="true" commit quit
Tip
Typ
quit
om af te sluiten van de crm-prompt .Stel de co-locatiebeperking voor het virtuele IP-adres in om te worden uitgevoerd op hetzelfde knooppunt als het primaire knooppunt:
sudo crm configure colocation vip_on_master inf: admin-ip ms-ag_cluster: Master commit quit
Voeg de volgordebeperking toe om te voorkomen dat het IP-adres tijdelijk naar het knooppunt verwijst met de secundaire prefailover. Voer de volgende opdracht uit om een bestelbeperking te maken:
sudo crm configure order ag_first inf: ms-ag_cluster:promote admin-ip:start commit quit
Controleer de status van het cluster met behulp van de opdracht:
sudo crm status
De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld:
Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Mon Mar 6 18:38:17 2023 * Last change: Mon Mar 6 18:38:09 2023 by root via cibadmin on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Started sles1 * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Masters: [ sles1 ] * Slaves: [ sles2 sles3 ]
Voer de volgende opdracht uit om de beperkingen te controleren:
sudo crm configure show
De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld:
node 1: sles1 node 2: sles2 node 3: sles3 primitive admin-ip IPaddr2 \ params ip=10.0.0.93 \ op monitor interval=10 timeout=20 primitive ag_cluster ocf:mssql:ag \ params ag_name=ag1 \ meta failure-timeout=60s \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op promote timeout=60s interval=0 \ op demote timeout=10s interval=0 \ op monitor timeout=60s interval=10s \ op monitor timeout=60s interval=11s role=Master \ op monitor timeout=60s interval=12s role=Slave \ op notify timeout=60s interval=0 primitive rsc_st_azure stonith:fence_azure_arm \ params subscriptionId=xxxxxxx resourceGroup=amvindomain tenantId=xxxxxxx login=xxxxxxx passwd="******" cmk_monitor_retries=4 pcmk_action_limit=3 power_timeout=240 pcmk_reboot_timeout=900 pcmk_host_map="sles1:sles1;les2:sles2;sles3:sles3" \ op monitor interval=3600 timeout=120 ms ms-ag_cluster ag_cluster \ meta master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 notify=true order ag_first Mandatory: ms-ag_cluster:promote admin-ip:start colocation vip_on_master inf: admin-ip ms-ag_cluster:Master property cib-bootstrap-options: \ have-watchdog=false \ dc-version="2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712" \ cluster-infrastructure=corosync \ cluster-name=sqlcluster \ stonith-enabled=true \ concurrent-fencing=true \ stonith-timeout=900 rsc_defaults rsc-options: \ resource-stickiness=1 \ migration-threshold=3 op_defaults op-options: \ timeout=600 \ record-pending=true
Testfailover
Test een failover om ervoor te zorgen dat de configuratie tot nu toe is geslaagd. 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
sles2
. Vervangsles2
door de waarde van de servernaam.sudo crm resource move ag_cluster sles2
De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld:
INFO: Move constraint created for ms-ag_cluster to sles2 INFO: Use `crm resource clear ms-ag_cluster` to remove this constraint
Controleer de status van het cluster:
sudo crm status
De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld:
Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Mon Mar 6 18:40:02 2023 * Last change: Mon Mar 6 18:39:53 2023 by root via crm_resource on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Stopped * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Slaves: [ sles1 sles2 sles3 ]
Na enige tijd is de
sles2
VIRTUELE machine nu de primaire en de andere twee VM's secundair. Voer opnieuw uitsudo crm status
en controleer de uitvoer, die vergelijkbaar is met het volgende voorbeeld:Cluster Summary: * Stack: corosync * Current DC: sles1 (version 2.0.5+20201202.ba59be712-150300.4.30.3-2.0.5+20201202.ba59be712) - partition with quorum * Last updated: Tue Mar 6 22:00:44 2023 * Last change: Mon Mar 6 18:42:59 2023 by root via cibadmin on sles1 * 3 nodes configured * 5 resource instances configured Node List: * Online: [ sles1 sles2 sles3 ] Full List of Resources: * admin-ip (ocf::heartbeat:IPaddr2): Started sles2 * rsc_st_azure (stonith:fence_azure_arm): Started sles2 * Clone Set: ms-ag_cluster [ag_cluster] (promotable): * Masters: [ sles2 ] * Slaves: [ sles1 sles3 ]
Controleer uw beperkingen opnieuw met behulp van
crm config show
. U ziet dat er een andere beperking is toegevoegd vanwege de handmatige failover.Verwijder de beperking met id
cli-prefer-ag_cluster
met behulp van de volgende opdracht:crm configure delete cli-prefer-ms-ag_cluster commit
Fencing testen
U kunt STONITH nu testen door de volgende opdracht uit te voeren. Probeer onderstaande opdracht vanuit sles1
uit te voeren voor sles3
.
sudo crm node fence sles3