Vysoká dostupnost ve službě Azure Cosmos DB pro virtuální jádro MongoDB
PLATÍ PRO: Virtuální jádro MongoDB
Vysoká dostupnost v jednotlivých oblastech zabraňuje výpadkům databáze tím, že udržuje pohotovostní repliky každého horizontálního oddílu v clusteru. Pokud horizontální oddíl z nějakého důvodu přestane reagovat, Azure Cosmos DB pro mongoDB virtuální jádro přepne příchozí připojení z neúspěšného horizontálního oddílu do pohotovostního režimu. Když dojde k převzetí služeb při selhání, upřednostněné horizontální oddíly vždy mají nová data prostřednictvím synchronní replikace.
Všechny primární horizontální oddíly v clusteru se zřizují do jedné zóny dostupnosti (AZ), aby se zlepšila latence mezi horizontálními oddíly. Pohotovostní horizontální oddíly se zřídí do jiné zóny dostupnosti.
I bez povolené vysoké dostupnosti má každý horizontální oddíl vlastní místně redundantní úložiště (LRS) se třemi synchronními replikami spravovanými službou Azure Storage. Všechny tři repliky se nacházejí v oblasti Azure clusteru. Pokud dojde k selhání jedné repliky, služba Azure Storage ji zjistí a transparentně znovu vytvoří neúspěšnou repliku. Podívejte se na metriky na této stránce o stálosti úložiště LRS.
Pokud je povolená vysoká dostupnost, azure Cosmos DB pro mongoDB virtuální jádro spouští jeden pohotovostní horizontální oddíl pro každý primární horizontální oddíl v clusteru. Každý primární a pohotovostní horizontální oddíl má stejnou konfiguraci výpočetních prostředků a úložiště. Primární a jeho pohotovostní režim používají synchronní replikaci. Tento typ replikace umožňuje vždy mít stejná data v primárních a pohotovostních horizontálních oddílech v clusteru. V maticovémshellu naše služba detekuje selhání v primárních horizontálních oddílech a převezme služby při selhání pohotovostním horizontálním oddílům s nulovou ztrátou dat.
Cluster připojovací řetězec vždy zůstane stejný bez ohledu na převzetí služeb při selhání. To službě umožňuje abstrahovat změny ve fyzických horizontálních oddílech obsluhujících požadavky z aplikací.
Pokud je v clusteru povolená vysoká dostupnost v oblasti, každý horizontální oddíl clusteru se vztahuje na dostupnost 99,99% smlouvy o úrovni služeb (SLA).
Vysokou dostupnost je možné povolit při vytváření clusteru. Vysokou dostupnost je také možné kdykoli povolit a zakázat v existujícím clusteru Azure Cosmos DB pro virtuální jádra MongoDB. Pokud je v clusteru virtuálních jader Azure Cosmos DB pro MongoDB povolená nebo zakázaná vysoká dostupnost, neexistuje žádný výpadek databáze.
Co se stane během převzetí služeb při selhání
Každé převzetí služeb při selhání horizontálních oddílů se skládá ze tří fází: detekce nedostupnosti, přepnutí na pohotovostní horizontální oddíl a opětovné vytvoření pohotovostního horizontálního oddílu. Služba provádí průběžné monitorování dostupnosti jednotlivých primárních a pohotovostních horizontálních oddílů v clusteru pomocí pravidelné kontroly stavu. Když kontrola stavu spolehlivě indikuje, že horizontální oddíl přestal reagovat a musí být deklarován jako neúspěšný, skutečné převzetí služeb při selhání (přepnutí) do pohotovostního horizontálního oddílu se zahájí.
Během fáze přepnutí se čtení a zápisy databáze přesměrují do pohotovostního horizontálního oddílu. Synchronní replikace mezi jednotlivými primárními a pohotovostními horizontálními oddíly zajišťuje, že pohotovostní horizontální oddíl bude mít vždy stejnou sadu dat jako primární. To umožňuje provádět všechna převzetí služeb při selhání s nulovou ztrátou dat. Přepínač do pohotovostního režimu se provádí bez výpadků čtení. Operace zápisu můžou během fáze přepnutí vyžadovat interní opakování služby. Tyto opakování se můžou na straně aplikace považovat za pomalé zápisy.
Po dokončení převzetí služeb při selhání horizontálního oddílu je cluster plně funkční. Posledním krokem pro návrat k původní konfiguraci s vysokou dostupností je opětovné vytvoření pohotovostního horizontálního oddílu. Toto opětovné vytvoření pohotovostního horizontálního oddílu se provádí bez výpadků nebo dopadu na výkon primárního horizontálního oddílu.