Wysoka dostępność usługi Azure SQL Managed Instance

Dotyczy:Azure SQL Managed Instance

W tym artykule opisano wysoką dostępność w usłudze Azure SQL Managed Instance.

Ważne

Konfiguracja strefowo nadmiarowa jest dostępna w publicznej wersji zapoznawczej dla warstwy usługi Ogólnego przeznaczenia i ogólnie dostępna dla warstwy usługi Krytyczne dla działania firmy.

Omówienie

Celem architektury wysokiej dostępności w usłudze Azure SQL Managed Instance jest zminimalizowanie wpływu na obciążenia klientów z zainicjowanych przez klienta operacji zarządzania, które powodują krótki przestój, operacje konserwacji usług i nieplanowane awarie. Aby uzyskać więcej informacji na temat określonych umów SLA dla różnych warstw usług, zapoznaj się z tematem Azure SQL Managed Instance.

Wysoka dostępność chroni cię przed wpływem na:

  • Strefa dostępności, która tworzy centrum danych (w przypadku regionu z wieloma strefami)
  • Stojak, w którym węzły zasilające usługę są uruchomione
  • Sam węzeł
  • Warstwa aplikacji

Aby zminimalizować wpływ w przypadku awarii regionalnych lub większych, możesz użyć jednej z dostępnych technik omówionych w naszym przeglądzie ciągłości działania.

Wystąpienie zarządzane SQL działa w najnowszej stabilnej wersji aparatu bazy danych programu SQL Server w systemie operacyjnym Windows ze wszystkimi odpowiednimi poprawkami. Usługa SQL Managed Instance automatycznie obsługuje krytyczne zadania obsługi, takie jak stosowanie poprawek, kopie zapasowe, uaktualnienia systemu Windows i aparatu SQL oraz nieplanowane zdarzenia, takie jak awarie sprzętu, oprogramowania lub sieci. Jeśli wystąpienie jest poprawiane lub przechodzi w tryb failover, przestoje nie mają wpływu na zastosowanie logiki ponawiania prób w aplikacji. Usługa SQL Managed Instance może szybko odzyskiwać dane nawet w najbardziej krytycznych okolicznościach, zapewniając, że dane są zawsze dostępne. Większość użytkowników nie zauważa, że uaktualnienia są wykonywane w sposób ciągły.

Rozwiązanie o wysokiej dostępności zostało zaprojektowane w celu zapewnienia, że zatwierdzone dane nigdy nie zostaną utracone z powodu awarii, operacje konserwacji nie wpływają na obciążenie i że wystąpienie nie będzie pojedynczym punktem awarii w architekturze oprogramowania.

Istnieją dwa różne modele architektury wysokiej dostępności oparte na warstwie usługi:

  • Model magazynu zdalnego opiera się na rozdzieleniu zasobów obliczeniowych i magazynu w warstwach usług Ogólnego przeznaczenia i Next-gen ogólnego przeznaczenia, które opierają się na wysokiej dostępności i niezawodności magazynu zdalnego oraz wysokiej dostępności klastrów obliczeniowych zarządzanych przez usługę Azure Service Fabric. Ten model wysokiej dostępności jest przeznaczony dla aplikacji biznesowych zorientowanych na budżet, które mogą tolerować obniżenie wydajności podczas działań konserwacyjnych.
  • Lokalny model magazynu jest oparty na klastrze procesów aparatu bazy danych, które opierają się na kworum dostępnych węzłów aparatu bazy danych w warstwie usługi Krytyczne dla działania firmy, która ma magazyn lokalny. Ten lokalny model magazynu jest przeznaczony dla aplikacji o krytycznym znaczeniu, które mają wysoką szybkość transakcji i wymagają wysokiej wydajności operacji we/wy. Architektura wysokiej dostępności gwarantuje minimalny wpływ na wydajność obciążenia podczas działań konserwacyjnych.

Dostępność lokalnie nadmiarowa

Dostępność lokalnie nadmiarowa jest oparta na przechowywaniu węzłów obliczeniowych i danych w jednym centrum danych w regionie podstawowym i chroni dane w przypadku awarii lokalnej, takiej jak awaria sieci na małą skalę lub awaria zasilania. Jeśli w regionie wystąpi awaria na dużą skalę, taka jak pożar lub powodzia, wszystkie repliki konta magazynu lub danych w węzłach obliczeniowych mogą zostać utracone lub nieodwracalne. W związku z tym, aby dodatkowo chronić dane podczas korzystania z opcji dostępności lokalnie nadmiarowej, rozważ użycie bardziej odpornej opcji magazynu dla kopii zapasowych bazy danych.

Warstwa usługi Ogólnego przeznaczenia

Warstwa usługi Ogólnego przeznaczenia używa architektury dostępności magazynu zdalnego. Na poniższym rysunku przedstawiono cztery różne węzły z oddzielnymi warstwami obliczeniowymi i warstwami magazynu.

Diagram przedstawiający rozdzielenie zasobów obliczeniowych i magazynu.

Model dostępności magazynu zdalnego obejmuje dwie warstwy:

  • Bezstanowa warstwa obliczeniowa, która uruchamia proces aparatu bazy danych i zawiera tylko przejściowe i buforowane dane, takie jak tempdb bazy danych i model na dołączonym dysku SSD, pamięć podręczna planu, pula buforów i pula magazynu kolumn w pamięci. Ten bezstanowy węzeł jest obsługiwany przez usługę Azure Service Fabric , która inicjuje aparat bazy danych, kontroluje kondycję węzła i w razie potrzeby wykonuje przejście w tryb failover do innego węzła.
  • Stanowa warstwa danych z plikami bazy danych (.mdf i .ldf) przechowywana w usłudze Azure Blob Storage. Usługa Azure Blob Storage ma wbudowane funkcje dostępności i nadmiarowości danych. Dostępność lokalnie nadmiarowa jest oparta na przechowywaniu danych w magazynie lokalnie nadmiarowym (LRS), który kopiuje dane trzy razy w jednym centrum danych w regionie podstawowym. Gwarantuje to, że każdy rekord w pliku dziennika lub stronie w pliku danych zostanie zachowany, nawet jeśli proces aparatu bazy danych ulegnie awarii.

Za każdym razem, gdy aparat bazy danych lub system operacyjny zostanie uaktualniony lub zostanie wykryty błąd, usługa Azure Service Fabric przeniesie bezstanowy proces aparatu bazy danych do innego bezstanowego węzła obliczeniowego z wystarczającą ilością wolnej pojemności. Przeniesienie danych w usłudze Azure Blob Storage nie ma wpływu na dane, a pliki danych/dziennika są dołączane do nowo zainicjowanego procesu aparatu bazy danych. Ten proces gwarantuje wysoką dostępność, ale duże obciążenie może spowodować obniżenie wydajności podczas przejścia, ponieważ nowy proces aparatu bazy danych rozpoczyna się od zimnej pamięci podręcznej.

Warstwa usługi Ogólnego przeznaczenia następnej generacji

Uwaga

Uaktualnienie warstwy usługi Ogólnego przeznaczenia następnej generacji jest obecnie dostępne w wersji zapoznawczej.

Next-gen Ogólnego przeznaczenia to uaktualnienie architektury do istniejącej warstwy usługi Ogólnego przeznaczenia, która używa uaktualnionej warstwy magazynu zdalnego, która przechowuje dane wystąpień i pliki dziennika na dyskach zarządzanych zamiast stronicowych obiektów blob.

warstwa usługi Krytyczne dla działania firmy

Warstwa usługi Krytyczne dla działania firmy korzysta z lokalnego modelu dostępności magazynu, który integruje zasoby obliczeniowe (proces aparatu bazy danych) i magazyn (lokalnie dołączony dysk SSD) w jednym węźle. Wysoka dostępność jest osiągana przez replikowanie zasobów obliczeniowych i magazynu do dodatkowych węzłów.

Diagram przedstawiający klaster węzłów aparatu bazy danych.

Podstawowe pliki bazy danych (.mdf/.ldf) są umieszczane w dołączonym magazynie SSD w celu zapewnienia bardzo małych opóźnień we/wy dla obciążenia. Wysoka dostępność jest implementowana przy użyciu technologii podobnej do zawsze włączonych grup dostępności programu SQL Server. Klaster zawiera jedną replikę podstawową dostępną dla obciążeń klientów odczytu i zapisu oraz maksymalnie trzy repliki pomocnicze (obliczeniowe i magazynowe), które zawierają kopie danych. Replika podstawowa stale wypycha zmiany do replik pomocniczych sekwencyjnie, aby upewnić się, że dane są utrwalane na wystarczającej liczbie replik pomocniczych przed zatwierdzeniem każdej transakcji. Ten proces gwarantuje, że jeśli replika podstawowa lub replika pomocnicza z możliwością odczytu staną się niedostępne z jakiegokolwiek powodu, w pełni zsynchronizowana replika jest zawsze dostępna w trybie failover. Tryb failover jest inicjowany przez usługę Azure Service Fabric. Gdy replika pomocnicza stanie się nową repliką podstawową, zostanie utworzona inna replika pomocnicza, aby upewnić się, że klaster ma wystarczającą liczbę replik do obsługi kworum. Po zakończeniu pracy w trybie failover połączenia usługi Azure SQL są automatycznie przekierowywane do nowej repliki podstawowej (lub repliki pomocniczej z możliwością odczytu na podstawie parametry połączenia).

Dodatkową korzyścią jest możliwość przekierowywania połączeń usługi Azure SQL tylko do odczytu z jedną z replik pomocniczych. Ta funkcja jest nazywana skalowaniem odczytu w poziomie. Zapewnia ona 100% dodatkowej pojemności obliczeniowej bez dodatkowych opłat za operacje tylko do odczytu, takie jak obciążenia analityczne, z repliki podstawowej.

Dostępność strefowo nadmiarowa

Dostępność strefowo nadmiarowa jest oparta na umieszczaniu węzłów obliczeniowych i replik magazynu w trzech strefach dostępności platformy Azure w regionie podstawowym. Każda strefa dostępności jest oddzielną lokalizacją fizyczną z niezależnym zasilaniem, chłodzeniem i siecią.

Domyślnie klaster węzłów dla lokalnego modelu dostępności magazynu jest tworzony w tym samym centrum danych. Wraz z wprowadzeniem usługi Azure Strefy dostępności usługa SQL Managed Instance może umieścić różne repliki wystąpienia Krytyczne dla działania firmy w różnych strefach dostępności w tym samym regionie. W ten sam sposób węzły obliczeniowe bezstanowe warstwy usługi Ogólnego przeznaczenia są umieszczane w innej strefie dostępności, podczas gdy magazyn stanowy używa konfiguracji magazynu strefowo nadmiarowego (ZRS ).

Aby wyeliminować pojedynczy punkt awarii, pierścień kontrolny jest również duplikowany w wielu strefach jako trzy pierścienie bramy (GW). Routing do określonego pierścienia bramy jest kontrolowany przez usługę Azure Traffic Manager (ATM). Wybierając konfigurację strefowo nadmiarową, możesz sprawić, że wystąpienia Krytyczne dla działania firmy lub ogólnego przeznaczenia będą odporne na znacznie większy zestaw awarii, w tym katastrofalne awarie centrum danych bez żadnych zmian logiki aplikacji. Możesz również przekonwertować wszystkie istniejące wystąpienia Krytyczne dla działania firmy lub Ogólnego przeznaczenia na konfigurację strefowo nadmiarową.

Ponieważ wystąpienia strefowo nadmiarowe mają repliki w różnych centrach danych z pewną odległością między nimi, zwiększone opóźnienie sieci może zwiększyć czas zatwierdzania transakcji, a tym samym wpłynąć na wydajność niektórych obciążeń OLTP. Zawsze można wrócić do konfiguracji z jedną strefą, wyłączając ustawienie nadmiarowości strefy. Ten proces jest operacją online podobną do zwykłego uaktualnienia celu warstwy usług. Na końcu procesu wystąpienie jest migrowane z pierścienia strefowo nadmiarowego do pierścienia jednostrefowego lub odwrotnie.

Wersja strefowo nadmiarowa architektury wysokiej dostępności przedstawiono na poniższym diagramie:

Diagram architektury wysokiej dostępności strefowo nadmiarowej.

Podczas korzystania z nadmiarowości strefowej należy wziąć pod uwagę następujące kwestie:

  • Nadmiarowość strefy nie jest dostępna dla warstwy usługi Ogólnego przeznaczenia następnej generacji.
  • Aby uzyskać aktualne informacje o regionach obsługujących konfiguracje strefowo nadmiarowe, zobacz Usługi obsługiwane przez region.
  • W przypadku dostępności strefowo nadmiarowej wybierz okno obsługi inne niż domyślne jest obecnie dostępne w wybranych regionach.

Obsługiwane regiony dla wystąpień Krytyczne dla działania firmy

Nadmiarowość strefy dla usługi Krytyczne dla działania firmy SQL Managed Instance jest obsługiwana w następujących regionach:

Ameryka Północna i Południowa Europa Bliski Wschód Afryka Azja i Pacyfik
Brazylia Południowa Francja Środkowa Katar Środkowy Północna Republika Południowej Afryki Australia Wschodnia
Kanada Środkowa Włochy Północne Izrael Centralny Indie Środkowe
Central US Niemcy Środkowo-Zachodnie Japonia Wschodnia
Wschodnie stany USA Norwegia Wschodnia Korea Środkowa
Wschodnie stany USA 2 Europa Północna Southeast Asia
South Central US Południowe Zjednoczone Królestwo Azja Wschodnia
Zachodnie stany USA 2 Szwecja Środkowa
Zachodnie stany USA 3 Szwajcaria Północna
Polska Środkowa

Obsługiwane regiony dla wystąpień ogólnego przeznaczenia

Uwaga

Konfiguracja strefowo nadmiarowa jest dostępna w publicznej wersji zapoznawczej dla warstwy usługi Ogólnego przeznaczenia.

Ameryka Północna i Południowa Europa Bliski Wschód Afryka Azja i Pacyfik
Brazylia Południowa Francja Środkowa Katar Środkowy Północna Republika Południowej Afryki Australia Wschodnia
Wschodnie stany USA Włochy Północne Izrael Centralny Indie Centralne
Wschodnie stany USA 2 Niemcy Środkowo-Zachodnie Japonia Wschodnia
South Central US Norwegia Wschodnia Korea Środkowa
Zachodnie stany USA 2 Europa Północna Southeast Asia
Zachodnie stany USA 3 Południowe Zjednoczone Królestwo Azja Wschodnia
Szwecja Środkowa
Szwajcaria Północna
Polska Środkowa

Testowanie odporności błędów aplikacji

Wysoka dostępność to podstawowa część platformy SQL Managed Instance, która działa w sposób niewidoczny dla aplikacji bazy danych. Wiemy jednak, że warto przetestować, jak automatyczne operacje trybu failover inicjowane podczas planowanych lub nieplanowanych zdarzeń będą miały wpływ na aplikację przed wdrożeniem jej w środowisku produkcyjnym. Możesz ręcznie wyzwolić tryb failover przez wywołanie specjalnego interfejsu API w celu ponownego uruchomienia wystąpienia zarządzanego. W przypadku wystąpienia strefowo nadmiarowego wywołanie interfejsu API spowodowałoby przekierowanie połączeń klienta do nowego podstawowego wystąpienia w strefie dostępności innej niż strefa dostępności starego podstawowego. Oprócz testowania wpływu pracy w tryb failover na istniejące sesje bazy danych można również sprawdzić, czy zmienia on kompleksową wydajność ze względu na zmiany opóźnienia sieci. Ponieważ operacja ponownego uruchamiania jest natrętna i duża ich liczba może przeciążyć platformę, tylko jedno wywołanie trybu failover jest dozwolone co 15 minut dla każdego wystąpienia zarządzanego.

Tryb failover można zainicjować przy użyciu programu PowerShell, interfejsu API REST lub interfejsu wiersza polecenia platformy Azure:

Program PowerShell Interfejs API REST Interfejs wiersza polecenia platformy Azure
Invoke-AzSqlInstanceFailover SQL Managed Instance — tryb failover az sql mi failover może służyć do wywoływania wywołania interfejsu API REST z interfejsu wiersza polecenia platformy Azure

Podsumowanie

Usługa Azure SQL Managed Instance oferuje wbudowane rozwiązanie wysokiej dostępności, które jest głęboko zintegrowane z platformą Azure. Usługa zależy od usługi Service Fabric do wykrywania awarii i odzyskiwania, usługi Azure Blob Storage w celu ochrony danych oraz Strefy dostępności w celu zapewnienia większej odporności na uszkodzenia. W przypadku warstwy usługi Krytyczne dla działania firmy usługa SQL Managed Instance używa technologii zawsze włączonej grupy dostępności programu SQL Server na potrzeby replikacji bazy danych i trybu failover. Połączenie tych technologii pozwala aplikacjom w pełni wykorzystać zalety modelu magazynu mieszanego i obsługiwać najbardziej wymagające umowy SLA.

Następne kroki