Architektura distribuovaných funkcí Hyperscale
Platí pro: Azure SQL Database
Úroveň služby Hyperscale využívá architekturu s vysoce škálovatelnými a samostatnými úrovněmi úložiště a výpočetních prostředků. Tento článek popisuje komponenty, které zákazníkům umožňují rychle škálovat databáze Hyperscale a zároveň využívat téměř okamžité zálohování a vysoce škálovatelné protokolování transakcí.
Tip
Zjednodušená cena za hyperškálování služby SQL Database přišla v prosinci 2023. Podrobnosti najdete na blogu s cenami Hyperscale.
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.
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é je možné přidat na vyžádání. 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:
Databáze Hyperscale obsahuje následující typy komponent: výpočetní uzly, stránkové servery, službu protokolů a úložiště Azure.
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í místní mezipaměti založené na SSD označované jako rozšíření odolného fondu vyrovnávacích pamětí (mezipaměť dat 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 aktivní pohotovostní uzly pro účely převzetí služeb při selhání a v případě potřeby můžou sloužit jako výpočetní uzly jen pro č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 navýšení kapacity protokolu OLTP pro čtení a lepší podporu úloh HTAP (Hybrid Transactional And Analytical Processing). Geograficky sekundární výpočetní uzel je možné přidat pro účely zotavení po havárii a sloužit jako výpočetní uzel jen pro čtení, aby se úlohy čtení načítaly v jiné oblasti Azure.
V bezserverové replice a všech replikách s vysokou dostupností nebo pojmenovaných replikách se každá nezávisle automaticky škáluje na základě jejich využití. Rozsah automatického škálování výpočetních prostředků pro primární repliku a všechny pojmenované repliky se konfigurují nezávisle. Rozsah automatického škálování všech replik s vysokou dostupností se dědí z konfigurace automatického škálování určené jejich přidruženou primární nebo pojmenovanou replikou.
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é pracují s databázovým strojem na výpočetních uzlech Hyperscale, podporované chování plochy a modulu jsou stejné jako v jiných úrovních služby s výjimkou známých omezení.
Stránkový server
Stránkovací servery představují systémy představující modul úložiště se škálováním na více systémů. 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 obsluhovat databázové stránky na vyžádání výpočetním uzlům a udržovat stránky aktualizované jako data aktualizace transakcí. Stránkovací servery se uchovávají v aktualizovaném stavu tak, že přehrají záznamy transakčního protokolu ze služby protokolů.
Stránkové servery také udržují pokrytí mezipamětí založených na SSD za účelem 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 protokolu
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. Stránkovací servery pak přijímají záznamy protokolu ze služby protokolů a aplikují změny na příslušné řezy 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í.