Oktatóanyag: Rendelkezésre állási csoportok konfigurálása SQL Server rhEL virtuális gépeken az Azure-ban

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

Megjegyzés

Ebben az oktatóanyagban a SQL Server 2017-et az RHEL 7.6-os verziójával használjuk, de a magas rendelkezésre állás konfigurálásához használhatja SQL Server 2019-et az RHEL 7-ben vagy az RHEL 8-ban. A pacemake-fürt és a rendelkezésre állási csoport erőforrásainak konfigurálására szolgáló parancsok megváltoztak az RHEL 8-ban, és a megfelelő parancsokkal kapcsolatos további információkért tekintse meg a rendelkezésreállási csoport erőforrásának és RHEL 8-erőforrásoknak a létrehozását ismertető cikket.

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

  • Új erőforráscsoport, rendelkezésre állási csoport és Linux rendszerű virtuális gépek (VM-ek) létrehozása
  • Magas rendelkezésre állás (HA) engedélyezése
  • Pacemaker-fürt létrehozása
  • Kerítésügynök konfigurálása STONITH-eszköz létrehozásával
  • A SQL Server és az mssql-tools telepítése RHEL-re
  • 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 fogja üzembe helyezni 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

  • Ehhez a cikkhez az Azure CLI 2.0.30-s vagy újabb verziója szükséges. 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éssel rendelkezik, á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> a elemet egy ön által választott névre. Ezt az oktatóanyagot használjuk East US 2 . További információt az alábbi rövid útmutatóban talál.

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 Shell-ban, és cserélje le <resourceGroupName> a elemet 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": []
}

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

Figyelmeztetés

Ha használatalapú fizetéses (PAYG) RHEL-rendszerképet választ, és magas rendelkezésre állást (HA) konfigurál, előfordulhat, hogy regisztrálnia kell az előfizetését. Emiatt kétszer kell fizetnie az előfizetésért, mivel a virtuális gép Microsoft Azure RHEL-előfizetéséért és a Red Hat-előfizetésért kell fizetnie. További információ: https://access.redhat.com/solutions/2458541.

A "kettős számlázás" elkerülése érdekében használjon RHEL HA-rendszerképet az Azure-beli virtuális gép létrehozásakor. A RHEL-HA-rendszerképekként kínált képek szintén PAYG-képek, amelyeken előre engedélyezve van a HA-adattár.

  1. Az RHEL-t magas rendelkezésre állást biztosító virtuálisgép-rendszerképek listájának lekérése:

    az vm image list --all --offer "RHEL-HA"
    

    A következő eredményeknek kell megjelennie:

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

    Ebben az oktatóanyagban az RHEL 7-példa rendszerképét RedHat:RHEL-HA:7.6:7.6.2019062019 választjuk, és az RHEL 8-példát választjuk RedHat:RHEL-HA:8.1:8.1.2020021914 .

    Az RHEL8-HA-rendszerképekre előre telepített SQL Server 2019-et is választhatja. A rendszerképek listájának lekéréséhez futtassa a következő parancsot:

    az vm image list --all --offer "sql2019-rhel8"
    

    A következő eredményeknek kell megjelennie:

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

    Ha a fenti rendszerképek egyikével hozza létre a virtuális gépeket, az előre telepített SQL Server 2019-et. Hagyja ki a jelen cikkben ismertetett SQL Server és mssql-tools telepítése szakaszt.

    Fontos

    A rendelkezésre állási csoport beállításához a gépneveknek 15 karakternél rövidebbnek kell lenniük. A felhasználónév nem tartalmazhat nagybetűket, és a jelszavaknak 12 karakternél hosszabbnak kell lenniük.

  2. 3 virtuális gépet szeretnénk létrehozni a rendelkezésre állási csoportban. Cserélje le a következőt az alábbi parancsra:

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

A fenti parancs létrehozza a virtuális gépeket, és létrehoz egy alapértelmezett virtuális hálózatot ezekhez a virtuális gépekhez. A különböző konfigurációkkal kapcsolatos további információkért tekintse meg az az vm create (az vm create ) cikket.

Az alábbihoz hasonló eredményeket kell kapnia, ha a parancs befejeződik az egyes virtuális gépeken:

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

Fontos

A fenti paranccsal létrehozott alapértelmezett rendszerkép alapértelmezés szerint egy 32 GB-os operációsrendszer-lemezt hoz létre. Ezzel az alapértelmezett telepítéssel valószínűleg elfogyhat a szabad terület. A fenti az vm create parancshoz hozzáadott alábbi paraméterrel például létrehozhat egy 128 GB-os operációsrendszer-lemezt: --os-disk-size-gb 128.

Ezután konfigurálhatja a Logikai kötetkezelőt (LVM), ha ki kell bontania a megfelelő mappaköteteket a telepítéshez.

A létrehozott virtuális gépekkel létesített kapcsolat tesztelése

Csatlakozzon a VM1-hez vagy a többi virtuális géphez az Azure Cloud Shell következő parancsával. Ha nem találja a virtuálisgép-IP-címeket, kövesse ezt a rövid útmutatót az Azure Cloud Shell.

ssh <username>@publicipaddress

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

[<username>@<VM1> ~]$

Írja be a parancsot exit az SSH-munkamenetből való kilépéshez.

Magas rendelkezésre állás engedélyezése

Fontos

Az oktatóanyag ezen részének elvégzéséhez rendelkeznie kell az RHEL-előfizetéssel és a magas rendelkezésre állású bővítményrel. Ha az előző szakaszban ajánlott rendszerképet használ, nem kell újabb előfizetést regisztrálnia.

Csatlakozzon az egyes virtuálisgép-csomópontokhoz, és kövesse az alábbi útmutatót a magas rendelkezésre állást engedélyező szolgáltatás engedélyezéséhez. További információ: Magas rendelkezésre állású előfizetés engedélyezése a RHEL-hez.

Tipp

Egyszerűbb lesz, ha egy SSH-munkamenetet egyszerre nyit meg az egyes virtuális gépeken, mivel a cikk minden 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 fognak futni. Futtassa az egyes parancsokat külön-külön.

  1. Futtassa a következő parancsokat minden virtuális gépen a Pacemaker tűzfalportok megnyitásához:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    
  2. Frissítse és telepítse a Pacemaker-csomagokat az összes csomóponton az alábbi parancsokkal:

    Megjegyzés

    Az nmap a parancsblokk részeként települ eszközként a hálózaton elérhető IP-címek megkereséséhez. Nem kell telepítenie az nmap-ot, de ez az oktatóanyag későbbi részében hasznos lesz.

    sudo yum update -y
    sudo yum install -y pacemaker pcs fence-agents-all resource-agents fence-agents-azure-arm nmap
    sudo reboot
    
  3. Állítsa be a Pacemaker-csomagok telepítésekor létrehozott alapértelmezett felhasználó jelszavát. Használja ugyanazt a jelszót az összes csomóponton.

    sudo passwd hacluster
    
  4. Az alábbi paranccsal nyissa meg a gazdagépfájlt, és állítsa be a gazdagépnév feloldását. További információ: A rendelkezésreállási csoport konfigurálása a gazdagépfájl konfigurálásához.

    sudo vi /etc/hosts
    

    A vi szerkesztőben írja be i a szöveget, és egy üres sorba adja hozzá a megfelelő virtuális gép magánhálózati IP-címét . Ezután adja hozzá a virtuális gép nevét az IP-cím melletti szóköz után. Minden sornak külön bejegyzéssel kell rendelkeznie.

    <IP1> <VM1>
    <IP2> <VM2>
    <IP3> <VM3>
    

    Fontos

    Javasoljuk, hogy a fenti magánhálózati IP-címet használja. Ha a nyilvános IP-címet használja ebben a konfigurációban, a telepítés sikertelen lesz, és nem javasoljuk, hogy a virtuális gépet külső hálózatokon tegye közzé.

    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 írásához és a kilépéshez.

A Pacemaker-fürt létrehozása

Ebben a szakaszban engedélyezzük és elindítjuk a pcsd szolgáltatást, majd konfiguráljuk a fürtöt. A SQL Server on Linux esetében a fürterőforrások nem jönnek létre automatikusan. Manuálisan kell engedélyezni és létrehozni a pacemaker-erőforrásokat. További információ: Feladatátvevőfürt-példány konfigurálása RHEL-hez

A pcsd szolgáltatás és a Pacemaker engedélyezése és elindítása

  1. Futtassa a parancsokat az összes csomóponton. Ezek a parancsok lehetővé teszik, hogy a csomópontok újra csatlakozhassanak a fürthöz az újraindítás után.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  2. Távolítsa el a meglévő fürtkonfigurációkat az összes csomópontról. Futtassa az alábbi parancsot:

    sudo pcs cluster destroy 
    sudo systemctl enable pacemaker 
    
  3. Az elsődleges csomóponton futtassa a következő parancsokat a fürt beállításához.

    • A fürtcsomópontok hitelesítésére szolgáló parancs futtatásakor pcs cluster auth a rendszer jelszót kér. Adja meg a korábban létrehozott hacluster-felhasználó jelszavát.

    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

    Az RHEL 8 esetében külön kell hitelesítenie a csomópontokat. Amikor a rendszer kéri, adja meg manuálisan a hacluster felhasználónevét és jelszavát.

    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
    
  4. Futtassa a következő parancsot annak ellenőrzéséhez, hogy az összes csomópont online állapotban van-e.

    sudo pcs status
    

    RHEL 7

    Ha az összes csomópont online állapotban van, az alábbihoz hasonló kimenet jelenik meg:

    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
    
    
  5. Állítsa a várt szavazatokat az élő fürtben 3-ra. Ez a parancs csak az élő fürtöt érinti, és nem módosítja a konfigurációs fájlokat.

    Az összes csomóponton állítsa be a várt szavazatokat a következő paranccsal:

    sudo pcs quorum expected-votes 3
    

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

A STONITH-eszközök kerítésügynököt biztosítanak. Az alábbi utasítások ebben az oktatóanyagban módosulnak. További információ: STONITH-eszköz létrehozása.

Ellenőrizze az Azure Fence Agent verzióját, és győződjön meg arról, hogy frissült. Használja az alábbi parancsot:

sudo yum info fence-agents-azure-arm

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

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.

Új alkalmazás regisztrálása az Azure Active Directoryban

  1. Nyissa meg a következőt: https://portal.azure.com
  2. Nyissa meg az Azure Active Directory panelt. Lépjen a Tulajdonságok lapra, és írja le a címtár-azonosítót. Ez a tenant ID
  3. Kattintson a Alkalmazásregisztrációk
  4. Kattintson az Új regisztráció elemre
  5. Adjon meg egy nevet a következőhöz: <resourceGroupName>-app, válassza a Csak ebben a szervezeti címtárban lévő fiókok lehetőséget
  6. Válassza az Alkalmazástípus web lehetőséget, adjon meg egy bejelentkezési URL-címet (például http://localhost) , és kattintson a Hozzáadás gombra. A bejelentkezési URL-cím nem használható, és bármilyen érvényes URL-cím lehet. Ha végzett, kattintson a Regisztráció gombra.
  7. Válassza a Tanúsítványok és titkos kódok lehetőséget az új alkalmazásregisztrációhoz, majd kattintson az Új titkos ügyfélkód elemre.
  8. Adjon meg egy új kulcsot (titkos ügyfélkulcsot), válassza a Soha nem jár le lehetőséget, majd kattintson a Hozzáadás gombra.
  9. Írja le a titkos kód értékét. A szolgáltatásnév jelszavaként használják
  10. Válassza az Áttekintés lehetőséget. Írja le az alkalmazásazonosítót. A szolgáltatásnév felhasználóneveként (bejelentkezési azonosítóként az alábbi lépésekben) használatos

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

Kövesse az Egyéni Azure-szerepkör létrehozása az Azure CLI-vel című oktatóanyagot.

A json-fájlnak az alábbihoz hasonlóan kell kinéznie:

  • Cserélje le <username> a elemet egy tetszőleges névre. Ennek célja, hogy elkerülje a duplikációt a szerepkör-definíció létrehozásakor.
  • Cserélje le a elemet <subscriptionId> az Azure-előfizetés azonosítójával.
{
  "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 elemet a fájl nevére.
  • Ha a parancsot a fájl mentési mappájá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. Ne használja többé a Tulajdonos szerepkört!

  1. Nyissa meg a következőt: 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. Kattintson a Hozzáférés-vezérlés (IAM) elemre
  5. Kattintson a Szerepkör-hozzárendelés hozzáadása elemre
  6. Válassza ki a szerepkört Linux Fence Agent Role-<username> a Szerepkör listából
  7. A Kiválasztás listában adja meg a fent létrehozott alkalmazás nevét. <resourceGroupName>-app
  8. Kattintson a Mentés gombra.
  9. Ismételje meg a fenti lépéseket az összes fürtcsomópont esetében.

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

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

  • Cserélje le a értéket <ApplicationID> az alkalmazásregisztráció azonosítóértékére.
  • Cserélje le a értéket <servicePrincipalPassword> a titkos ügyfélkód értékére.
  • Cserélje le a <resourceGroupName> elemet az oktatóanyaghoz használt előfizetése erőforráscsoportjára.
  • Cserélje le a és a <tenantID><subscriptionId> értékét az Azure-előfizetésből.
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

Mivel már hozzáadtunk egy szabályt a tűzfalhoz a HA szolgáltatás engedélyezéséhez (--add-service=high-availability), nem kell megnyitnia a következő tűzfalportokat az összes csomóponton: 2224, 3121, 21064, 5405. Ha azonban bármilyen kapcsolati problémát tapasztal a magas rendelkezésre állást érintően, az alábbi paranccsal nyissa meg a magas rendelkezésre állást használó portokat.

Tipp

Az oktatóanyagban szereplő összes portot egyszerre is hozzáadhatja, hogy időt takarítson meg. A megnyitni kívánt portokat az alábbi relatív szakaszok ismertetik. Ha most szeretné hozzáadni az összes portot, adja hozzá a további portokat: 1433 és 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

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

Megjegyzés

Ha az RHEL8-HA-n előre telepített SQL Server 2019-es verziójú virtuális gépeket hozta létre, kihagyhatja az alábbi lépéseket a SQL Server és az mssql-tools telepítéséhez, majd a rendelkezésreállási csoport konfigurálását ismertető szakaszt az összes virtuális gép sa jelszavának beállítását követően az összes virtuális gépen futtathatja a parancs futtatásávalsudo /opt/mssql/bin/mssql-conf set-sa-password.

Az alábbi szakaszban SQL Server és mssql-tools telepíthet virtuális gépekre. Az alábbi minták közül választhat, ha a 2017-SQL Server RHEL 7-re vagy SQL Server 2019-re szeretné telepíteni az RHEL 8-on. Hajtsa végre ezeket a műveleteket az összes csomóponton. További információ: SQL Server telepítése Red Hat virtuális gépre.

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

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

RHEL 7 és 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 és 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

Nyissa meg az 1433-at a tűzfalportot távoli kapcsolatokhoz

A távoli csatlakozáshoz meg kell nyitnia az 1433-at a virtuális gépen. Az alábbi parancsokkal nyissa meg az 1433-at az egyes virtuális gépek tűzfalán:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

SQL Server parancssori eszközök telepítése

A következő parancsok SQL Server parancssori eszközök telepítéséhez használhatók. További információ: A SQL Server parancssori eszközök telepítése.

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

Megjegyzés

A kényelem érdekében adja hozzá az /opt/mssql-tools/bin/ értéket a PATH környezeti változóhoz. Ez lehetővé teszi az eszközök futtatását a teljes elérési út megadása nélkül. Futtassa a következő parancsokat a PATH módosításához mind a bejelentkezési munkamenetekhez, mind az interaktív/nem bejelentkezési munkamenetekhez:

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

Ellenőrizze a SQL Server állapotát

Ha végzett a konfigurációval, ellenőrizheti a SQL Server állapotát, és ellenőrizheti, hogy fut-e:

systemctl status mssql-server --no-pager

A következő kimenetnek kell megjelennie:

● 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

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

Always On rendelkezésre állási csoportok engedélyezése és az mssql-server újraindítása

Engedélyezze az Always On rendelkezésre állási csoportokat minden olyan csomóponton, amely egy SQL Server-példányt üzemeltet. Ezután indítsa újra az mssql-servert. Futtassa a következő parancsfájlt:

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

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

Jelenleg nem támogatjuk az AD-hitelesítést az AG-végponton. Ezért tanúsítványt kell használnunk az AG-végpont titkosításához.

  1. Csatlakozzon az összes csomóponthoz SQL Server Management Studio (SSMS) vagy SQL CMD 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 a 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 <Master_Key_Password> elemet a saját jelszavára.
    ALTER EVENT SESSION  AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON);
    GO
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Master_Key_Password>';
    
  2. Csatlakozzon az elsődleges replikához az SSMS vagy az SQL CMD használatával. Az alábbi parancsok létrehoznak egy tanúsítványt és /var/opt/mssql/data/dbm_certificate.cer egy titkos kulcsot var/opt/mssql/data/dbm_certificate.pvk az elsődleges SQL Server replikán:

    • Cserélje le a <Private_Key_Password> elemet 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 = '<Private_Key_Password>'
           );
    GO
    

Lépjen ki az SQL CMD-munkamenetből a exit parancs futtatásával, és térjen vissza az SSH-munkamenethez.

Másolja a tanúsítványt a másodlagos replikákba, é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 való másolásához:

    • Cserélje le <username> a és <VM2> a értéket a használt felhasználónévre és cél virtuális gépre.
    • Futtassa ezt a parancsot az összes másodlagos replikához.

    Megjegyzés

    Nem kell futtatnia a parancsot sudo -i, amely biztosítja a gyökérkörnyezetet. Egyszerűen futtathatja a sudo parancsot az egyes parancsok előtt, ahogy azt az oktatóanyagban korábban is tettük.

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

    • Cserélje le <username> a elemet a felhasználónévre.
    • 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. A következő 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 SQL CMD 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 = '<Private_Key_Password>'
                );
    GO
    

Adatbázis-tükrözési végpontok létrehozása az összes replikán

Futtassa a következő szkriptet az összes SQL Server példányon AZ SQL CMD vagy az 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

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

  • Cserélje le ag1 a elemet a kívánt rendelkezésreállási csoport nevére.
  • Cserélje le a <VM1>, <VM2>, és <VM3> é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'<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

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. A következő Transact-SQL létrehoz egy bejelentkezést.

  • Cserélje le a elemet <password> a 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 a 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ő 2 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 írásához és a kilépéshez.

  3. A fájl csak a gyökérszintű olvasást tegye olvashatóvá:

    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. Ahhoz, hogy a másodlagos replikákat a rendelkezésreállási csoporthoz csatlakoztathassa, meg kell nyitnia az 5022-s portot a tűzfalon az összes kiszolgáló számára. Futtassa a következő parancsot az SSH-munkamenetben:

    sudo firewall-cmd --zone=public --add-port=5022/tcp --permanent
    sudo firewall-cmd --reload
    
  2. Futtassa a következő parancsokat a másodlagos replikákon 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
    
  3. 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
    
  4. A másodlagos replikák csatlakoztatását követően az Always On High Availability csomópont kibontásával láthatja őket az SSMS Object Explorer:

    Képernyőkép az elsődleges és másodlagos rendelkezésre állási replikákról.

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

Az adatbázis hozzáadásáról a rendelkezésreállási csoport konfigurálásával foglalkozó cikket fogjuk követni.

Ebben a lépésben a következő Transact-SQL-parancsokat használjuk. Futtassa ezeket a 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 mode
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 létrejött-e a másodlagos kiszolgálókon

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;

Ha a synchronization_state_desc listái szinkronizálva vannak a következőhöz db1: , ez azt jelenti, hogy a replikák szinkronizálva vannak. A második fájlok az elsődleges replikában jelennek meg db1 .

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

Az útmutatót követve hozzuk létre a rendelkezésre állási csoport erőforrásait a Pacemaker-fürtben.

Megjegyzés

Ez a cikk a Rabszolga kifejezésre hivatkozik, amelyet a Microsoft már nem használ. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.

A rendelkezésreállási csoport fürterőforrásának létrehozása

  1. Használja az alábbi parancsok egyikét a korábban kiválasztott környezet alapján, hogy létrehozza az erőforrást ag_cluster a rendelkezésre állási csoportban ag1.

    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
    
  2. Az alábbi parancs használata előtt ellenőrizze az erőforrást, és győződjön meg arról, hogy azok online állapotban vannak:

    sudo pcs resource
    

    A következő kimenetnek kell megjelennie:

    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)
    

Virtuális IP-erőforrás létrehozása

  1. Virtuális IP-erőforrás létrehozásához használjon egy elérhető statikus IP-címet a hálózatról. A parancseszközzel nmapmegtalálhatja a következőt: .

    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.
    
  2. Állítsa a stonith-enabled tulajdonságot false (hamis) értékre

    sudo pcs property set stonith-enabled=false
    
  3. Hozza létre a virtuális IP-erőforrást a következő paranccsal:

    • Cserélje le az <availableIP> alábbi értéket egy nem használt IP-címre.
    sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<availableIP>
    

Korlátozások hozzáadása

  1. Ahhoz, hogy az IP-cím és az AG-erőforrás ugyanazon a csomóponton fusson, konfigurálnia kell egy közös elhelyezési kényszert. Futtassa az alábbi parancsot:

    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
    
  2. Hozzon létre egy rendelési kényszert, amely biztosítja, hogy a rendelkezésreállási csoport erőforrása az IP-cím előtt fusson. Bár a kolocációs kényszer rendezési kényszert jelent, ez kényszeríti azt.

    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
    
  3. A kényszerek ellenőrzéséhez futtassa a következő parancsot:

    sudo pcs constraint list --full
    

    A következő kimenetnek kell megjelennie:

    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:
    

A sztonit újbóli engedélyezése

Készen állunk a tesztelésre. Engedélyezze újra a stonith-t a fürtben az 1. csomóponton futó alábbi paranccsal:

sudo pcs property set stonith-enabled=true

A fürt állapotának ellenőrzése

A fürterőforrások állapotát a következő paranccsal ellenőrizheti:

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

Feladatátvétel tesztelése

Annak érdekében, hogy a konfiguráció eddig sikeres legyen, tesztelni fogjuk a feladatátvételt. További információ: Always On rendelkezésreállási csoport feladatátvétele Linuxon.

  1. Futtassa a következő parancsot az elsődleges replika manuális feladatátvételéhez a következőre: <VM2>. Cserélje le <VM2> a elemet a kiszolgáló nevének értékére.

    RHEL 7

    sudo pcs resource move ag_cluster-master <VM2> --master
    

    RHEL 8

    sudo pcs resource move ag_cluster-clone <VM2> --master
    

    Megadhat egy további beállítást is, hogy az erőforrás kívánt csomópontra való áthelyezéséhez létrehozott ideiglenes kényszer automatikusan le legyen tiltva, és ne kelljen végrehajtania az alábbi 2. és 3. lépést.

    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
    

    Az alábbi 2. és 3. lépés automatizálásának másik alternatíva, amely törli magában az erőforrás-áthelyezési parancsban az ideiglenes kényszert, ha több parancsot egyesít egyetlen sorban.

    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
    
  2. Ha újra ellenőrzi a kényszereket, látni fogja, hogy a manuális feladatátvétel miatt egy másik kényszer lett hozzáadva:

    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:
    
  3. Távolítsa el a kényszert azonosítóval cli-prefer-ag_cluster-master a következő paranccsal:

    RHEL 7

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    

    RHEL 8

    sudo pcs constraint remove cli-prefer-ag_cluster-clone
    
  4. Ellenőrizze a fürt erőforrásait a paranccsal sudo pcs resource, és látnia kell, hogy az elsődleges példány most van <VM2>.

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

Kerítés tesztelése

A STONITH teszteléséhez futtassa a következő parancsot. Futtassa az alábbi parancsot a következőből <VM1> : <VM3>.

sudo pcs stonith fence <VM3> --debug

Megjegyzés

A kerítésművelet alapértelmezés szerint ki- és bekapcsolja a csomópontot. Ha csak offline állapotba szeretné helyezni a csomópontot, használja a parancsban található lehetőséget --off .

A következő kimenetnek kell megjelennie:

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

A kerítéseszköz teszteléséről a következő Red Hat-cikk nyújt további információt.

Következő lépések

Ahhoz, hogy rendelkezésre állási csoport figyelőt használhasson a SQL Server példányokhoz, létre kell hoznia és konfigurálnia kell egy terheléselosztót.