Konfigurowanie nazwy sieci rozproszonej dla wystąpienia klastra trybu failover
Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure
W usłudze Azure Virtual Machines rozproszona nazwa sieci (DNN) kieruje ruch do odpowiedniego zasobu klastrowanego. Jest to łatwiejszy sposób nawiązywania połączenia z wystąpieniem klastra trybu failover programu SQL Server niż nazwa sieci wirtualnej (VNN) bez konieczności używania usługi Azure Load Balancer.
W tym artykule przedstawiono sposób konfigurowania zasobu sieci rozproszonej w celu kierowania ruchu do wystąpienia klastra trybu failover za pomocą programu SQL Server na maszynach wirtualnych platformy Azure w celu zapewnienia wysokiej dostępności i odzyskiwania po awarii (HADR).
Aby uzyskać alternatywną opcję łączności, rozważ zamiast tego nazwę sieci wirtualnej i usługę Azure Load Balancer .
Omówienie
Nazwa sieci rozproszonej (DNN) zastępuje nazwę sieci wirtualnej (VNN) jako punkt połączenia, gdy jest używany z zawsze włączonym wystąpieniem klastra trybu failover na maszynach wirtualnych programu SQL Server. To neguje potrzebę routingu ruchu usługi Azure Load Balancer do sieci wirtualnej, upraszczając wdrażanie, konserwację i ulepszanie trybu failover.
W przypadku wdrożenia wystąpienia klastra trybu failover nadal istnieje nazwa sieci wirtualnej, ale klient nawiązuje połączenie z nazwą DNS nazwy sieci rozproszonej zamiast nazwy sieci wirtualnej.
Napiwek
Uprość wdrożenie i eliminuje konieczność korzystania z usługi Azure Load Balancer lub rozproszonej nazwy sieci (DNN) dla wystąpienia klastra trybu failover przez utworzenie maszyn wirtualnych programu SQL Server w wielu podsieciach w tej samej sieci wirtualnej platformy Azure.
Wymagania wstępne
Przed wykonaniem kroków opisanych w tym artykule należy mieć już następujące elementy:
- Program SQL Server, począwszy od programu SQL Server 2019 CU8 lub nowszego, programu SQL Server 2017 CU25 lub nowszego lub programu SQL Server 2016 z dodatkiem SP3 lub nowszym w systemie Windows Server 2016 lub nowszym.
- Podjęto decyzję, że nazwa sieci rozproszonej jest odpowiednią opcją łączności dla rozwiązania HADR.
- Skonfigurowano wystąpienia klastra trybu failover.
- Zainstalowano najnowszą wersję programu PowerShell.
Uwaga
Jeśli masz wiele grup dostępności lub wystąpień klastra trybu failover w tym samym klastrze i używasz odbiornika sieci rozproszonej lub sieci wirtualnej, każda grupa dostępności lub wystąpienie klastra trybu failover wymaga własnego niezależnego punktu połączenia.
Tworzenie zasobu sieci rozproszonej
Zasób nazwy sieci rozproszonej jest tworzony w tej samej grupie klastra co wystąpienie klastra programu SQL Server FCI. Użyj programu PowerShell, aby utworzyć zasób nazwy sieci rozproszonej wewnątrz grupy klastra wystąpienia klastra trybu failover.
Następujące polecenie programu PowerShell dodaje zasób nazwy sieci rozproszonej do grupy klastrów klastra wystąpienia klastra klastra <dnnResourceName>
programu SQL Server o nazwie zasobu . Nazwa zasobu służy do unikatowego identyfikowania zasobu. Użyj elementu, który ma sens dla Ciebie i jest unikatowy w całym klastrze. Typ zasobu musi mieć wartość Distributed Network Name
.
Wartość -Group
musi być nazwą grupy klastra, która odpowiada wystąpieniu klastra wystąpienia klastra programu SQL Server, w którym chcesz dodać nazwę sieci rozproszonej. W przypadku wystąpienia domyślnego typowy format to SQL Server (MSSQLSERVER)
.
Add-ClusterResource -Name <dnnResourceName> `
-ResourceType "Distributed Network Name" -Group "<WSFC role of SQL Server instance>"
Aby na przykład utworzyć zasób dnn-demo
nazwy sieci rozproszonej dla domyślnego wystąpienia klastra trybu failover programu SQL Server, użyj następującego polecenia programu PowerShell:
Add-ClusterResource -Name dnn-demo `
-ResourceType "Distributed Network Name" -Group "SQL Server (MSSQLSERVER)"
Ustawianie nazwy DNS nazwy dns nazwy sieci rozproszonej klastra
Ustaw nazwę DNS zasobu nazwy sieci rozproszonej w klastrze. Następnie klaster używa tej wartości do kierowania ruchu do węzła, który obecnie hostuje wystąpienie klastra trybu failover programu SQL Server.
Klienci używają nazwy DNS do nawiązywania połączenia z wystąpieniem klastra trybu failover programu SQL Server. Możesz wybrać unikatową wartość. Ewentualnie jeśli masz już istniejący wystąpienie klastra trybu failover i nie chcesz aktualizować parametry połączenia klienta, możesz skonfigurować nazwę sieci rozproszonej tak, aby korzystała z bieżącej nazwy sieci wirtualnej, z której korzystają już klienci. W tym celu należy zmienić nazwę nazwy sieci wirtualnej przed ustawieniem nazwy sieci rozproszonej w systemie DNS.
Użyj tego polecenia, aby ustawić nazwę DNS dla nazwy sieci rozproszonej:
Get-ClusterResource -Name <dnnResourceName> | `
Set-ClusterParameter -Name DnsName -Value <DNSName>
Wartość DNSName
jest używana przez klientów do nawiązywania połączenia z wystąpieniem klastra trybu failover programu SQL Server. Na przykład aby klienci nawiązywali FCIDNN
połączenie z usługą , użyj następującego polecenia programu PowerShell:
Get-ClusterResource -Name dnn-demo | `
Set-ClusterParameter -Name DnsName -Value FCIDNN
Klienci będą teraz wprowadzać FCIDNN
do parametry połączenia podczas nawiązywania połączenia z wystąpieniem klastra trybu failover programu SQL Server.
Ostrzeżenie
Nie usuwaj bieżącej nazwy sieci wirtualnej (VNN), ponieważ jest to niezbędny składnik infrastruktury wystąpienia klastra trybu failover.
Zmienianie nazwy sieci wirtualnej
Jeśli masz istniejącą nazwę sieci wirtualnej i chcesz, aby klienci nadal używali tej wartości w celu nawiązania połączenia z wystąpieniem klastra trybu failover programu SQL Server, musisz zmienić nazwę bieżącej nazwy sieci wirtualnej na wartość symbolu zastępczego. Po zmianie nazwy bieżącej nazwy sieci wirtualnej można ustawić wartość nazwy DNS dla nazwy sieci rozproszonej na nazwę sieci wirtualnej.
Niektóre ograniczenia dotyczą zmiany nazwy sieci wirtualnej. Aby uzyskać więcej informacji, zobacz Zmiana nazwy wystąpienia klastra trybu failover.
Jeśli w twojej firmie nie jest wymagana bieżąca nazwa sieci wirtualnej, pomiń tę sekcję. Po zmianie nazwy nazwy sieci VNN ustaw nazwę DNS nazwy dns nazwy klastra.
Ustawianie zasobu sieci rozproszonej w trybie online
Po odpowiednim nazwaniu zasobu nazwy sieci rozproszonej i ustawieniu wartości nazwy DNS w klastrze użyj programu PowerShell, aby ustawić zasób nazwy sieci rozproszonej w trybie online w klastrze:
Start-ClusterResource -Name <dnnResourceName>
Aby na przykład uruchomić zasób dnn-demo
sieci rozproszonej, użyj następującego polecenia programu PowerShell:
Start-ClusterResource -Name dnn-demo
Konfigurowanie możliwych właścicieli
Domyślnie klaster wiąże nazwę DNS nazwy sieci rozproszonej ze wszystkimi węzłami w klastrze. Jednak węzły w klastrze, które nie są częścią wystąpienia klastra trybu failover programu SQL Server, powinny być wykluczone z listy możliwych właścicieli sieci rozproszonej.
Aby zaktualizować możliwych właścicieli, wykonaj następujące kroki:
Przejdź do zasobu sieci rozproszonej w Menedżerze klastra trybu failover.
Kliknij prawym przyciskiem myszy zasób nazwy sieci rozproszonej i wybierz polecenie Właściwości.
Wyczyść pole wyboru dla wszystkich węzłów, które nie uczestniczą w wystąpieniu klastra trybu failover. Lista możliwych właścicieli zasobu nazwy sieci rozproszonej powinna być zgodna z listą możliwych właścicieli zasobu wystąpienia programu SQL Server. Na przykład przy założeniu, że usługa Data3 nie uczestniczy w klastrze trybu failover, na poniższej ilustracji przedstawiono przykład usunięcia danych Data3 z listy możliwych właścicieli zasobu sieci rozproszonej:
Wybierz OK, aby zapisać ustawienia.
Uruchom ponownie wystąpienie programu SQL Server
Użyj Menedżera klastra trybu failover, aby ponownie uruchomić wystąpienie programu SQL Server. Wykonaj te kroki:
- Przejdź do zasobu programu SQL Server w Menedżerze klastra trybu failover.
- Kliknij prawym przyciskiem myszy zasób programu SQL Server i przełącz go w tryb offline.
- Gdy wszystkie skojarzone zasoby są w trybie offline, kliknij prawym przyciskiem myszy zasób programu SQL Server i ponownie przełącz go do trybu online.
Aktualizowanie parametry połączenia
Zaktualizuj parametry połączenia dowolnej aplikacji łączącej się z siecią DNN serwera SQL Server i dołącz MultiSubnetFailover=True
do parametry połączenia. Jeśli klient nie obsługuje parametru MultiSubnetFailover, nie jest zgodny z nazwą sieci rozproszonej.
Poniżej przedstawiono przykład parametry połączenia dla nazwy DNN wystąpienia klastra trybu failover SQL o nazwie DNS nazwy FCIDNN:
Data Source=FCIDNN, MultiSubnetFailover=True
Ponadto, jeśli nazwa sieci rozproszonej nie korzysta z oryginalnej nazwy sieci wirtualnej, klienci SQL łączący się z wystąpieniem klastra trybu failover programu SQL Server będą musieli zaktualizować parametry połączenia do nazwy DNS nazwy sieci rozproszonej. Aby uniknąć tego wymagania, możesz zaktualizować wartość nazwy DNS jako nazwę sieci wirtualnej. Należy jednak najpierw zastąpić istniejącą nazwę sieci VNN symbolem zastępczym.
Testowanie pracy w trybie failover
Przetestuj tryb failover zasobu klastrowanego, aby zweryfikować funkcjonalność klastra.
Aby przetestować tryb failover, wykonaj następujące kroki:
- Połącz się z jednym z węzłów klastra programu SQL Server przy użyciu protokołu RDP lub bastionu.
- Otwórz przystawkę Menedżer klastra trybu failover. Wybierz pozycję Role. Zwróć uwagę, który węzeł jest właścicielem roli wystąpienia klastra trybu failover programu SQL Server.
- Kliknij prawym przyciskiem myszy rolę wystąpienia klastra trybu failover programu SQL Server.
- Wybierz pozycję Przenieś, a następnie wybierz pozycję Najlepszy możliwy węzeł.
Menedżer klastra trybu failover pokazuje rolę, a jej zasoby przechodzą w tryb offline. Zasoby następnie przenoszą się i wracają do trybu online w innym węźle.
Testowanie łączności
Aby przetestować łączność, zaloguj się do innej maszyny wirtualnej w tej samej sieci wirtualnej. Otwórz program SQL Server Management Studio i połącz się z wystąpieniem klastra trybu failover programu SQL Server przy użyciu nazwy DNS nazwy sieci rozproszonej.
Jeśli chcesz, możesz pobrać program SQL Server Management Studio.
Unikanie konfliktu adresów IP
Jest to opcjonalny krok uniemożliwiający przypisanie wirtualnego adresu IP (VIP) używanego przez zasób wystąpienia klastra trybu failover do innego zasobu na platformie Azure jako duplikat.
Mimo że klienci używają nazwy sieci rozproszonej do nawiązywania połączenia z wystąpieniem klastra trybu failover programu SQL Server, nie można usunąć nazwy sieci wirtualnej i wirtualnego adresu IP, ponieważ są to niezbędne składniki infrastruktury wystąpienia klastra trybu failover. Jednak ponieważ nie istnieje już moduł równoważenia obciążenia rezerwujący wirtualny adres IP na platformie Azure, istnieje ryzyko, że inny zasób w sieci wirtualnej zostanie przypisany ten sam adres IP co wirtualny adres IP używany przez usługę FCI. Może to potencjalnie prowadzić do zduplikowanego problemu z konfliktem adresów IP.
Skonfiguruj adres APIPA lub dedykowaną kartę sieciową, aby zarezerwować adres IP.
Adres APIPA
Aby uniknąć używania zduplikowanych adresów IP, skonfiguruj adres APIPA (znany również jako adres lokalny linku). W tym celu uruchom następujące polecenie:
Get-ClusterResource "virtual IP address" | Set-ClusterParameter
–Multiple @{"Address"="169.254.1.1";"SubnetMask"="255.255.0.0";"OverrideAddressMatch"=1;"EnableDhcp"=0}
W tym poleceniu "wirtualny adres IP" jest nazwą zasobu klastrowanego adresu VIP, a "169.254.1.1" to adres APIPA wybrany dla adresu VIP. Wybierz adres, który najlepiej odpowiada Twojej firmie. Ustaw OverrideAddressMatch=1
opcję zezwalania na używanie adresu IP w dowolnej sieci, w tym przestrzeni adresowej APIPA.
Dedykowana karta sieciowa
Alternatywnie skonfiguruj kartę sieciową na platformie Azure, aby zarezerwować adres IP używany przez zasób wirtualnego adresu IP. Jednak korzysta to z adresu w przestrzeni adresowej podsieci i istnieje dodatkowe obciążenie związane z zapewnieniem, że karta sieciowa nie jest używana w żadnym innym celu.
Ograniczenia
- Klient nawiązujący połączenie z odbiornikiem sieci rozproszonej musi obsługiwać
MultiSubnetFailover=True
parametr w parametry połączenia. - Podczas pracy z innymi funkcjami programu SQL Server i wystąpieniem klastra trybu failover z siecią DNN może być więcej zagadnień. Aby uzyskać więcej informacji, zobacz FcI with DNN interoperability (Interfejs fcI z współdziałaniem sieci rozproszonej sieci rozproszonej).
Następne kroki
Aby dowiedzieć się więcej, zobacz:
- Klaster trybu failover systemu Windows Server z programem SQL Server na maszynach wirtualnych platformy Azure
- Wystąpienia klastra trybu failover z programem SQL Server na maszynach wirtualnych platformy Azure
- Omówienie wystąpienia klastra trybu failover
- Ustawienia usługi HADR dla programu SQL Server na maszynach wirtualnych platformy Azure