Oktatóanyag: Az SQL Server rendelkezésre állási csoportjainak konfigurálása SLES-alapú virtuális gépeken az Azure-ban

A következőre vonatkozik:SQL Server azure-beli virtuális gépen

Megjegyzés:

Ebben az oktatóanyagban az SQL Server 2022 -t (16.x) su Standard kiadás Linux Enterprise Server (SLES) v15-tel használjuk, de az SQL Server 2019 (15.x) SLES v12 vagy SLES v15 használatával konfigurálható a magas rendelkezésre állás.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Új erőforráscsoport, rendelkezésre állási csoport és Linux rendszerű virtuális gépek létrehozása
  • Magas rendelkezésre állás engedélyezése (HA)
  • Pacemaker-fürt létrehozása
  • Kerítésügynök konfigurálása STONITH-eszköz létrehozásával
  • AZ SQL Server és az mssql-tools telepítése az SLES-en
  • Sql Server Always On rendelkezésre állási csoport konfigurálása
  • Rendelkezésre állási csoport (AG) erőforrásainak konfigurálása a Pacemaker-fürtben
  • Feladatátvétel és a kerítésügynök tesztelése

Ez az oktatóanyag az Azure CLI használatával helyezi üzembe az erőforrásokat az Azure-ban.

Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.

Előfeltételek

  • Ez a cikk az Azure CLI 2.0.30-s vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

Erőforráscsoport létrehozása

Ha több előfizetése van, állítsa be azt az előfizetést, amelybe telepíteni szeretné ezeket az erőforrásokat.

Az alábbi paranccsal hozzon létre egy erőforráscsoportot <resourceGroupName> egy régióban. Cserélje le <resourceGroupName> az Ön által választott névre. Ebben az oktatóanyagban a következőt használjuk: East US 2. További információkért tekintse meg az alábbi rövid útmutatót.

az group create --name <resourceGroupName> --location eastus2

Rendelkezésre állási csoport létrehozása

A következő lépés egy rendelkezésre állási csoport létrehozása. Futtassa a következő parancsot az Azure Cloud Shellben, és cserélje le <resourceGroupName> az erőforráscsoport nevére. Válasszon nevet a következőnek <availabilitySetName>: .

az vm availability-set create \
    --resource-group <resourceGroupName> \
    --name <availabilitySetName> \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

A parancs befejeződése után a következő eredményeket kell kapnia:

{
  "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": []
}

Virtuális hálózat és alhálózat létrehozása

  1. Hozzon létre egy elnevezett alhálózatot egy előre hozzárendelt IP-címtartománysal. Cserélje le ezeket az értékeket a következő parancsban:

    • <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
    

    Az előző parancs létrehoz egy virtuális hálózatot és egy egyéni IP-tartományt tartalmazó alhálózatot.

SLES virtuális gépek létrehozása a rendelkezésre állási csoportban

  1. Szerezze be az SLES v15 SP4-et BYOS-sel kínáló virtuálisgép-rendszerképek listáját (hozzon létre saját előfizetést). A SU Standard kiadás Enterprise Linux 15 SP4 + Patching VM (sles-15-sp4-basic) is használható.

    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"
    

    A BYOS-rendszerképek keresésekor a következő eredményeknek kell megjelennie:

    [
       {
          "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"
       }
    ]
    

    Ebben az oktatóanyagban a következőt használjuk: SUSE:sles-15-sp3-byos:gen1:2022.11.10.

    Fontos

    A gépneveknek 15 karakternél rövidebbnek kell lenniük a rendelkezésre állási csoport beállításához. A felhasználónevek nem tartalmazhatnak nagybetűket, és a jelszavaknak 12 és 72 karakter közöttinek kell lenniük.

  2. Hozzon létre három virtuális gépet a rendelkezésre állási csoportban. Cserélje le ezeket az értékeket a következő parancsban:

    • <resourceGroupName>
    • <VM-basename>
    • <availabilitySetName>
    • <VM-Size> - Ilyen például a "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
    

Az előző parancs a korábban definiált virtuális hálózat használatával hozza létre a virtuális gépeket. A különböző konfigurációkkal kapcsolatos további információkért tekintse meg az az vm create cikket.

A parancs azt a --os-disk-size-gb paramétert is tartalmazza, amely 128 GB-os egyéni operációsrendszer-meghajtóméretet hoz létre. Ha később növeli ezt a méretet, bontsa ki a megfelelő mappaköteteket a telepítéshez, konfigurálja a Logikai kötetkezelőt (LVM).

Az egyes virtuális gépek parancsának befejeződése után az alábbihoz hasonló eredményeket kell kapnia:

{
  "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": ""
}

A létrehozott virtuális gépekkel való kapcsolat tesztelése

Csatlakozás az egyes virtuális gépekre az alábbi paranccsal az Azure Cloud Shellben. Ha nem találja a virtuálisgép-IP-címeket, kövesse ezt a rövid útmutatót az Azure Cloud Shellben.

ssh <username>@<publicIPAddress>

Ha a kapcsolat sikeres, a következő kimenetnek kell megjelennie, amely a Linux-terminált jelöli:

[<username>@sles1 ~]$

Írja be exit az SSH-munkamenet elhagyásához.

Regisztráljon az SU Standard kiadásCsatlakozás és telepítse a magas rendelkezésre állású csomagokat

Az oktatóanyag elvégzéséhez a virtuális gépeket regisztrálni kell az SU Standard kiadásCsatlakozás a frissítések és a támogatás fogadásához. Ezután telepítheti a Magas rendelkezésre állású bővítmény modult vagy mintát, amely a HA használatát lehetővé tevő csomagok készlete.

Egyszerűbb egy SSH-munkamenetet egyszerre megnyitni az egyes virtuális gépeken (csomópontokon), mivel a cikkben szereplő összes virtuális gépen ugyanazokat a parancsokat kell futtatni.

Ha több sudo parancsot másol és illeszt be, és a rendszer jelszót kér, a további parancsok nem futnak. Futtassa az egyes parancsokat külön-külön.

Csatlakozás minden virtuálisgép-csomópontra a következő lépések futtatásához.

A virtuális gép regisztrálása az SU-val Standard kiadásCsatlakozás

A virtuálisgép-csomópont su Standard kiadásCsatlakozás használatával történő regisztrálásához cserélje le ezeket az értékeket az alábbi parancsban az összes csomóponton:

  • <subscriptionEmailAddress>
  • <registrationCode>
sudo SUSEConnect
    --url=https://scc.suse.com
    -e <subscriptionEmailAddress> \
    -r <registrationCode>

Magas rendelkezésre állású bővítmény telepítése

A magas rendelkezésre állású bővítmény telepítéséhez futtassa a következő parancsot az összes csomóponton:

sudo SUSEConnect -p sle-ha/15.3/x86_64 -r <registration code for Partner Subscription for High Availability Extension>

Jelszó nélküli SSH-hozzáférés konfigurálása csomópontok között

A jelszó nélküli SSH-hozzáférés lehetővé teszi, hogy a virtuális gépek SSH nyilvános kulcsokkal kommunikáljanak egymással. Minden csomóponton konfigurálnia kell az SSH-kulcsokat, és ezeket a kulcsokat minden csomópontra át kell másolnia.

Új SSH-kulcsok létrehozása

A szükséges SSH-kulcsméret 4096 bit. Minden virtuális gépen váltson a /root/.ssh mappára, és futtassa a következő parancsot:

ssh-keygen -t rsa -b 4096

Ebben a lépésben előfordulhat, hogy a rendszer egy meglévő SSH-fájl felülírását kéri. El kell fogadnia ezt a kérést. Nem kell jelszót megadnia.

A nyilvános SSH-kulcsok másolása

Minden virtuális gépen át kell másolnia a nyilvános kulcsot az imént létrehozott csomópontról a ssh-copy-id parancs használatával. Ha meg szeretné adni a célkönyvtárat a cél virtuális gépen, használhatja a paramétert -i .

Az alábbi parancsban a <username> fiók lehet ugyanaz a fiók, amely az egyes csomópontokhoz konfigurálva van a virtuális gép létrehozásakor. Használhatja a root fiókot is, de éles környezetben ez nem ajánlott.

sudo ssh-copy-id <username>@sles1
sudo ssh-copy-id <username>@sles2
sudo ssh-copy-id <username>@sles3

Jelszó nélküli hozzáférés ellenőrzése minden csomópontról

Annak ellenőrzéséhez, hogy az SSH nyilvános kulcsát minden csomópontra másolta-e, használja az ssh egyes csomópontok parancsát. Ha helyesen másolta a kulcsokat, a rendszer nem kéri a jelszót, és a kapcsolat sikeres lesz.

Ebben a példában a második és a harmadik csomóponthoz csatlakozunk az első virtuális gépről (sles1). A fiók ismét <username> ugyanaz lehet, mint a virtuális gép létrehozásakor az egyes csomópontokhoz konfigurált fiók

ssh <username>@sles2
ssh <username>@sles3

Ismételje meg ezt a folyamatot mindhárom csomópontról, hogy az egyes csomópontok jelszavak nélkül kommunikálhassanak a többiekkel.

Névfeloldás konfigurálása

A névfeloldás a DNS használatával vagy az etc/hosts egyes csomópontokon lévő fájl manuális szerkesztésével konfigurálható.

További információ a DNS-ről és az Active Directoryról: Csatlakozás AZ SQL Serverhez Linux-gazdagépen egy Active Directory-tartományhoz.

Fontos

Javasoljuk, hogy az előző példában használja a magánhálózati IP-címét . Ha ebben a konfigurációban a nyilvános IP-címet használja, a beállítás meghiúsul, és a virtuális gépet külső hálózatoknak teszi elérhetővé.

A példában használt virtuális gépek és IP-címük a következőképpen jelennek meg:

  • sles1: 10.0.0.85
  • sles2: 10.0.0.86
  • sles3: 10.0.0.87

A fürt konfigurálása

Ebben az oktatóanyagban az első virtuális gép (sles1) az 1. csomópont, a második virtuális gép (sles2) a 2. csomópont, a harmadik virtuális gép pedigsles3 a 3. csomópont. A fürt telepítésével kapcsolatos további információkért lásd: Pacemaker beállítása SU Standard kiadás Linux Enterprise Serveren az Azure-ban.

Fürt telepítése

  1. Futtassa a következő parancsot a ha-cluster-bootstrap csomag 1. csomóponton való telepítéséhez, majd indítsa újra a csomópontot. Ebben a példában ez a sles1 virtuális gép.

    sudo zypper install ha-cluster-bootstrap
    

    A csomópont újraindítása után futtassa a következő parancsot a fürt üzembe helyezéséhez:

    sudo crm cluster init --name sqlcluster
    

    A következő példához hasonló kimenet jelenik meg:

    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)
    
  2. Ellenőrizze a fürt állapotát az 1. csomóponton az alábbi paranccsal:

    sudo crm status
    

    A kimenetnek a következő szöveget kell tartalmaznia, ha sikeres volt:

    1 node configured
    1 resource instance configured
    
  3. Minden csomóponton módosítsa a jelszót egy biztonságosabb jelszóra hacluster az alábbi paranccsal. A felhasználói jelszót is módosítania root kell:

    sudo passwd hacluster
    
    sudo passwd root
    
  4. Futtassa a következő parancsot a 2. és a 3. csomóponton a crmshcsomag első telepítéséhez:

    sudo zypper install crmsh
    

    Most futtassa a parancsot a fürthöz való csatlakozáshoz:

    sudo crm cluster join
    

    Íme néhány a várható interakciók közül:

    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)
    
  5. Miután csatlakozott az összes géphez a fürthöz, ellenőrizze az erőforrást, hogy az összes virtuális gép online állapotban van-e:

    sudo crm status
    

    A következő kimenetnek kell megjelennie:

    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
    
  6. Telepítse a fürterőforrás-összetevőt. Futtassa az alábbi parancsot az összes csomóponton.

    sudo zypper in socat
    
  7. Telepítse az összetevőt azure-lb . Futtassa az alábbi parancsot az összes csomóponton.

    sudo zypper in resource-agents
    
  8. Konfigurálja az operációs rendszert. Hajtsa végre az alábbi lépéseket az összes csomóponton.

    1. A konfigurációs fájl szerkesztése:

      sudo vi /etc/systemd/system.conf
      
    2. Módosítsa az értéket a DefaultTasksMax következőre 4096:

      #DefaultTasksMax=512
      DefaultTasksMax=4096
      
    3. Mentse és lépjen ki a vi szerkesztőből .

    4. A beállítás aktiválásához futtassa a következő parancsot:

      sudo systemctl daemon-reload
      
    5. Ellenőrizze, hogy a módosítás sikeres volt-e:

      sudo systemctl --no-pager show | grep DefaultTasksMax
      
  9. Csökkentse a piszkos gyorsítótár méretét. Hajtsa végre az alábbi lépéseket az összes csomóponton.

    1. A rendszervezérlő konfigurációs fájljának szerkesztése:

      sudo vi /etc/sysctl.conf
      
    2. Adja hozzá a következő két sort a fájlhoz:

      vm.dirty_bytes = 629145600
      vm.dirty_background_bytes = 314572800
      
    3. Mentse és lépjen ki a vi szerkesztőből .

  10. Telepítse az Azure Python SDK-t az összes csomópontra a következő parancsokkal:

    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
    

Kerítésügynök konfigurálása

A STONITH-eszközök egy kerítésügynököt biztosítanak. Az oktatóanyaghoz az alábbi utasítások módosulnak. További információ: Create an Azure fence agent STONITH device.

Ellenőrizze az Azure kerítésügynök verzióját, hogy biztosan frissüljön. Használja az alábbi parancsot:

sudo zypper info resource-agents

Az alábbi példához hasonló kimenetnek kell megjelennie.

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.

Új alkalmazás regisztrálása a Microsoft Entra-azonosítóban

Ha új alkalmazást szeretne regisztrálni a Microsoft Entra ID-ban (korábbi nevén Azure Active Directory), kövesse az alábbi lépéseket:

  1. Odamegy https://portal.azure.com.
  2. Nyissa meg a Microsoft Entra ID Properties panelt , és írja le a Tenant ID.
  3. Select App registrations.
  4. Új regisztráció kiválasztása.
  5. Adjon meg egy nevet , például <resourceGroupName>-app. A támogatott fióktípusok esetében válassza a Csak ebben a szervezeti címtárban található Fiókok lehetőséget (csak Microsoft – Egyetlen bérlő).
  6. Válassza a Web for Redirect URI lehetőséget, és adjon meg egy URL-címet (például, http://localhost) és válassza a Hozzáadás lehetőséget. A bejelentkezési URL-cím bármilyen érvényes URL-cím lehet. Miután elkészült, válassza a Regisztráció lehetőséget.
  7. Válassza az új alkalmazásregisztráció tanúsítványait és titkos kulcsait , majd válassza az Új ügyfélkód lehetőséget.
  8. Írja be az új kulcs (titkos ügyfélkulcs) leírását, majd válassza a Hozzáadás lehetőséget.
  9. Írja le a titkos kód értékét. Ez a szolgáltatásnév jelszava.
  10. Válassza az Áttekintés lehetőséget. Írja le az alkalmazásazonosítót. A rendszer a szolgáltatásnév felhasználóneveként (az alábbi lépésekben szereplő bejelentkezési azonosítóként) használja.

Egyéni szerepkör létrehozása a kerítésügynökhöz

Kövesse az oktatóanyagot egy Egyéni Azure-szerepkör Azure CLI-vel való létrehozásához.

A JSON-fájlnak az alábbi példához hasonlóan kell kinéznie.

  • Cserélje le <username> a kívánt névre. Ez a szerepkördefiníció létrehozásakor elkerüli a duplikációt.
  • Cserélje le <subscriptionId> az Azure-előfizetés azonosítóját.
{
  "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>"
  ]
}

A szerepkör hozzáadásához futtassa a következő parancsot:

  • Cserélje le <filename> a fájl nevére.
  • Ha a parancsot a fájl által mentett mappától eltérő elérési útról hajtja végre, adja meg a fájl elérési útját a parancsban.
az role definition create --role-definition "<filename>.json"

A következő kimenetnek kell megjelennie:

{
  "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"
}

Az egyéni szerepkör hozzárendelése a szolgáltatásnévhez

Rendelje hozzá az utolsó lépésben létrehozott egyéni szerepkört Linux Fence Agent Role-<username> a szolgáltatásnévhez. Ismételje meg ezeket a lépéseket az összes csomópont esetében.

Figyelmeztetés

Innentől kezdve ne használja a Tulajdonos szerepkört.

  1. Go to https://portal.azure.com
  2. A Minden erőforrás panel megnyitása
  3. Válassza ki az első fürtcsomópont virtuális gépét
  4. Válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
  5. Válassza a Szerepkör-hozzárendelések hozzáadása lehetőséget
  6. Válassza ki a szerepkört Linux Fence Agent Role-<username> a szerepkörök listájából
  7. Hagyja meg a hozzáférés hozzárendelését alapértelmezettként Users, group, or service principal.
  8. A Kiválasztás listában adja meg például a korábban <resourceGroupName>-applétrehozott alkalmazás nevét.
  9. Válassza a Mentés parancsot.

A STONITH-eszközök létrehozása

  1. Futtassa a következő parancsokat az 1. csomóponton:

    • Cserélje le az <ApplicationID> alkalmazásregisztráció azonosítóértékére.
    • Cserélje le az <servicePrincipalPassword> ügyfél titkos kódjának értékét.
    • Cserélje le az <resourceGroupName> oktatóanyaghoz használt előfizetés erőforráscsoportját.
    • Cserélje le az <tenantID> Azure-előfizetését és az <subscriptionId> abból származót.
  2. Futtassa crm configure a crm-parancssor megnyitásához:

    sudo crm configure
    
  3. A crm parancssorban futtassa a következő parancsot az erőforrás tulajdonságainak konfigurálásához, amely létrehozza az erőforrást rsc_st_azure az alábbi példában látható módon:

    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
    
  4. Futtassa a következő parancsokat a kerítésügynök konfigurálásához:

    sudo crm configure property stonith-timeout=900
    sudo crm configure property stonith-enabled=true
    sudo crm configure property concurrent-fencing=true
    
  5. Ellenőrizze a fürt állapotát, hogy a STONITH engedélyezve van-e:

    sudo crm status
    

    A következő szöveghez hasonló kimenetnek kell megjelennie:

    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
    

Az SQL Server és az mssql-tools telepítése

Az alábbi szakaszban telepítheti az SQL Servert és az mssql-toolst. További információ: SQL Server telepítése SU Standard kiadás Linux Enterprise Serveren.

Hajtsa végre ezeket a lépéseket a szakasz összes csomópontján .

Az SQL Server telepítése a virtuális gépekre

Az SQL Server telepítéséhez a következő parancsok használhatók:

  1. Töltse le a Microsoft SQL Server 2019 SLES-adattár konfigurációs fájlját:

    sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/mssql-server-2022.repo
    
  2. Frissítse az adattárakat.

    sudo zypper --gpg-auto-import-keys refresh
    

    Annak érdekében, hogy a Microsoft csomagaláíró kulcs telepítve legyen a rendszeren, a következő paranccsal importálja a kulcsot:

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
  3. Futtassa a következő parancsokat az SQL Server telepítéséhez:

    sudo zypper install -y mssql-server
    
  4. Miután a csomag telepítése befejeződött, futtassa mssql-conf setup és kövesse az utasításokat az SA jelszavának beállításához, és válassza ki a kiadást.

    sudo /opt/mssql/bin/mssql-conf setup
    

    Megjegyzés:

    Győződjön meg arról, hogy erős jelszót ad meg az SA-fiókhoz (legalább 8 karakter hosszú, beleértve a nagybetűket és kisbetűket, az alap 10 számjegyet és/vagy a nem alfanumerikus szimbólumokat).

  5. A konfiguráció befejezése után ellenőrizze, hogy a szolgáltatás fut-e:

    systemctl status mssql-server
    

AZ SQL Server parancssori eszközeinek telepítése

Az alábbi lépésekben telepítse az SQL Server parancssori eszközeit, nevezetesen az sqlcmd és a bcp eszközt.

  1. Adja hozzá a Microsoft SQL Server-adattárat a Zypperhez.

    sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/prod.repo
    
  2. Frissítse az adattárakat.

    sudo zypper --gpg-auto-import-keys refresh
    
  3. Telepítse az mssql-toolst a unixODBC fejlesztői csomaggal. További információ: Az SQL Serverhez (Linux) készült Microsoft ODBC-illesztőprogram telepítése.

    sudo zypper install -y mssql-tools unixODBC-devel
    

A kényelem érdekében hozzáadhatja /opt/mssql-tools/bin/ a környezeti változót PATH . Ez lehetővé teszi az eszközök futtatását a teljes elérési út megadása nélkül. A következő parancsok futtatásával módosítsa a PATH értékeit a bejelentkezési munkamenetek és az interaktív/nem bejelentkezési munkamenetekre vonatkozóan egyaránt:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

Az SQL Server magas rendelkezésre állású ügynökének telepítése

Futtassa az alábbi parancsot az összes csomóponton az SQL Server magas rendelkezésre állású ügynökcsomagjának telepítéséhez:

sudo zypper install mssql-server-ha

Portok megnyitása magas rendelkezésre állású szolgáltatásokhoz

  1. Az SQL Server és a HA-szolgáltatások összes csomópontján megnyithatja a következő tűzfalportokat: 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
    

Rendelkezésre állási csoport konfigurálása

Az alábbi lépésekkel konfigurálhat egy SQL Server Always On rendelkezésre állási csoportot a virtuális gépekhez. További információ: Sql Server Always On rendelkezésre állási csoportok konfigurálása magas rendelkezésre álláshoz Linuxon

Rendelkezésre állási csoportok engedélyezése és az SQL Server újraindítása

Engedélyezze a rendelkezésre állási csoportokat minden olyan csomóponton, amely SQL Server-példányt üzemeltet. Ezután indítsa újra a mssql-server szolgáltatást. Futtassa az alábbi parancsokat minden csomóponton:

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server

Tanúsítvány létrehozása

A Microsoft nem támogatja az Active Directory-hitelesítést az AG-végponton. Ezért az AG-végpont titkosításához tanúsítványt kell használnia.

  1. Csatlakozás az összes csomóponthoz az SQL Server Management Studio (SSMS) vagy az sqlcmd használatával. Futtassa a következő parancsokat egy AlwaysOn_health munkamenet engedélyezéséhez és egy főkulcs létrehozásához:

    Fontos

    Ha távolról csatlakozik az SQL Server-példányhoz, meg kell nyitnia az 1433-at a tűzfalon. Emellett engedélyeznie kell a bejövő kapcsolatokat az 1433-at az NSG-ben minden egyes virtuális géphez. További információ: Biztonsági szabály létrehozása bejövő biztonsági szabály létrehozásához.

    • Cserélje le a <MasterKeyPassword> jelszót a saját jelszavára.
    ALTER EVENT SESSION AlwaysOn_health ON SERVER
        WITH (STARTUP_STATE = ON);
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<MasterKeyPassword>';
    GO
    
  2. Csatlakozás az elsődleges replikához SSMS vagy sqlcmd használatával. Az alábbi parancsok létrehoznak egy tanúsítványt /var/opt/mssql/data/dbm_certificate.cer és egy titkos kulcsot var/opt/mssql/data/dbm_certificate.pvk az elsődleges SQL Server-replikán:

    • Cserélje le a <PrivateKeyPassword> jelszót a saját jelszavára.
    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
    

A parancs futtatásával lépjen ki az exit sqlcmd munkamenetből, és térjen vissza az SSH-munkamenethez.

Másolja a tanúsítványt a másodlagos replikákra, és hozza létre a tanúsítványokat a kiszolgálón

  1. Másolja a két létrehozott fájlt ugyanarra a helyre az összes olyan kiszolgálón, amely rendelkezésre állási replikákat fog üzemeltetni.

    Az elsődleges kiszolgálón futtassa a következő scp parancsot a tanúsítvány célkiszolgálókra másolásához:

    • Cserélje le és sles2 írja be <username> a használt felhasználónevet és cél virtuális gép nevét.
    • Futtassa ezt a parancsot az összes másodlagos replikához.

    Megjegyzés:

    Nem kell futtatnia sudo -i, ami megadja a gyökérkörnyezetet. A parancsot az sudo egyes parancsok előtt futtathatja.

    # 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>
    
  2. Futtassa a következő parancsot a célkiszolgálón:

    • Cserélje le <username> a felhasználónevet.
    • A mv parancs áthelyezi a fájlokat vagy könyvtárat egyik helyről a másikra.
    • A chown parancs a fájlok, könyvtárak vagy hivatkozások tulajdonosának és csoportjának módosítására szolgál.
    • Futtassa ezeket a parancsokat az összes másodlagos replikához.
    sudo -i
    mv /home/<username>/dbm_certificate.* /var/opt/mssql/data/
    cd /var/opt/mssql/data
    chown mssql:mssql dbm_certificate.*
    
  3. Az alábbi Transact-SQL-szkript létrehoz egy tanúsítványt az elsődleges SQL Server-replikán létrehozott biztonsági másolatból. Frissítse a szkriptet erős jelszavakkal. A visszafejtési jelszó ugyanaz a jelszó, amelyet az előző lépésben a .pvk fájl létrehozásához használt. A tanúsítvány létrehozásához futtassa a következő szkriptet az sqlcmd vagy az SSMS használatával az összes másodlagos kiszolgálón:

    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
    

Az adatbázis tükrözési végpontjának létrehozása az összes replikán

Futtassa a következő szkriptet minden SQL Server-példányon sqlcmd vagy SSMS használatával:

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

A rendelkezésre állási csoport létrehozása

Csatlakozás az elsődleges replikát sqlcmd vagy SSMS használatával üzemeltető SQL Server-példányra. Futtassa a következő parancsot a rendelkezésre állási csoport létrehozásához:

  • Cserélje le ag1 a kívánt AG-névre.
  • Cserélje le a sles1, sles2és sles3 az értékeket a replikákat üzemeltető SQL Server-példányok nevére.
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

SQL Server-bejelentkezés létrehozása a Pacemakerhez

Minden SQL Server-példányon hozzon létre egy SQL Server-bejelentkezést a Pacemakerhez. Az alábbi Transact-SQL létrehoz egy bejelentkezést.

  • Cserélje le <password> saját összetett jelszavára.
USE [master]
GO

CREATE LOGIN [pacemakerLogin]
    WITH PASSWORD = N'<password>';
GO

ALTER SERVER ROLE [sysadmin]
    ADD MEMBER [pacemakerLogin];
GO

Minden SQL Server-példányon mentse az SQL Server-bejelentkezéshez használt hitelesítő adatokat.

  1. Hozza létre a fájlt:

    sudo vi /var/opt/mssql/secrets/passwd
    
  2. Adja hozzá a következő két sort a fájlhoz:

    pacemakerLogin
    <password>
    

    A vi szerkesztőből való kilépéshez először nyomja le az Esc billentyűt, majd írja be a parancsot :wq a fájl megírásához és a kilépéshez.

  3. A fájl csak a gyökér alapján legyen olvasható:

    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 400 /var/opt/mssql/secrets/passwd
    

Másodlagos replikák csatlakoztatása a rendelkezésre állási csoporthoz

  1. A másodlagos replikákon futtassa a következő parancsokat az AG-hez való csatlakozáshoz:

    ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
    GO
    
    ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
    GO
    
  2. Futtassa a következő Transact-SQL-szkriptet az elsődleges replikán és minden másodlagos replikán:

    GRANT ALTER, CONTROL, VIEW DEFINITION
        ON AVAILABILITY GROUP::ag1 TO pacemakerLogin;
    GO
    
    GRANT VIEW SERVER STATE TO pacemakerLogin;
    GO
    
  3. A másodlagos replikák csatlakoztatása után az Always On High Availability csomópont kibontásával láthatja őket az SSMS Object Explorerben:

    Screenshot shows the primary and secondary availability replicas.

Adatbázis hozzáadása a rendelkezésre állási csoporthoz

Ez a szakasz az adatbázis rendelkezésre állási csoporthoz való hozzáadásáról szóló cikket követi.

Ebben a lépésben a következő Transact-SQL-parancsokat használja a rendszer. Futtassa az alábbi parancsokat az elsődleges replikán:

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

Ellenőrizze, hogy az adatbázis a másodlagos kiszolgálókon van-e létrehozva

Minden másodlagos SQL Server-replikán futtassa a következő lekérdezést annak megtekintéséhez, hogy a db1 adatbázis létrejött-e, és SZINKRONIZÁLT állapotban van-e:

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

Ha a synchronization_state_desc listák szinkronizálva db1vannak, az azt jelenti, hogy a replikák szinkronizálva vannak. A másodpéldányok az elsődleges replikában jelennek meg db1 .

Rendelkezésre állási csoport erőforrásainak létrehozása a Pacemaker-fürtben

Megjegyzés:

Torzításmentes kommunikáció

Ez a cikk a rabszolga kifejezésre mutató hivatkozásokat tartalmaz, amely a Microsoft által sértőnek ítélt kifejezés, ha ebben a kontextusban használják. A kifejezés azért jelenik meg ebben a cikkben, mert jelenleg a szoftverben jelenik meg. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk a cikkből.

Ez a cikk az útmutatóra hivatkozik a rendelkezésre állási csoport erőforrásainak pacemaker-fürtökben való létrehozásához.

Pacemaker engedélyezése

Engedélyezze a Pacemakert, hogy automatikusan elindulhasson.

Futtassa a következő parancsot a fürt összes csomópontján .

sudo systemctl enable pacemaker

Az AG-fürterőforrás létrehozása

  1. Futtassa crm configure a crm-parancssor megnyitásához:

    sudo crm configure
    
  2. A crm-parancssorban futtassa az alábbi parancsot az erőforrás tulajdonságainak konfigurálásához. Az alábbi parancsok létrehozzák az erőforrást ag_cluster a rendelkezésre állási csoportban ag1.

    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
    

    Tipp.

    Írja be quit a crm-parancssorból való kilépéshez.

  3. Állítsa be a virtuális IP-cím társhelyre vonatkozó korlátozását, hogy az ugyanazon a csomóponton fusson, mint az elsődleges csomópont:

    sudo crm configure
    colocation vip_on_master inf: admin-ip ms-ag_cluster: Master
    commit
    quit
    
  4. Adja hozzá a rendelési kényszert, hogy megakadályozza, hogy az IP-cím ideiglenesen a csomópontra mutasson a feladatátvétel előtti másodlagossal. A rendezési kényszer létrehozásához futtassa a következő parancsot:

    sudo crm configure
    order ag_first inf: ms-ag_cluster:promote admin-ip:start
    commit
    quit
    
  5. Ellenőrizze a fürt állapotát a következő paranccsal:

    sudo crm status
    

    A kimenetnek az alábbi példához hasonlónak kell lennie:

    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 ]
    
  6. Futtassa a következő parancsot a korlátozások áttekintéséhez:

    sudo crm configure show
    

    A kimenetnek az alábbi példához hasonlónak kell lennie:

    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
    

Feladatátvétel tesztelése

A konfiguráció eddigi sikerességének biztosításához tesztelje a feladatátvételt. További információ: Always On rendelkezésre állási csoport feladatátvétele Linux rendszeren.

  1. Futtassa a következő parancsot az elsődleges replika manuális feladatátvételéhez sles2. Cserélje le sles2 a kiszolgálónév értékére.

    sudo crm resource move ag_cluster sles2
    

    A kimenetnek az alábbi példához hasonlónak kell lennie:

    INFO: Move constraint created for ms-ag_cluster to sles2
    INFO: Use `crm resource clear ms-ag_cluster` to remove this constraint
    
  2. Ellenőrizze a fürt állapotát:

    sudo crm status
    

    A kimenetnek az alábbi példához hasonlónak kell lennie:

    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 ]
    
  3. Egy idő után a sles2 virtuális gép lesz az elsődleges, a másik két virtuális gép pedig másodfokú. Futtassa sudo crm status újra, és tekintse át a kimenetet, amely az alábbi példához hasonló:

    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 ]
    
  4. Ellenőrizze újra a korlátozásokat a következő használatával crm config show: . Figyelje meg, hogy a manuális feladatátvétel miatt egy másik korlátozás lett hozzáadva.

  5. Távolítsa el a kényszert azonosítóval cli-prefer-ag_clustera következő paranccsal:

    crm configure
    delete cli-prefer-ms-ag_cluster
    commit
    

Kerítés tesztelése

A STONITH teszteléséhez futtassa a következő parancsot. Próbálja meg futtatni az alábbi parancsot a következőhöz sles1sles3: .

sudo crm node fence sles3

Következő lépés