Sdílet prostřednictvím


Kurz: Konfigurace naslouchacího procesu skupiny dostupnosti na virtuálních počítačích s Linuxem

Platí pro:SQL Server na virtuálním počítači Azure

Tento kurz vás provede postupem vytvoření naslouchacího procesu skupiny dostupnosti (AG) pro SQL Servery na virtuálních počítačích s Linuxem v Azure, pro Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) a Ubuntu.

Získáte následující informace:

  • Vytvoření nástroje pro vyrovnávání zatížení na webu Azure Portal
  • Konfigurace back-endového fondu pro nástroj pro vyrovnávání zatížení
  • Vytvoření sondy pro nástroj pro vyrovnávání zatížení
  • Nastavení pravidel vyrovnávání zatížení
  • Vytvoření prostředku nástroje pro vyrovnávání zatížení v clusteru
  • Vytvoření naslouchacího procesu skupiny dostupnosti
  • Testování připojení k naslouchacímu procesu
  • Testování převzetí služeb při selhání

Poznámka:

Komunikace bez předsudků

Tento článek obsahuje odkazy na termín otrok, termín Microsoft považuje za urážlivé, pokud se používá v tomto kontextu. Termín se zobrazí v tomto článku, protože se aktuálně zobrazuje v softwaru. Když se termín odebere ze softwaru, odebereme ho z článku.

Požadavek

Vytvoření nástroje pro vyrovnávání zatížení na webu Azure Portal

Následující pokyny vás provedou kroky 1 až 4 z článku Vytvoření a konfigurace nástroje pro vyrovnávání zatížení v části Konfigurace nástroje pro vyrovnávání zatížení a naslouchacího procesu skupiny dostupnosti (SQL Server na virtuálních počítačích Azure).

Vytvoření nástroje pro vyrovnávání zatížení

  1. Na webu Azure Portal otevřete skupinu prostředků, která obsahuje virtuální počítače s SQL Serverem.

  2. Ve skupině prostředků vyberte Přidat.

  3. Vyhledejte nástroj pro vyrovnávání zatížení a ve výsledcích hledání vyberte Load Balancer, který publikuje Microsoft.

  4. V podokně Load Balancer vyberte Vytvořit.

  5. V dialogovém okně Vytvořit nástroj pro vyrovnávání zatížení nakonfigurujte nástroj pro vyrovnávání zatížení následujícím způsobem:

    Nastavení Hodnota
    Název Textový název představující nástroj pro vyrovnávání zatížení. Například sqlLB.
    Typ Interní
    Virtuální síť Výchozí virtuální síť, která byla vytvořena, by měla mít název VM1VNET.
    Podsíť Vyberte podsíť, ve které jsou instance SQL Serveru. Výchozí hodnota by měla být VM1Subnet.
    Přiřazení IP adres staticky.
    Privátní IP adresa virtualip Použijte IP adresu vytvořenou v clusteru.
    Předplatné Použijte předplatné, které se použilo pro vaši skupinu prostředků.
    Skupina prostředků Vyberte skupinu prostředků, ve které jsou instance SQL Serveru.
    Místo Vyberte umístění Azure, ve které jsou instance SQL Serveru.

Konfigurace back-endového fondu

Azure volá back-endový fond adres back-endového fondu. V tomto případě je back-endový fond adresami tří instancí SQL Serveru ve vaší skupině dostupnosti.

  1. Ve skupině prostředků vyberte nástroj pro vyrovnávání zatížení, který jste vytvořili.

  2. Na Nastavení vyberte back-endové fondy.

  3. V back-endových fondech vyberte Přidat a vytvořte fond back-endových adres.

  4. V části Název přidejte back-endový fond a zadejte název back-endového fondu.

  5. V části Přidruženo vyberte Virtuální počítač.

  6. Vyberte každý virtuální počítač v prostředí a přidružte ke každému výběru příslušnou IP adresu.

    Screenshot showing how to add a backend pool.

  7. Vyberte Přidat.

Vytvoření sondy

Sonda definuje, jak Azure ověřuje, které instance SQL Serveru aktuálně vlastní naslouchací proces skupiny dostupnosti. Azure testuje službu na základě IP adresy na portu, který definujete při vytváření testu.

  1. V podokně nástroje pro vyrovnávání zatížení Nastavení vyberte Sondy stavu.

  2. V podokně Sondy stavu vyberte Přidat.

  3. Nakonfigurujte sondu v podokně Přidat sondu . Ke konfiguraci sondy použijte následující hodnoty:

    Nastavení Hodnota
    Název Název textu představující sondu. Například SQLAlwaysOnEndPointProbe.
    Protokol TCP
    Port Můžete použít libovolný dostupný port. Například 59999.
    Interval 5
    Prahová hodnota pro poškozený stav 2
  4. Vyberte OK.

  5. Přihlaste se ke všem virtuálním počítačům a otevřete port sondy pomocí následujících příkazů:

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

Azure vytvoří sondu a pak ji použije k otestování instance SQL Serveru, která má naslouchací proces skupiny dostupnosti.

Nastavení pravidel vyrovnávání zatížení

Pravidla vyrovnávání zatížení konfigurují, jak nástroj pro vyrovnávání zatížení směruje provoz do instancí SQL Serveru. Pro tento nástroj pro vyrovnávání zatížení povolíte přímé vrácení serveru, protože najednou vlastní prostředek naslouchacího procesu skupiny dostupnosti pouze jedna ze tří instancí SQL Serveru.

  1. V podokně nástroje pro vyrovnávání zatížení Nastavení vyberte pravidla vyrovnávání zatížení.

  2. V podokně Pravidla vyrovnávání zatížení vyberte Přidat.

  3. V podokně Přidat pravidla vyrovnávání zatížení nakonfigurujte pravidlo vyrovnávání zatížení. Použijte následující nastavení:

    Nastavení Hodnota
    Název Název textu představující pravidla vyrovnávání zatížení. Například SQLAlwaysOnEndPointListener.
    Protokol TCP
    Port 1433
    Back-endový port 1433. Tato hodnota je ignorována, protože toto pravidlo používá plovoucí IP adresu (přímá odpověď serveru).
    Sonda Použijte název sondy, kterou jste vytvořili pro tento nástroj pro vyrovnávání zatížení.
    Trvalost relace Nic
    Časový limit nečinnosti (minuty) 4
    Plovoucí IP adresa (přímá vrácení serveru) Povoleno

    Screenshot showing how to add a load balancing rule.

  4. Vyberte OK.

  5. Azure nakonfiguruje pravidlo vyrovnávání zatížení. Teď je nástroj pro vyrovnávání zatížení nakonfigurovaný tak, aby směroval provoz do instance SQL Serveru, která je hostitelem naslouchacího procesu skupiny dostupnosti.

V tomto okamžiku má skupina prostředků nástroj pro vyrovnávání zatížení, který se připojuje ke všem počítačům s SQL Serverem. Nástroj pro vyrovnávání zatížení také obsahuje IP adresu pro naslouchací proces skupiny dostupnosti AlwaysOn PRO SQL Server, aby každý počítač mohl reagovat na požadavky skupin dostupnosti.

Vytvoření prostředku naslouchacího procesu skupiny dostupnosti

Před vytvořením prostředku nástroje pro vyrovnávání zatížení v Pacemakeru nejprve vytvořte prostředek naslouchacího procesu:

sudo crm configure primitive virtualip \
ocf:heartbeat:IPaddr2 \
params ip=x.y.z.a

V předchozím příkladu x.y.z.a odkazuje na front-endovou IP adresu nástroje pro vyrovnávání zatížení.

Vytvoření prostředku nástroje pro vyrovnávání zatížení v clusteru

Postupujte podle pokynů pro konfiguraci distribuce.

  1. Přihlaste se k primárnímu virtuálnímu počítači. Potřebujeme vytvořit prostředek, který povolí port sondy nástroje pro vyrovnávání zatížení Azure (v našem příkladu se používá 59999). Spusťte následující příkaz:

    sudo pcs resource create azure_load_balancer azure-lb port=59999
    
  2. Vytvořte skupinu, která obsahuje prostředekvirtualip:azure_load_balancer

    sudo pcs resource group add virtualip_group azure_load_balancer virtualip
    

Přidání omezení

  1. Musí být nakonfigurované omezení kolokace, aby se zajistilo, že IP adresa nástroje pro vyrovnávání zatížení Azure a prostředek skupiny dostupnosti běží na stejném uzlu. Spusťte následující příkaz:

    sudo pcs constraint colocation add azure_load_balancer ag_cluster-master INFINITY with-rsc-role=Master
    
  2. Vytvořte omezení řazení, abyste zajistili, že je prostředek skupiny dostupnosti spuštěný před IP adresou nástroje pro vyrovnávání zatížení Azure. I když kolokační omezení znamená omezení řazení, vynutí ho.

    sudo pcs constraint order promote ag_cluster-master then start azure_load_balancer
    
  3. Pokud chcete ověřit omezení, spusťte následující příkaz:

    sudo pcs constraint list --full
    

    Měl by se zobrazit následující výstup:

    Location Constraints:
    Ordering Constraints:
      promote ag_cluster-master then start virtualip (kind:Mandatory) (id:order-ag_cluster-master-virtualip-mandatory)
      promote ag_cluster-master then start azure_load_balancer (kind:Mandatory) (id:order-ag_cluster-master-azure_load_balancer-mandatory)
    Colocation Constraints:
      virtualip with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-virtualip-ag_cluster-master-INFINITY)
      azure_load_balancer with ag_cluster-master (score:INFINITY) (with-rsc-role:Master) (id:colocation-azure_load_balancer-ag_cluster-master-INFINITY)
    Ticket Constraints:
    

Vytvoření naslouchacího procesu skupiny dostupnosti

  1. Na primárním uzlu spusťte v sqlcmd nebo SSMS následující příkaz. Nahraďte IP adresu použitou virtualip níže IP adresou.

    • SQL Server 2022 a novější verze:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '0.0.0.0'
          )),
          PORT = 1433
      );
      GO
      
    • SQL Server 2017 a SQL Server 2019:

      ALTER AVAILABILITY GROUP [ag1]
      ADD LISTENER 'ag1-listener' (
          WITH IP((
              '10.0.0.7',
              '255.255.255.255'
          )),
          PORT = 1433
      );
      GO
      
  2. Přihlaste se ke každému uzlu virtuálního počítače. Pomocí následujícího příkazu otevřete soubor hostitelů a nastavte překlad názvů hostitelů pro ag1-listener každý počítač.

    sudo vi /etc/hosts
    

    V editoru vi zadejte i text a na prázdný řádek přidejte IP adresu ag1-listener. Pak přidejte ag1-listener za mezeru vedle IP adresy.

    <IP of ag1-listener> ag1-listener
    

    Pokud chcete ukončit editor vi , nejprve stiskněte klávesu Esc a pak zadejte příkaz :wq pro zápis souboru a ukončení. Udělejte to na každém uzlu.

Otestování naslouchacího procesu a převzetí služeb při selhání

Tato část popisuje přihlášení k naslouchacímu procesu skupiny dostupnosti SQL Serveru a testování převzetí služeb při selhání.

Testování přihlášení k SQL Serveru pomocí naslouchacího procesu skupiny dostupnosti

  1. Pomocí sqlcmd se přihlaste k primárnímu uzlu SQL Serveru pomocí názvu naslouchacího procesu skupiny dostupnosti:

    • Použijte přihlašovací jméno, které bylo dříve vytvořeno a nahrazeno <YourPassword> správným heslem. Následující příklad používá sa přihlášení vytvořené s SQL Serverem.
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  2. Zkontrolujte název serveru, ke kterému jste připojení. V sqlcmd spusťte následující příkaz:

    SELECT @@SERVERNAME;
    

    Výstup by měl zobrazit aktuální primární uzel. To by mělo být VM1 , pokud jste nikdy neotestovali převzetí služeb při selhání.

    Ukončete relaci SQL Serveru zadáním exit příkazu.

Testování převzetí služeb při selhání

  1. Spuštěním následujícího příkazu ručně převeďte primární repliku na <VM2> jinou repliku nebo jinou repliku. Nahraďte <VM2> hodnotou názvu serveru.

    sudo pcs resource move ag_cluster-master <VM2> --master
    
  2. Pokud zkontrolujete svá omezení, uvidíte, že se kvůli ručnímu převzetí služeb při selhání přidalo další omezení:

    sudo pcs constraint list --full
    

    Uvidíte, že bylo přidáno omezení s ID cli-prefer-ag_cluster-master .

  3. Pomocí následujícího příkazu odeberte omezení s ID cli-prefer-ag_cluster-master :

    sudo pcs constraint remove cli-prefer-ag_cluster-master
    
  4. Pomocí příkazu sudo pcs resourcezkontrolujte prostředky clusteru a měli byste vidět, že primární instance je nyní <VM2>.

    Poznámka:

    Tento článek obsahuje odkazy na termín slave (podřízený) , což je termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.

    [<username>@<VM1> ~]$ sudo pcs resource
    Master/Slave Set: ag_cluster-master [ag_cluster]
        Masters: [ <VM2> ]
        Slaves: [ <VM1> <VM3> ]
    Resource Group: virtualip_group
        azure_load_balancer        (ocf::heartbeat:azure-lb):      Started <VM2>
        virtualip  (ocf::heartbeat:IPaddr2):       Started <VM2>
    
  5. Pomocí sqlcmd se přihlaste k primární replice pomocí názvu naslouchacího procesu:

    • Použijte přihlašovací jméno, které bylo dříve vytvořeno a nahrazeno <YourPassword> správným heslem. Následující příklad používá sa přihlášení vytvořené s SQL Serverem.
    sqlcmd -S ag1-listener -U sa -P <YourPassword>
    
  6. Zkontrolujte server, ke kterému jste připojení. V sqlcmd spusťte následující příkaz:

    SELECT @@SERVERNAME;
    

    Měli byste vidět, že jste teď připojení k virtuálnímu počítači, ke kterému jste převzali služby při selhání.

Další krok

Pokud chcete pro instance SQL Serveru využít naslouchací proces skupiny dostupnosti, musíte vytvořit a nakonfigurovat nástroj pro vyrovnávání zatížení.