Oktatóanyag: Az SQL Server rendelkezésre állási csoportjainak konfigurálása RHEL 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 2017 -et (14.x) és az RHEL 7.6-ot használjuk, de az SQL Server 2019 (15.x) az RHEL 7-ben vagy az RHEL 8-ban is használható a magas rendelkezésre állás konfigurálásához. A Pacemaker-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 az RHEL 8-erőforrásoknak a létrehozását ismertető cikket.

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 RHEL-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é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> az Ön által választott névre. Ezt az oktatóanyagot 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": []
}

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. Ez azt eredményezheti, hogy 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. Az RHEL-HA-rendszerképként kínált képek szintén PAYG-képek, amelyeken előre engedélyezve van a HA-adattár.

  1. Szerezze be az RHEL-t és a HA-t kínáló virtuálisgép-rendszerképek listáját:

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

    A következő eredményeket kell látnia:

    [
      {
    "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 ké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épeken előre telepített SQL Server 2019 (15.x) is választható. A ké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ényeket kell látnia:

    [
       {
          "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 SQL Server 2019 (15.x) előre telepítve van. Hagyja ki az SQL Server és az mssql-tools telepítésének szakaszát a cikkben leírtak szerint.

    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 ezeket az értékeket a következő parancsban:

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

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/<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 létrehozhat például 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 való kapcsolat tesztelése

Csatlakozás a VM1-hez vagy a többi virtuális géphez az alábbi parancs használatával 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>@<VM1> ~]$

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

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énysel. Ha az előző szakaszban ajánlott képet használ, nem kell újabb előfizetést regisztrálnia.

Csatlakozás minden virtuálisgép-csomóponthoz, és kövesse ezt az útmutatót a HA engedélyezéséhez. További információt az RHEL magas rendelkezésre állású előfizetésének engedélyezése című témakörben talál.

Tipp.

Egyszerűbb lesz, ha egyszerre nyit meg egy SSH-munkamenetet az egyes virtuális gépeken, 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.

  1. A Pacemaker tűzfalportok megnyitásához futtassa az alábbi parancsokat az egyes virtuális gépeken:

    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 van telepítve 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. Adja meg 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 az állomásnévfeloldás beállítását. További információ: AG 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 az előző példában használja a privát IP-címét . Ha a nyilvános IP-címet használja ebben a konfigurációban, a beállítás sikertelen lesz, és nem javasoljuk, hogy a virtuális gépet külső hálózatokon is közzétehesse.

    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.

A Pacemaker-fürt létrehozása

Ebben a szakaszban engedélyezheti és elindíthatja a pcsd szolgáltatást, majd konfigurálhatja a fürtöt. Linuxon futó SQL Server esetén a fürterőforrások nem jönnek létre automatikusan. Manuálisan kell engedélyeznie és létrehoznia a Pacemaker-erőforrásokat. További információkért tekintse meg a feladatátvevő fürtpéldány rhEL-hez való konfigurálásáról szóló cikket.

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 a csomópontok számára, hogy újra csatlakozhassanak a fürthöz az egyes csomópontok újraindítása 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ót 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 az alábbi 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 minden csomópont online állapotban van, az alábbi példához 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 be 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 kerítésügynök konfigurálásához az alábbi utasítások módosulnak ehhez az oktatóanyaghoz. További információ: STONITH-eszköz létrehozása.

Ellenőrizze az Azure Fence Agent verzióját annak frissítéséhez. 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 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 (bejelentkezési azonosítója az alábbi lépésekben) 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. Ne használja többé 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és 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. A Kiválasztás listában adja meg a korábban létrehozott alkalmazás nevét,<resourceGroupName>-app
  8. Select Save
  9. Ismételje meg ezeket a 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 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.
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), nincs szükség a következő tűzfalportok megnyitására az összes csomóponton: 2224, 3121, 21064, 5405. Ha azonban bármilyen kapcsolati problémát tapasztal a HA-val kapcsolatban, az alábbi paranccsal nyissa meg a HA-hoz társított portokat.

Tipp.

Az oktatóanyagban szereplő összes portot egyszerre is hozzáadhatja, így időt takaríthat meg. A megnyitni kívánt portokat az alábbi 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

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

Megjegyzés:

Ha az SQL Server 2019 (15.x) előre telepített SQL Server 2019 (15.x) használatával hozta létre a virtuális gépeket az RHEL8-HA-n, akkor kihagyhatja az alábbi lépéseket az SQL Server és az mssql-eszközök telepítéséhez, majd az összes virtuális gépen futtatott parancs sudo /opt/mssql/bin/mssql-conf set-sa-password futtatásával elindíthatja a Rendelkezésre állási csoport konfigurálása szakaszt, miután beállította az sa-jelszót az összes virtuális gépen.

Az alábbi szakaszban telepítheti az SQL Servert és az mssql-toolst a virtuális gépekre. Az alábbi minták közül választhat az SQL Server 2017 (14.x) rhEL 7 vagy SQL Server 2019 (15.x) rhEL 8-on való telepítéséhez. Hajtsa végre ezeket a műveleteket az összes csomóponton. További információ: Sql Server telepítése Red Hat rendszerű virtuális gépre.

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:

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

A tűzfal 1433-ás portjának megnyitása 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

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

Az SQL Server parancssori eszközeinek telepítéséhez az alábbi parancsok szolgálnak. További információ: az SQL Server parancssori eszközeinek 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/ elemet 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

Az SQL Server állapotának ellenőrzése

Ha végzett a konfigurációval, ellenőrizheti az 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 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 az AG-végpont titkosításához tanúsítványt kell használnunk.

  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 <Master_Key_Password> 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 = '<Master_Key_Password>';
    
  2. Csatlakozás az elsődleges replikához SSMS vagy sqlcmd használatával. A következő parancsok létrehoznak egy tanúsítványt /var/opt/mssql/data/dbm_certificate.cer és egy titkos kulcsot az elsődleges SQL Server-replikán var/opt/mssql/data/dbm_certificate.pvk :

    • Cserélje le a <Private_Key_Password> 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 = '<Private_Key_Password>'
           );
    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 <VM2> í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. Egyszerűen futtathatja a sudo parancsot az egyes parancsok előtt, ahogy az ebben 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 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 = '<Private_Key_Password>'
                );
    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 rendelkezésre állási csoport nevére.
  • Cserélje le a <VM1>, <VM2>és <VM3> 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'<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. 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ő sorokat 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ák AG-hez való csatlakoztatásához 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. 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
    
  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á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

Az adatbázis hozzáadásáról a rendelkezésre állási csoport konfigurálását ismertető cikket követjük.

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;

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

Az útmutatót követve hozzuk létre a rendelkezésre állási csoport erőforrásait 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.

Az AG-fürterőforrás 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. A következő paranccsal győződjön meg arról, hogy az erőforrások online állapotban vannak a folytatás előtt:

    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 a hálózatról elérhető statikus IP-címet. A parancseszközzel nmaptalál egyet.

    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 hamisra:

    sudo pcs property set stonith-enabled=false
    
  3. Hozza létre a virtuális IP-erőforrást az alábbi paranccsal. Cserélje le <availableIP> 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álni kell a helymegkötést. 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, hogy az AG-erőforrás az IP-cím előtt működjön. Bár a helymeghatározási kényszer rendelé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 korlátozások 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 sztonit a fürtben az 1. csomóponton a következő parancs futtatásával:

sudo pcs property set stonith-enabled=true

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

A fürterőforrások állapotát az alábbi 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, teszteljük 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 <VM2>. Cserélje le <VM2> a kiszolgálónév é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 korlátozás automatikusan le legyen tiltva, és az alábbi utasításokban nem kell elvégeznie a 2. és a 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
    

    A 2. és a 3. lépés automatizálásának másik alternatíva, amely törli magát az erőforrás-áthelyezési parancs ideiglenes korlátozását, 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 ismét ellenőrzi a kényszereket, láthatja, 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ürterőforrásokat 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 kerítés teszteléséhez futtassa a következő parancsot. Próbálja meg futtatni az alábbi parancsot a következőhöz <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ével kapcsolatos további információkért tekintse meg a következő Red Hat-cikket .

Következő lépés