12 prosince, 2021

krok za krokem: jak nakonfigurovat instanci clusteru převzetí služeb při selhání SQL Server 2008 R2 na WINDOWS SERVER 2008 R2 v Azure nebo AZURE STACK

9. července 2019 skončí podpora SQL Server 2008 a 2008 R2. To znamená konec pravidelných aktualizací zabezpečení. Pokud však tyto instance serveru SQL přesunete do Azure nebo Azure Stack (pro zbytek průvodce budu jednoduše označovat oba jako Azure), společnost Microsoft vám poskytne tři roky rozšířených aktualizací zabezpečení bez dalších poplatků. Pokud aktuálně používáte SQL Server 2008/2008 R2 a nemůžete aktualizovat na novější verzi serveru SQL Server před termínem 9. července, budete chtít využít této nabídky spíše než riskovat, že budete čelit budoucí bezpečnostní chybě. Neopravená instance serveru SQL by mohla vést ke ztrátě dat, prostojům nebo ničivému narušení dat.

jednou z výzev, kterým budete čelit při spuštění SQL Server 2008/2008 R2 v Azure, je zajištění vysoké dostupnosti. V prostorách může být spuštěn SQL Server Failover Cluster (FCI) instance pro vysokou dostupnost, nebo možná používáte SQL Server ve virtuálním počítači a spoléhají na VMware HA nebo Hyper-v clusteru pro dostupnost. Při přechodu na Azure není k dispozici žádná z těchto možností. Prostoje v Azure jsou velmi reálnou možností, že musíte podniknout kroky ke zmírnění.

s cílem zmírnit možnost prostojů a kvalifikovat se pro Azure 99.95% nebo 99.99% SLA, musíte využít SIOS DataKeeper. DataKeeper překonává nedostatek sdíleného úložiště Azure a umožňuje vám vytvořit SQL Server FCI v Azure, který využívá lokálně připojené úložiště v každé instanci. SIOS DataKeeper podporuje nejen SQL Server 2008 R2 a Windows Server 2008 R2, jak je zdokumentováno v této příručce, podporuje jakoukoli verzi systému Windows Server, od 2008 R2 přes Windows Server 2019 a jakoukoli verzi serveru SQL Server od SQL Server 2008 přes SQL Server 2019.

Tato příručka projde procesem vytvoření instance clusteru Failover cluster s dvěma uzly SQL Server 2008 R2 (FCI)v Azure, běžící na Windows Server 2008 R2. Ačkoli SIOS DataKeeper také podporuje klastry, které pokrývají zóny nebo oblasti dostupnosti, tato příručka předpokládá, že každý uzel je umístěn ve stejné oblasti Azure, ale různé domény poruch. SIOS DataKeeper bude použit místo sdíleného úložiště obvykle potřebné k vytvoření SQL Server 2008 R2 FCI.

předpoklady

Active Directory
tato příručka předpokládá, že máte existující doménu služby Active Directory. Můžete spravovat své vlastní řadiče domény nebo používat doménové služby Azure Active Directory. Pro tento tutoriál se připojíme k doméně zvané contoso.místní. Při sledování tohoto tutoriálu se samozřejmě připojíte k vlastní doméně.

otevřete porty brány Firewall
– SQL Server: 1433 pro výchozí instanci
– Load Balancer Health Probe: 59999
– DataKeeper: tato pravidla brány firewall jsou během instalace automaticky přidána do brány firewall systému Windows host based. Podrobnosti o otevření portů naleznete v dokumentaci SIOS.
– mějte na paměti, že pokud máte nějaké zabezpečení založené na síti, které blokuje porty mezi uzly clusteru, budete muset tyto porty také zohlednit.

účet služby DataKeeper
vytvořte účet domény. Tento účet určíme při instalaci DataKeeper. Tento účet bude muset být přidán do skupiny místních správců v každém uzlu clusteru.

vytvořte první instanci SQL Serveru v Azure

Tato příručka využije SQL Server 2008R2SP3 na obrázku Windows Server 2008R2, který je publikován v Azure Marketplace.

při poskytnutí první instance budete muset vytvořit novou sadu dostupnosti. Během tohoto procesu nezapomeňte zvýšit počet poruchových domén na 3. To umožňuje, aby dva uzly klastru a svědek sdílení souborů byly umístěny ve své vlastní doméně chyb.

pokud ještě nemáte nakonfigurovanou virtuální síť, povolte Průvodci vytvořením vytvořit pro vás novou.

jakmile je instance vytvořena, přejděte do konfigurace IP a nastavte Soukromou IP adresu statickou. To je vyžadováno pro SIOS DataKeeper a je to nejlepší praxe pro clusterové instance.

ujistěte se, že je vaše virtuální síť nakonfigurována tak, aby nastavila server DNS jako místní řadič reklam systému Windows, abyste se mohli později připojit k doméně.

po poskytnutí virtuálních strojů přidejte do každé instance alespoň dva další disky. Doporučuje se Premium nebo Ultra SSD. Zakázat ukládání do mezipaměti na discích používaných pro soubory protokolu SQL. Povolit ukládání do mezipaměti pouze pro čtení na disku použitém pro datové soubory SQL. Další informace o osvědčených postupech ukládání naleznete v pokynech pro výkon serveru SQL Server ve virtuálních strojích Azure.

vytvořte 2. instanci serveru SQL v Azure

postupujte podle stejných kroků jako výše, s výjimkou umístění této instance do stejné virtuální sítě a sady dostupnosti, kterou jste vytvořili s 1.instancí.

Vytvořte instanci svědka sdílení souborů (FSW)

aby Cluster Windows Server Failover Cluster (WSFC) fungoval optimálně, musíte vytvořit jinou instanci systému Windows Server a umístit ji do stejné sady dostupnosti jako instance serveru SQL. Umístěním do stejné sady dostupnosti zajistíte, že každý uzel clusteru a FSW jsou umístěny v různých doménách poruch, zajištění toho, aby váš cluster zůstal zapnutý, pokud by celá doména poruchy zhasla. Tato instance nevyžaduje SQL Server, může to být jednoduchý Windows Server, protože vše, co musíte udělat, je hostit jednoduchou sdílení souborů.

tato instance bude hostit svědka sdílení souborů vyžadovaného WSFC. Tato instance nemusí mít stejnou velikost, ani nevyžaduje připojení dalších disků. Jediným účelem je hostit jednoduchou sdílení souborů. Ve skutečnosti může být použit pro jiné účely. V mém laboratorním prostředí je můj FSW také můj řadič domény.

odinstalujte SQL Server 2008 R2

každá ze dvou poskytnutých instancí SQL Serveru již má nainstalovaný SQL Server 2008 R2. Jsou však nainstalovány jako samostatné instance serveru SQL, nikoli jako clusterové instance. SQL Server musí být odinstalován z každé z těchto instancí, než budeme moci nainstalovat instanci clusteru. Nejjednodušší způsob, jak toho dosáhnout, je spustit nastavení SQL, jak je uvedeno níže.

při spuštění instalace.exe / Action-RunDiscovery uvidíte vše, co je předinstalováno

setup.exe /Action=RunDiscovery

spuštění nastavení.exe / Action = Uninstall / FEATURES = SQL, AS, RS, IS, Tools / INSTANCENAME=MSSQLSERVER zahajuje proces odinstalace

setup.exe /Action=Uninstall /FEATURES=SQL,AS,RS,IS,Tools /INSTANCENAME=MSSQLSERVER

spuštění nastavení.exe / Action-RunDiscovery potvrzuje dokončení odinstalace

setup.exe /Action-RunDiscovery

spusťte tento proces odinstalace znovu na instanci 2nd.

přidat instance do domény

všechny tři tyto instance budou muset být přidány do domény systému Windows. Jak je uvedeno v části předpoklady, musíte mít přístup k připojení k existujícímu systému Windows Active Directory. V našem případě se připojujeme k doméně zvané contoso.místní.

Přidat Windows Failover Clustering funkce

funkce Failover Clustering je třeba přidat do dvou instancí serveru SQL Server

Add-WindowsFeature Failover-Clustering

instalace Convenience kumulativní aktualizace pro Windows Server 2008 R2 SP1

k konfiguraci instance Windows Server 2008 R2 v Azure je nutná kritická aktualizace ( kb2854082). Tato aktualizace a mnoho dalších jsou zahrnuty v pohodlí kumulativní aktualizace pro Windows Server 2008 R2 SP1. Nainstalujte tuto aktualizaci na každou ze dvou instancí serveru SQL.

naformátujte úložiště

další disky, které byly připojeny při poskytnutí dvou instancí serveru SQL, je třeba formátovat. Proveďte následující kroky pro každý svazek v každé instanci.

Microsoft best practices říká následující …

“ velikost alokační jednotky NTFS: Při formátování datového disku se doporučuje použít velikost alokační jednotky 64 KB pro datové a logové soubory a TempDB.“

spusťte ověření clusteru

spusťte ověření clusteru, abyste zajistili, že je vše připraveno ke seskupení.

Import-Module FailoverClustersTest-Cluster -Node "SQL1", "SQL2"

vaše zpráva bude obsahovat varování o ukládání a vytváření sítí. Tato varování můžete ignorovat, protože víme, že neexistují žádné sdílené disky a mezi servery existuje pouze jediné síťové připojení. Můžete také obdržet varování o objednávce vázání sítě, kterou lze také ignorovat. Pokud narazíte na nějaké chyby, musíte je řešit, než budete pokračovat.

protože nejsou k dispozici žádné „potenciální clusterové disky“, první test vyvolá varování a všechny následující testy disků jsou přeskočeny. To se očekává, protože budeme používat pouze lokální disky replikované s SIOS DataKeeper.
testy Validate Network Communication varují před tím, že mezi uzly clusteru je k dispozici pouze jedna síť. Toto varování můžete ignorovat, protože redundanci sítě zpracovává ve virtuální vrstvě Azure.

chyba při pokusu o spuštění ověření clusteru?

několikrát jsem se s touto chybou setkal a stále se snažím vyřešit, za jakých podmínek k tomu dochází. Občas zjistíte, že test-cluster nefunguje, jak je popsáno v příspěvku na fóru.

Test-ClusterUnable to Validate a Cluster Configuration. The operation has failed. The action validate a configuration did not completeThere is an error in XML document (5, 73). Attempt by methodMicrosoft.Xml.Serialzation.GeneratedAssembly.XmlSerialzationReaderClusterPrep.Config.Read4_As...Bolean) to access methodMS.Internal.ServerClusters.Validation.TestAssemblyCollection.Add(MS.Internal.ServerClusters.V....Failed

pokud se vám to stane, zjistil jsem, že následující Oprava doporučená ve fóru funguje pro mě.

Inside C:\Windows\System32\WindowsPowerShell\v1.0 make a copy of powershell_ise.exe.config file (make a copy inside C:\Windows\System32\WindowsPowerShell\v1.0)- rename it to powershell.exe.configOpen it with notepad- delete current config line and paste:<?xml version="1.0" encoding="utf-8" ?><configuration> <system.xml.serialization> <xmlSerializer useLegacySerializerGeneration="true"/> </system.xml.serialization></configuration>- save and run test-cluster

i když tato oprava vám umožní spustit test-cluster z Powershell, zjistil jsem, že běh ověřit přes GUI stále vyvolá chybu, a to i s touto opravou. Mám dotaz do společnosti Microsoft, abych zjistil, zda mají řešení,ale prozatím, pokud potřebujete spustit ověření clusteru, možná budete muset použít Test-Cluster v Powershell.

vytvoření clusteru

osvědčenými postupy pro vytvoření clusteru v Azure by bylo použití Powershell k vytvoření clusteru a zadání statické adresy IP. Powershell nám umožňuje zadat statickou IP adresu, zatímco metoda GUI ne. Implementace DHCP společnosti Azure bohužel s WSFC nefunguje dobře, takže pokud použijete metodu GUI, skončíte s duplicitní IP adresou jako IP adresou clusteru, kterou bude třeba opravit dříve, než bude cluster použitelný.

zjistil jsem však, že typický příkaz new-Cluster powershell s příkazem-StaticAddress nefunguje. Abychom se vyhnuli problému duplicitní adresy IP, musíme se uchýlit k clusteru.exe utility a spusťte následující příkaz.

cluster /cluster:cluster1 /create /nodes:"sql1 sql2" /ipaddress:10.0.0.100/255.255.255.0

přidejte svědka sdílení souborů

dále musíme přidat svědka sdílení souborů. Na serveru 3rd jsme poskytli jako FSW, vytvořili složku a sdíleli ji, jak je uvedeno níže. Budete muset udělit oprávnění ke čtení a zápisu objektu clusteru Name Object (CNO) na úrovni sdílení i zabezpečení, jak je uvedeno níže.

jakmile je sdílení vytvořeno, spusťte Průvodce konfigurací Kvora clusteru na jednom z uzlů clusteru a postupujte podle níže uvedených kroků.

nainstalujte DataKeeper

nainstalujte DataKeeper na každý ze dvou uzlů clusteru SQL Server, jak je uvedeno níže.

zde určíme účet domény, který jsme přidali do každé skupiny místních správců domén.

nakonfigurujte DataKeeper

jakmile je DataKeeper nainstalován na každém ze dvou uzlů clusteru, jste připraveni nakonfigurovat DataKeeper.

poznámka-nejčastější chybou v následujících krocích je zabezpečení související, nejčastěji již existujícími skupinami zabezpečení Azure blokujícími požadované porty. Přečtěte si dokumentaci SIOS, abyste zajistili, že servery mohou komunikovat přes požadované porty.

nejprve se musíte připojit ke každému ze dvou uzlů.

pokud je vše správně nakonfigurováno, měli byste se v přehledu serveru podívat na následující.

dále vytvořte novou úlohu a postupujte podle níže uvedených kroků

zvolte Ano zde pro registraci zdroje svazku DataKeeper v dostupném úložišti

dokončete výše uvedené kroky pro každý svazek. Po dokončení byste měli vidět následující v uživatelském rozhraní WSFC.

nyní jste připraveni nainstalovat SQL Server do clusteru.

poznámka-v tomto okamžiku je replikovaný svazek přístupný pouze v uzlu, který je v současné době hostitelem dostupného úložiště. To se očekává, takže se nebojte!

nainstalujte SQL Server na první uzel

pokud chcete skriptovat instalaci, zahrnul jsem níže uvedený příklad skriptované instalace clusteru SQL Server 2008 R2 do prvního uzlu clusteru. Skript pro přidání uzlu do existujícího clusteru se nachází dále v příručce.

samozřejmě přizpůsobit pro vaše prostředí.

c:\SQLServerFull\setup.exe /q /ACTION=InstallFailoverCluster /FEATURES=SQL /INSTANCENAME="MSSQLSERVER" /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="contoso\admin" /SQLSVCPASSWORD="xxxxxxxxx" /AGTSVCACCOUNT="contoso\admin" /AGTSVCPASSWORD="xxxxxxxxx" /SQLDOMAINGROUP="contoso\SQLAdmins" /AGTDOMAINGROUP="contoso\SQLAdmins" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /FAILOVERCLUSTERGROUP="SQL Server 2008 R2 Group" /FAILOVERCLUSTERDISKS="DataKeeper Volume E" "DataKeeper Volume F" /FAILOVERCLUSTERIPADDRESSES="IPv4;10.0.0.101;Cluster Network 1;255.255.255.0" /FAILOVERCLUSTERNETWORKNAME="SQL2008Cluster" /SQLSYSADMINACCOUNTS="contoso\admin" /SQLUSERDBLOGDIR="E:\MSSQL10.MSSQLSERVER\MSSQL\Log" /SQLTEMPDBLOGDIR="F:\MSSQL10.MSSQLSERVER\MSSQL\Log" /INSTALLSQLDATADIR="F:\MSSQL10.MSSQLSERVER\MSSQLSERVER" /IAcceptSQLServerLicenseTerms

pokud dáváte přednost použití GUI, postupujte podle níže uvedených snímků obrazovky.

na prvním uzlu spusťte nastavení serveru SQL.

vyberte Nový SQL Server Failover Cluster instalace a postupujte podle pokynů, jak je znázorněno.

vyberte pouze možnosti, které potřebujete.

tento dokument předpokládá, že používáte výchozí instanci serveru SQL Server. Pokud používáte pojmenovanou instanci, musíte se ujistit, že uzamknete port, na kterém poslouchá, a tento port použít později, když nakonfigurujete vyvažovač zatížení. Budete také muset vytvořit pravidlo vyvažování zatížení pro službu prohlížeče SQL Server (UDP 1434), abyste se mohli připojit k pojmenované instanci. V této příručce není uveden žádný z těchto dvou požadavků, ale pokud požadujete pojmenovanou instanci, bude to fungovat, pokud provedete tyto dva další kroky.

zde budete muset zadat nepoužívanou adresu IP

přejděte na kartu adresáře dat a přemístěte soubory dat a protokolu. Na konci této příručky hovoříme o přemístění tempdb na nezrcadlený objem DataKeeper pro optimální výkon. Prozatím to nechte na jednom z seskupených disků.

nainstalujte SQL Server na druhý uzel

níže je uveden příklad příkazu, který můžete spustit a přidat další uzel SQL Server 2008 R2 do existujícího clusteru.

c:\SQLServerFull\setup.exe /q /ACTION=AddNode /INSTANCENAME="MSSQLSERVER" /SQLSVCACCOUNT="contoso\admin" /SQLSVCPASSWORD="xxxxxxxxx" /AGTSVCACCOUNT="contoso\admin" /AGTSVCPASSWORD="xxxxxxxx" /IAcceptSQLServerLicenseTerms

pokud dáváte přednost použití GUI, postupujte podle následujících snímků obrazovky.

spusťte znovu nastavení serveru SQL na druhém uzlu a zvolte Přidat uzel do clusteru převzetí služeb při selhání serveru SQL Server.

Congratulations, jste téměř hotovi! Vzhledem k nedostatečné podpoře Azure pro bezdůvodné ARP však budeme muset nakonfigurovat interní vyvažovač zatížení (ILB), který pomůže s přesměrováním klienta, jak je ukázáno v následujících krocích.

Aktualizujte IP adresu SQL clusteru

aby ILB správně fungoval, musíte spustit spustit následující příkaz z jednoho z uzlů clusteru. To SQL Cluster IP umožňuje IP adresu SQL clusteru reagovat na ILB health probe a zároveň nastavit masku podsítě na 255.255.255.255, aby se zabránilo konfliktům IP adres se zdravotní sondou.

cluster res <IPResourceName> /priv enabledhcp=0 address=<ILBIP> probeport=59999 subnetmask=255.255.255.255

poznámka-nevím, jestli je to náhoda, ale příležitostně jsem spustil tento příkaz a vypadá to, že běží, ale nedokončí práci a musím ji znovu spustit. Způsob, jakým mohu zjistit, zda to fungovalo, je při pohledu na masku podsítě zdroje IP serveru SQL Server, pokud to není 255.255.255.255, pak víte,že to nebylo úspěšně spuštěno. Může to být jednoduchý problém s obnovením GUI, takže můžete také zkusit restartovat cluster GUI a ověřit, že maska podsítě byla aktualizována.

po úspěšném spuštění přeneste zdroj offline a přiveďte jej zpět online, aby se změny projevily.

Vytvořte vyvažovač zatížení

posledním krokem je vytvoření vyvažovače zatížení. V tomto případě předpokládáme, že používáte výchozí instanci serveru SQL Server a posloucháte na portu 1433.

soukromá IP adresa, kterou definujete při vytváření vyrovnávače zatížení, bude přesně stejná adresa, jakou používá váš SQL Server FCI.

přidejte pouze dvě instance serveru SQL do fondu backend. Nepřidávejte FSW do fondu backend.

v tomto pravidle vyrovnávání zatížení musíte povolit plovoucí IP

ověření clusteru

než budete pokračovat, spusťte ještě jednou ověření clusteru. Zpráva o ověření clusteru by měla vrátit stejná upozornění na síť a úložiště, jaká byla při prvním spuštění. Za předpokladu, že neexistují žádné nové chyby nebo varování, je váš cluster správně nakonfigurován.

upravit sqlserv.exe konfigurační soubor

v adresáři C:\Program soubory (x86)\Microsoft SQL Server \ 100 \ nástroje \ Binn vytvořili jsme sqlps.exe.konfigurační soubor a sqlservr.exe.config s následujícími řádky v konfiguračním souboru:

<configuration> <startup> <supportedRuntime version="v2.0.50727"/> </startup></configuration>

tyto soubory ve výchozím nastavení nebudou existovat a mohou být vytvořeny. Pokud tento soubor (y) již existuje pro vaši instalaci, musí být řádek <supportedRuntime version= „v2. 0. 50727″/ > jednoduše umístěn s <startup> … < / startup> podsekce < configuration > … < / configuration>. To by mělo být provedeno na obou serverech.

Test clusteru

nejjednodušší test je otevřít SQL Server Management Studio na pasivním uzlu a připojit se ke clusteru. Pokud jste schopni se připojit, Gratulujeme, udělali jste vše správně! Pokud se nemůžete připojit, nebojte se, nebyli byste první, kdo udělal chybu. Napsal jsem blogový článek, který vám pomůže vyřešit problém. Správa clusteru je přesně stejná jako správa tradičního clusteru sdíleného úložiště. Vše je řízeno pomocí Správce clusteru Failover.

Volitelné-přemístěte Tempdb

pro optimální výkon by bylo vhodné přesunout tempdb na lokální, nereplikovaný SSD. SQL Server 2008 R2 však vyžaduje, aby byl tempdb na seskupeném disku. SIOS má řešení nazvané zdroj Nesrceného svazku, který řeší tento problém. Bylo by vhodné vytvořit zdroj nezrceného svazku místní jednotky SSD a přesunout tam tempdb. Místní jednotka SSD však není perzistentní, takže musíte dbát na to, aby se při každém restartu serveru znovu vytvořila složka s tempdb a oprávnění v této složce.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.