Samouczek: konfigurowanie odbiornika grupy dostępności na maszynach wirtualnych z systemem Linux
Dotyczy:SQL Server na maszynie wirtualnej platformy Azure
W tym samouczku opisano procedurę tworzenia odbiornika grupy dostępności dla serwerów SQL na maszynach wirtualnych z systemem Linux na platformie Azure, w przypadku systemów Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES) i Ubuntu.
Dowiesz się, jak:
- Tworzenie modułu równoważenia obciążenia w witrynie Azure Portal
- Konfigurowanie puli zaplecza dla modułu równoważenia obciążenia
- Tworzenie sondy dla modułu równoważenia obciążenia
- Ustawianie reguł równoważenia obciążenia
- Tworzenie zasobu modułu równoważenia obciążenia w klastrze
- Tworzenie odbiornika grupy dostępności
- Testowanie nawiązywania połączenia z odbiornikiem
- Testowanie trybu failover
Uwaga
Komunikacja bez uprzedzeń
Ten artykuł zawiera odwołania do terminu niewolnik, termin Microsoft uznaje za obraźliwe w przypadku użycia w tym kontekście. Termin pojawia się w tym artykule, ponieważ jest on obecnie wyświetlany w oprogramowaniu. Po usunięciu terminu z oprogramowania usuniemy go z artykułu.
Warunek wstępny
Tworzenie modułu równoważenia obciążenia w witrynie Azure Portal
Poniższe instrukcje obejmują kroki od 1 do 4 z artykułu Tworzenie i konfigurowanie modułu równoważenia obciążenia w witrynie Azure Portal w artykule Konfigurowanie odbiornika grupy dostępności i modułu równoważenia obciążenia (SQL Server na maszynach wirtualnych platformy Azure).
Tworzenie modułu równoważenia obciążenia
W witrynie Azure Portal otwórz grupę zasobów zawierającą maszyny wirtualne programu SQL Server.
W grupie zasobów wybierz pozycję Dodaj.
Wyszukaj moduł równoważenia obciążenia, a następnie w wynikach wyszukiwania wybierz pozycję Load Balancer, który jest publikowany przez firmę Microsoft.
W okienku Moduł równoważenia obciążenia wybierz pozycję Utwórz.
W oknie dialogowym Tworzenie modułu równoważenia obciążenia skonfiguruj moduł równoważenia obciążenia w następujący sposób:
Ustawienie Wartość Nazwa/nazwisko Nazwa tekstowa reprezentująca moduł równoważenia obciążenia. Na przykład sqlLB
.Type Wewnętrzny Sieć wirtualna Domyślna utworzona sieć wirtualna powinna mieć nazwę VM1VNET
.Podsieć Wybierz podsieć, w których znajdują się wystąpienia programu SQL Server. Wartość domyślna powinna mieć wartość VM1Subnet
.Przypisanie adresu IP Static Prywatny adres IP virtualip
Użyj adresu IP utworzonego w klastrze.Subskrypcja Użyj subskrypcji, która została użyta dla grupy zasobów. Grupa zasobów: Wybierz grupę zasobów, w których znajdują się wystąpienia programu SQL Server. Lokalizacja Wybierz lokalizację platformy Azure, w których znajdują się wystąpienia programu SQL Server.
Konfigurowanie puli zaplecza
Platforma Azure wywołuje pulę zaplecza puli adresów zaplecza. W takim przypadku pula zaplecza to adresy trzech wystąpień programu SQL Server w twojej ag.
W grupie zasobów wybierz utworzony moduł równoważenia obciążenia.
W Ustawienia wybierz pozycję Pule zaplecza.
W obszarze Pule zaplecza wybierz pozycję Dodaj , aby utworzyć pulę adresów zaplecza.
W obszarze Dodawanie puli zaplecza w obszarze Nazwa wpisz nazwę puli zaplecza.
W obszarze Skojarzone z wybierz pozycję Maszyna wirtualna.
Wybierz każdą maszynę wirtualną w środowisku i skojarz odpowiedni adres IP z każdym wyborem.
Wybierz Dodaj.
Tworzenie sondy
Sonda definiuje sposób, w jaki platforma Azure weryfikuje, które wystąpienia programu SQL Server są obecnie właścicielem odbiornika grupy dostępności. Platforma Azure sonduje usługę na podstawie adresu IP na porcie zdefiniowanym podczas tworzenia sondy.
W okienku Ustawienia modułu równoważenia obciążenia wybierz pozycję Sondy kondycji.
W okienku Sondy kondycji wybierz pozycję Dodaj.
Skonfiguruj sondę w okienku Dodawanie sondy . Aby skonfigurować sondę, użyj następujących wartości:
Ustawienie Wartość Nazwa/nazwisko Nazwa tekstowa reprezentująca sondę. Na przykład SQLAlwaysOnEndPointProbe
.Protokół TCP
Port Możesz użyć dowolnego dostępnego portu. Na przykład 59999
.Interwał 5
Próg złej kondycji 2
Wybierz przycisk OK.
Zaloguj się do wszystkich maszyn wirtualnych i otwórz port sondy przy użyciu następujących poleceń:
sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent sudo firewall-cmd --reload
Platforma Azure tworzy sondę, a następnie używa jej do testowania, które wystąpienie programu SQL Server ma odbiornik grupy dostępności.
Ustawianie reguł równoważenia obciążenia
Reguły równoważenia obciążenia konfigurują sposób kierowania ruchu przez moduł równoważenia obciążenia do wystąpień programu SQL Server. W przypadku tego modułu równoważenia obciążenia włączysz bezpośredni zwrot serwera, ponieważ tylko jedno z trzech wystąpień programu SQL Server jest właścicielem zasobu odbiornika grupy dostępności jednocześnie.
W okienku Ustawienia modułu równoważenia obciążenia wybierz pozycję Reguły równoważenia obciążenia.
W okienku Reguły równoważenia obciążenia wybierz pozycję Dodaj.
W okienku Dodawanie reguł równoważenia obciążenia skonfiguruj regułę równoważenia obciążenia. Użyj następujących ustawień:
Ustawienie Wartość Nazwa/nazwisko Nazwa tekstu reprezentująca reguły równoważenia obciążenia. Na przykład SQLAlwaysOnEndPointListener
.Protokół TCP Port 1433
Port zaplecza 1433
. Ta wartość jest ignorowana, ponieważ ta reguła używa zmiennoprzecinkowego adresu IP (bezpośredni zwrot serwera).Sondy Użyj nazwy sondy utworzonej dla tego modułu równoważenia obciążenia. Trwałość sesji Brak Limit czasu bezczynności (w minutach) 4
Pływający adres IP (bezpośredni zwrot serwera) Włączono Wybierz przycisk OK.
Platforma Azure konfiguruje regułę równoważenia obciążenia. Teraz moduł równoważenia obciążenia jest skonfigurowany do kierowania ruchu do wystąpienia programu SQL Server, które hostuje odbiornik grupy dostępności.
W tym momencie grupa zasobów ma moduł równoważenia obciążenia, który łączy się ze wszystkimi maszynami z programem SQL Server. Moduł równoważenia obciążenia zawiera również adres IP odbiornika zawsze włączonej grupy dostępności programu SQL Server, dzięki czemu każda maszyna może odpowiadać na żądania dla grup dostępności.
Tworzenie zasobu odbiornika grupy dostępności
Przed utworzeniem zasobu modułu równoważenia obciążenia w narzędziu Pacemaker najpierw utwórz zasób odbiornika:
sudo crm configure primitive virtualip \
ocf:heartbeat:IPaddr2 \
params ip=x.y.z.a
W poprzednim przykładzie x.y.z.a
odwołuje się do adresu IP frontonu modułu równoważenia obciążenia.
Tworzenie zasobu modułu równoważenia obciążenia w klastrze
Postępuj zgodnie z instrukcjami dotyczącymi konfigurowanych dystrybucji.
Zaloguj się do podstawowej maszyny wirtualnej. Musimy utworzyć zasób, aby włączyć port sondy modułu równoważenia obciążenia platformy Azure (59999 jest używany w naszym przykładzie). Uruchom następujące polecenie:
sudo pcs resource create azure_load_balancer azure-lb port=59999
Utwórz grupę zawierającą
virtualip
zasób i :azure_load_balancer
sudo pcs resource group add virtualip_group azure_load_balancer virtualip
Dodawanie ograniczeń
Należy skonfigurować ograniczenie kolokacji, aby upewnić się, że adres IP modułu równoważenia obciążenia platformy Azure i zasób grupy dostępności są uruchomione w tym samym węźle. Uruchom następujące polecenie:
sudo pcs constraint colocation add azure_load_balancer ag_cluster-master INFINITY with-rsc-role=Master
Utwórz ograniczenie zamawiania, aby upewnić się, że zasób grupy dostępności jest uruchomiony przed adresem IP modułu równoważenia obciążenia platformy Azure. Chociaż ograniczenie kolokacji oznacza ograniczenie porządkowania, wymusza to ograniczenie.
sudo pcs constraint order promote ag_cluster-master then start azure_load_balancer
Aby sprawdzić ograniczenia, uruchom następujące polecenie:
sudo pcs constraint list --full
Powinny zostać wyświetlone następujące dane wyjściowe:
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:
Tworzenie odbiornika grupy dostępności
W węźle podstawowym uruchom następujące polecenie w narzędziu sqlcmd lub SSMS. Zastąp
virtualip
adres IP używany poniżej adresem IP.SQL Server 2022 i nowsze wersje:
ALTER AVAILABILITY GROUP [ag1] ADD LISTENER 'ag1-listener' ( WITH IP(( '10.0.0.7', '0.0.0.0' )), PORT = 1433 ); GO
SQL Server 2017 i SQL Server 2019:
ALTER AVAILABILITY GROUP [ag1] ADD LISTENER 'ag1-listener' ( WITH IP(( '10.0.0.7', '255.255.255.255' )), PORT = 1433 ); GO
Zaloguj się do każdego węzła maszyny wirtualnej. Użyj następującego polecenia, aby otworzyć plik hosts i skonfigurować rozpoznawanie nazw hosta dla
ag1-listener
elementu na każdej maszynie.sudo vi /etc/hosts
W edytorze vi wprowadź ,
i
aby wstawić tekst, a w pustym wierszu dodaj adres IP .ag1-listener
Następnie dodajag1-listener
po spacji obok adresu IP.<IP of ag1-listener> ag1-listener
Aby zamknąć edytor vi , najpierw naciśnij klawisz Esc , a następnie wprowadź polecenie
:wq
, aby zapisać plik i zamknąć. Zrób to w każdym węźle.
Testowanie odbiornika i trybu failover
W tej sekcji opisano logowanie się do odbiornika grupy dostępności programu SQL Server i testowanie trybu failover.
Testowanie logowania się do programu SQL Server przy użyciu odbiornika grupy dostępności
Użyj narzędzia sqlcmd , aby zalogować się do podstawowego węzła programu SQL Server przy użyciu nazwy odbiornika grupy dostępności:
- Użyj wcześniej utworzonego identyfikatora logowania i zastąp
<YourPassword>
go poprawnym hasłem. W poniższym przykładzie użyto identyfikatora logowania utworzonegosa
za pomocą programu SQL Server.
sqlcmd -S ag1-listener -U sa -P <YourPassword>
- Użyj wcześniej utworzonego identyfikatora logowania i zastąp
Sprawdź nazwę serwera, z którym masz połączenie. Uruchom następujące polecenie w narzędziu sqlcmd:
SELECT @@SERVERNAME;
Dane wyjściowe powinny zawierać bieżący węzeł podstawowy. Powinno to być
VM1
, jeśli nigdy nie przetestowano trybu failover.Zamknij sesję programu SQL Server, wpisując
exit
polecenie .
Testowanie trybu failover
Uruchom następujące polecenie, aby ręcznie przejechać replikę podstawową w tryb failover do
<VM2>
lub innej repliki. Zastąp<VM2>
ciąg wartością nazwy serwera.sudo pcs resource move ag_cluster-master <VM2> --master
Jeśli sprawdzisz ograniczenia, zobaczysz, że inne ograniczenie zostało dodane z powodu ręcznego przejścia w tryb failover:
sudo pcs constraint list --full
Zobaczysz, że dodano ograniczenie o identyfikatorze
cli-prefer-ag_cluster-master
.Usuń ograniczenie z identyfikatorem
cli-prefer-ag_cluster-master
przy użyciu następującego polecenia:sudo pcs constraint remove cli-prefer-ag_cluster-master
Sprawdź zasoby klastra przy użyciu polecenia
sudo pcs resource
i sprawdź, czy wystąpienie podstawowe ma teraz wartość<VM2>
.Uwaga
Ten artykuł zawiera odwołania do terminu slave (element podrzędny), który nie jest już używany przez firmę Microsoft. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.
[<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>
Użyj polecenia sqlcmd , aby zalogować się do repliki podstawowej przy użyciu nazwy odbiornika:
- Użyj wcześniej utworzonego identyfikatora logowania i zastąp
<YourPassword>
go poprawnym hasłem. W poniższym przykładzie użyto identyfikatora logowania utworzonegosa
za pomocą programu SQL Server.
sqlcmd -S ag1-listener -U sa -P <YourPassword>
- Użyj wcześniej utworzonego identyfikatora logowania i zastąp
Sprawdź serwer, z którym masz połączenie. Uruchom następujące polecenie w narzędziu sqlcmd:
SELECT @@SERVERNAME;
Powinien zostać wyświetlony komunikat, że masz teraz połączenie z maszyną wirtualną, z którą nawiązano przełączenie w tryb failover.
Następny krok
Aby korzystać z odbiornika grupy dostępności dla wystąpień programu SQL Server, należy utworzyć i skonfigurować moduł równoważenia obciążenia.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla