Architektura distribuovaných funkcí Hyperscale

Platí pro:Azure SQL Database

Azure SQL Database Hyperscale je nákladově efektivní a vysoce výkonná databázová úroveň. Tento článek podrobně popisuje vysoce škálovatelnou architekturu Hyperscale, která obsahuje samostatné úrovně úložiště a výpočetních prostředků, rychlé škálování, téměř okamžité zálohování a rychlé obnovení, škálování na více čtení a vysokou propustnost čtení a zápisu.

Přehled architektury Hyperscale

Tradiční databázové stroje centralují funkce správy dat v jednom procesu: i tak označované distribuované databáze v produkčním prostředí dnes mají více kopií monolitického datového stroje.

Databáze Hyperscale se řídí jiným přístupem. Hyperscale odděluje modul pro zpracování dotazů, kde se sémantika různých datových modulů liší od komponent, které poskytují dlouhodobé úložiště a stálost dat. Tímto způsobem je možné kapacitu úložiště hladce škálovat podle potřeby až na 128 TB pro jednu databázi Hyperscale.

Databáze Hyperscale obsahuje následující typy komponent: výpočetní uzly, stránkové servery, službu protokolů a úložiště Azure. Veškerá síťová komunikace mezi komponentami Hyperscale využívá síťovou infrastrukturu Azure s integrovanou redundancí.

Sekundární repliky s vysokou dostupností a pojmenované repliky jsou volitelné výpočetní uzly, které lze přidat podle potřeby. Obě sdílejí stejné součásti úložiště, takže ke spuštění nové repliky se nevyžaduje žádná kopie dat. Geograficky sekundární repliku je možné přidat na vyžádání ve stejné nebo jiné oblasti Azure. Pro ochranu dat a redundanci mají sekundární repliky úložiště komponenty, které jsou oddělené od komponent používaných primární replikou.

Následující diagram znázorňuje funkční architekturu Hyperscale:

Diagram znázorňující úroveň výpočetních prostředků Hyperscale

Diagram znázorňuje následující komponenty:
A. Compute: Hyperscale odděluje hlavní databázový stroj, označovaný jako Compute, od komponent protokolování transakcí a úložiště dat.
B. Úložiště: Komponenty, které poskytují dlouhodobé úložiště a odolnost dat, jsou oddělené od hlavního databázového stroje. Datové soubory se ukládají do samostatných objektů blob úložiště Azure. Data v úložišti Azure poskytují redundanci pro obnovení stránkového serveru z důvodu selhání.
C. Stránkové servery: Stránkové servery načítají data z datových souborů ve vrstvě úložiště, ukládají je do místní mezipaměti SSD a poskytují data hlavnímu modulu. Místní mezipaměť SSD se přidělí na základě velikosti výpočetní kapacity, aby se zachovaly aktivní/častěji používané datové stránky. Stránkové servery se zvětšují s rostoucí velikostí databáze. Každý stránkový server spravuje až 128 GB dat.
D. Služba protokolů: Databáze Hyperscale používá službu protokolů ke koordinaci šíření transakčních protokolů na repliky a serverové stránky.
E. Pojmenované repliky: Pojmenované repliky mají vlastní výpočetní prostředky, ale používají stejnou službu protokolů. Můžete mít až 30 pojmenovaných replik. Každá pojmenovaná replika může mít až 4 vysoce dostupné repliky.
F. Repliky s vysokou dostupností: Repliky s vysokou dostupností jsou volitelné pohotovostní kopie, primární, geografické nebo pojmenované repliky připravené k převzetí služeb při výpadku a dostupné jen k čtení. Každá primární a pojmenovaná replika může mít až 4 repliky s vysokou dostupností.

Compute

Výpočetní uzel je místo, kde se nachází relační modul. Výpočetní uzel je místo, kde probíhá zpracování jazyka, dotazu a transakcí. Všechny interakce uživatelů s databází Hyperscale probíhají prostřednictvím výpočetních uzlů. Výpočetní uzly je možné nakonfigurovat tak, aby používaly bezserverové nebo zřízené výpočetní prostředky.

Výpočetní uzly mají lokální mezipaměti využívající SSD, nazývané Resilient Buffer Pool Extension (datová mezipaměť RBPEX). Mezipaměť dat RBPEX je inteligentní mezipaměť dat s nízkou latencí, která minimalizuje potřebu načítání dat ze vzdálených stránkových serverů.

Databáze Hyperscale mají jeden primární výpočetní uzel, kde se zpracovávají úlohy čtení a zápisu a transakce. Na vyžádání je možné přidat až čtyři sekundární výpočetní uzly s vysokou dostupností. Fungují jako uzly v režimu hot standby pro převzetí služeb při selhání a v případě potřeby můžou sloužit jako výpočetní uzly pouze pro čtení, aby odlehčily zátěži při čtení. Pojmenované repliky jsou sekundární výpočetní uzly navržené tak, aby umožňovaly různé další scénáře horizontálního škálování čtení OLTP a k lepší podpoře úloh HTAP (Hybrid Transactional and Analytical Processing). Geograficky sekundární výpočetní uzel lze přidat pro účely zotavení po havárii a může sloužit jako výpočetní uzel pouze pro čtení k odlehčení úloh čtení v jiné oblasti Azure.

V režimu serverless se primární replika a veškeré repliky s vysokou dostupností i pojmenované repliky automaticky škálují nezávisle na základě svého využití. Rozsah automatického škálování výpočetních prostředků pro primární repliku a jakékoli pojmenované repliky se konfigurují samostatně. Rozsah automatického škálování všech replik s vysokou dostupností se přebírá z konfigurace automatického škálování nastavené pro jejich přidruženou primární repliku nebo pojmenovanou repliku.

Databázový stroj běžící na výpočetních uzlech Hyperscale je stejný jako v jiných úrovních služby Azure SQL Database. Když uživatelé interagují s databázovým enginem na výpočetních uzlech Hyperscale, rozsah podporovaných funkcí a chování enginu jsou stejné jako v jiných úrovních služby, s výjimkou známých omezení.

Server stránek

Page servery jsou systémy představující horizontálně škálované úložné jádro. Každý stránkový server zodpovídá za podmnožinu stránek v databázi. Každý stránkový server má také repliku, která se uchovává kvůli redundanci a dostupnosti.

Úlohou stránkového serveru je na vyžádání poskytovat databázové stránky výpočetním uzlům a udržovat tyto stránky aktuální při aktualizaci dat transakcemi. Stránkové servery jsou udržovány aktuální přehráváním záznamů transakčního protokolu ze služby protokolu.

Stránkové servery také udržují doplňkové mezipaměti na bázi SSD pro zvýšení výkonu. Dlouhodobé ukládání datových stránek se uchovává ve službě Azure Storage kvůli stálosti.

Služba protokolování

Služba protokolu přijímá záznamy transakčního protokolu, které odpovídají změnám dat z primární výpočetní repliky. Page servery pak přijímají záznamy logů ze služby logů a aplikují změny na své příslušné části dat. Kromě toho výpočetní sekundární repliky přijímají záznamy protokolu ze služby protokolů a přehrávají pouze změny stránek, které jsou již ve fondu vyrovnávací paměti nebo místní mezipaměti RBPEX. Všechny změny dat z primární výpočetní repliky se šíří prostřednictvím služby protokolu do všech sekundárních výpočetních replik a stránkových serverů.

Nakonec se záznamy transakčního protokolu odsílají do dlouhodobého úložiště ve službě Azure Storage, což je prakticky nekonečné úložiště. Tento mechanismus eliminuje potřebu častého zkrácení protokolu. Běžné důvody růstu protokolů, jako jsou zmeškané zálohy protokolů nebo pomalé replikace dat do sekundárních replik, se nevztahují na Hyperscale. Služba protokolů má místní paměť a mezipaměti SSD, které urychlují přístup k záznamům protokolů.

Úložiště Azure

Azure Storage obsahuje všechny datové soubory v databázi. Stránkové servery udržují datové soubory ve službě Azure Storage aktuální. Toto úložiště se také používá pro účely zálohování a dá se replikovat mezi oblastmi na základě výběru redundance úložiště.

Zálohy se implementují pomocí snímků úložiště datových souborů. Operace obnovení pomocí snímků jsou rychlé bez ohledu na velikost dat. Databázi je možné obnovit k jakémukoli bodu v čase v rámci její doby uchovávání záloh.

Hyperscale podporuje konfigurovatelnou redundanci úložiště. Při vytváření databáze Hyperscale si můžete vybrat z následujících typů služby Azure Standard Storage:

  • Místně redundantní úložiště (LRS)
  • Zónově redundantní úložiště (ZRS)
  • Geograficky redundantní úložiště s přístupem pro čtení (RA-GRS)
  • Geograficky zónově redundantní úložiště s přístupem pro čtení (RA-GZRS)

Možnosti zónově redundantního úložiště jsou dostupné v oblastech Azure s zónami dostupnosti.

Vybraná možnost redundance úložiště se používá po celou dobu životnosti databáze, a to jak pro redundanci úložiště dat, tak pro redundanci úložiště zálohování.