Clustering s více podsítěmi SQL Serveru

platí pro:SQL Server

Cluster s podporou převzetí služeb při selhání s více podsítěmi SQL Serveru je konfigurace, ve které je každý uzel clusteru s podporou převzetí služeb při selhání připojený k jiné podsíti nebo k jiné sadě podsítí. Tyto podsítě můžou být ve stejném umístění nebo v geograficky rozptýlených lokalitách. Shluky v geograficky rozptýlených lokalitách se někdy označují jako roztažené shluky. Vzhledem k tomu, že neexistuje žádné sdílené úložiště, ke kterému mají přístup všechny uzly, data by se měla replikovat mezi úložištěm dat v několika podsítích. Při replikaci dat je k dispozici více než jedna kopie dat. Cluster s podporou převzetí služeb při selhání ve více podsítích proto kromě vysoké dostupnosti poskytuje i řešení pro zotavení po havárii.

Cluster SQL Serveru s podporou převzetí služeb při selhání ve více podsítích (dva uzly, dvě podsítě)

Následující obrázek představuje instanci clusteru s podporou převzetí služeb při selhání se dvěma uzly a dvěma podsítěmi (FCI) v SQL Serveru.

Diagram znázorňující architekturu s více podsítěmi s multisubnetFailover

Konfigurace instancí clusteru s podporou převzetí služeb při selhání ve více podsítích

Tady je několik příkladů fci SQL Serveru, které používají více podsítí:

  • Sql Server FCI SQLCLUST1 zahrnuje Node1 a Node2. Node1 je připojen k Subnet1. Node2 je připojen k Subnet2. Instalační program SQL Serveru tuto konfiguraci vidí jako cluster s více podsítěmi a nastaví závislost prostředku IP adresy na OR.

  • Sql Server FCI SQLCLUST2 zahrnuje Node1, Node2 a Node3. Uzly 1 a Node2 jsou připojené k podsíti 1. Uzel 3 je připojen k podsíti 2. Instalační program SQL Serveru tuto konfiguraci vidí jako cluster s více podsítěmi a nastaví závislost prostředku IP adresy na OR. Vzhledem k tomu, že Node1 a Node2 jsou ve stejné podsíti, tato konfigurace poskytuje další místní vysokou dostupnost.

  • Sql Server FCI SQLCLUST3 zahrnuje Node1 a Node2. Node1 je v Subnet1. Node2 je v Subnet1 a Subnet2. Instalační program SQL Serveru tuto konfiguraci vidí jako cluster s více podsítěmi a nastaví závislost prostředku IP adresy na OR.

  • Sql Server FCI SQLCLUST4 zahrnuje Node1 a Node2. Node1 je připojen k Subnet1 a Subnet2. Node2 je také připojen k Subnet1 a Subnet2. Instalační program SQL Serveru nastaví závislost prostředku IP adresy na AND.

    Poznámka:

    Tato konfigurace se nepovažuje za konfiguraci clusteru s podporou převzetí služeb při selhání s více podsítěmi, protože clusterované uzly jsou ve stejné sadě podsítí.

Důležité informace o prostředcích IP adres

V konfiguraci clusteru s podporou převzetí služeb při selhání s více podsítěmi nepatří IP adresy všem uzlům v clusteru s podporou převzetí služeb při selhání a při spuštění SQL Serveru nemusí být všechny online. Od verze SQL Serveru 2012 (11.x) lze závislost prostředku IP adresy nastavit na OR. To umožňuje, aby byl SQL Server online, pokud existuje aspoň jedna platná IP adresa, ke které může vytvořit vazbu.

Poznámka:

Ve verzích SQL Serveru před SQL Serverem 2012 (11.x) se v konfiguracích clusterů s více lokalitami používala technologie stretch VLAN ke zpřístupnění jediné IP adresy pro převzetí služeb po selhání napříč lokalitami. Teď, když SQL Server dokáže sdružovat uzly napříč různými podsítěmi, můžete nakonfigurovat clustery převzetí služeb při selhání pro SQL Server napříč několika lokalitami, aniž byste museli implementovat technologii roztažené sítě VLAN.

Důležité informace o prostředcích NEBO závislostech IP adres

Možná budete chtít zvážit následující chování při převzetí služeb při selhání, pokud nastavíte závislost prostředku IP adresy na OR:

  • Pokud dojde k selhání jedné z IP adres na uzlu, který je aktuálně vlastníkem skupiny prostředků clusteru SQL Serveru, automatické převzetí služeb při selhání se nespustí, dokud neselžou všechny IP adresy přiřazené tomuto uzlu.

  • Když dojde k převzetí služeb při selhání, SQL Server se spustí, pokud se může navázat alespoň na jednu IP adresu, která je na aktuálním uzlu platná. IP adresy, které se při spuštění neváže na SQL Server, budou uvedené v protokolu chyb.

Pokud je sql Server FCI nainstalovaný souběžně se samostatnou instancí databázového stroje SQL Serveru, dávejte pozor, abyste se vyhnuli konfliktům čísel portů TCP na IP adresách. Ke konfliktům obvykle dochází, když jsou dvě instance databázového stroje nakonfigurované tak, aby používaly výchozí port TCP (1433). Pokud se chcete vyhnout konfliktům, nakonfigurujte jednu instanci tak, aby používala nedefaultní pevný port. Konfigurace pevného portu je obvykle pro samostatnou instanci jednodušší. Konfigurace databázového stroje tak, aby používala různé porty, brání neočekávaný konflikt IP adresy nebo portu TCP, který blokuje spuštění instance, když sql Server FCI selže s pohotovostním uzlem.

Latence obnovení klienta během převzetí služeb při selhání

Ve výchozím nastavení FCI ve více podsítích povoluje pro svůj síťový název prostředek clusteru RegisterAllProvidersIP. V konfiguraci s více podsítěmi jsou online i offline IP adresy názvu sítě zaregistrované na serveru DNS. Klientská aplikace pak načte všechny registrované IP adresy ze serveru DNS a pokusí se připojit k adresám v pořadí nebo paralelně. To znamená, že doba zotavení klienta při převzetí služeb při selhání ve více podsítích už nezávisí na latenci aktualizací DNS. Ve výchozím nastavení klient zkouší IP adresy v daném pořadí. Když klient použije volitelný parametr MultiSubnetFailover=True ve svém připojovacím řetězci, zkusí místo toho všechny IP adresy současně a připojí se k prvnímu serveru, který zareaguje. Tato konfigurace může pomoct minimalizovat latenci obnovení klienta, když dojde k převzetí služeb při selhání. Další informace viz Připojení klientů Always On (SQL Server) a Vytvoření nebo konfigurace naslouchače skupiny dostupnosti (SQL Server).

U starších klientských knihoven nebo poskytovatelů dat jiných společností než Microsoft nemůžete ve svém připojovacím řetězci použít parametr MultiSubnetFailover . Pokud chcete zajistit optimální fungování klientské aplikace s vícesítí FCI v SQL Serveru, zkuste upravit časový limit připojení v připojovacím řetězci klienta o 21 sekund pro každou další IP adresu. Tato konfigurace zajistí, že časový limit pokusu klienta o opětovné připojení nevyprší dříve, než stihne projít všechny IP adresy ve vašem FCI s více podsítěmi.

Výchozí doba vypršení časového limitu připojení klienta pro sql Server Management Studio a sqlcmd je 15 sekund.

Poznámka:

Pokud používáte více podsítí a staticky nakonfigurovaný server DNS, musíte mít zavedený postup pro aktualizaci záznamu DNS přidruženého k listeneru ještě před provedením přepnutí při selhání. Jinak nebude název sítě dostupný.

Konfigurace agenta SQL Serveru pro převzetí služeb při selhání ve více podsítích a instance clusteru s podporou převzetí služeb při selhání

Když konfigurujete instanci clusteru s více subsítěmi na vlastním portu (kromě 1433), počáteční spojení SQL Server Agent používá MultiSubnetFailover=Yes. Při konfiguraci SQL Server Agent zvažte použití lokálního aliasu na každém uzlu pro směrování na nevýchozí TCP port. Pro více informací viz Problém: SQL Server Agent se nemůže připojit k instanci clusteru s více subsítěmi na vlastním portu.