i Del 1 i den här serien visade jag dig hur du förbereder ditt kluster med flera platser, inklusive att ställa in noden och Fildelningsmajoritetskvorum. I del 2 såg vi ett videoexempel på hur man integrerar SteelEye DataKeeper, en av de tillgängliga klusterreplikationslösningarna, med failover-kluster för att konfigurera ett multi-site Hyper-V failover-kluster. I del 3 kommer vi att undersöka hur Microsoft SQL Server 2008 kan konfigureras i ett kluster med flera platser med Windows Server 2008 Failover Clustering och SteelEye DataKeeper Cluster Edition.
först, varför skulle du vilja distribuera ett SQL server-kluster med flera webbplatser? SQL Server levereras med en mängd olika alternativ för hög tillgänglighet, inklusive loggfrakt, replikering (transaktionell, sammanslagning, ögonblicksbild), databasspegling och failover-kluster. Det finns en bra artikel som talar om alternativen för hög tillgänglighet i SQL Server 2008, så jag kommer inte att uppfinna hjulet här igen. Om du vill lära dig mer om alla alternativ, ta en titt på den här artikeln av Ross Mistry, hög tillgänglighet alternativ i SQL Server 2008.
om du läser artikeln gör Ross Sammanfattning följande uttalande…
”det är uppenbart att failover-kluster är det bästa valet för att minska systemets stilleståndstid och ge högre applikationstillgänglighet för hela SQL Server-instansen på en webbplats; ett failover-kluster skyddar dock inte mot diskfel och kräver en SAN.”
vad händer om du kunde ha alla de fördelar som Ross beskriver och även skydda mot diskfel och eliminera behovet av en SAN? Den goda nyheten är att det är precis vad du kan göra genom att implementera ett Microsoft SQL Server 2008 multi-site cluster på Windows Server 2008. SQL Server 2008 multi-site cluster kan vara lite av en missvisande. Det behöver inte nödvändigtvis distribueras över geografiskt spridda platser. Servrarna kan placeras i samma rack, samma rum, samma byggnad eller över kontinenter; det spelar ingen roll. Det viktiga är att du eliminerar din lagring som en enda felpunkt och om du väljer att hitta dina klusternoder på olika fysiska platser har du också byggt in platsbeständighet.
en av de vanligaste frågorna och förvirringspunkterna om SQL Server 2008 och Windows Server 2008 failover clustering är stöd för att misslyckas över undernät. Ja, Windows Server 2008 Failover Clustering stöder misslyckande mellan undernät för de flesta applikationer, men SQL Server 2008 är inte ett av dessa applikationer. Såvitt jag vet kommer SQL Server 2008 R2 inte heller att stödja misslyckande mellan subnät när det släpps. Min förståelse är att SQL-teamet arbetar med stöd för cross-subnet failover, men det kommer att stödjas någon gång efter SQL Server 2008 R2 släpps. Så för tillfället måste du spänna över ditt delnät om du vill separera dina noder geografiskt.
nu när du har bestämt dig för att distribuera ett SQL-serverkluster med flera noder, här är stegen du måste följa.
konfigurera ditt grundläggande kluster
Följ stegen i del 1 i denna serie för att konfigurera ett grundläggande 2-nodkluster med en nod och fildelning majoritets Quorum.
konfigurera din replikering
att distribuera ett kluster med flera platser kräver att du arbetar mycket nära med din replikationsleverantör under den här delen av konfigurationen. Varje leverantör kommer att ha mycket specifika instruktioner om hur du ställer in replikering och skapa lagringsresurser som ska användas i klustret. För denna demonstration kommer jag att använda SteelEye DataKeeper Cluster Edition för att replikera e-enheten från servern som heter primär till servern som heter sekundär. E-enheten på primär och sekundär är bara lokala bifogade volymer och inte en del av någon SAN. Så länge e-enheten visas som en lokal ansluten disk kan DataKeeper replikera den från en server till en annan. Du kan mixa och matcha SAS, iSCSI, SAN, VHD, eller någon annan lagringstyp som DataKeeper är lagrings agnostiker.
när du har konfigurerat ditt grundläggande kluster enligt beskrivningen i del 1 i min serie, kör DataKeeper-inställningen.exe för att installera SteelEye DataKeeper Cluster Edition på båda noderna i klustret. Du kommer att uppmanas att ange din licensnyckel i slutet av installationen. Ange din licens och starta om dina servrar när du blir ombedd. Du är nu redo att skapa din spegel. Starta DataKeeper GUI och följ instruktionerna nedan för att skapa din spegel.
klicka på ”Anslut till Server”.
ange namnet på den första servern. Klicka På Anslut.
ange namnet på den andra servern, klicka på Anslut
Klicka nu på Skapa jobb. Det kommer att starta guiden Skapa jobb.
ge ditt jobb ett namn och en beskrivning. Dessa kan vara vad du vill.
välj följande:
- Källserver – där data kommer att replikeras från
- nätverksadapter – nätverket där replikeringstrafiken kommer att resa
- volym – Volymen du vill replikera
klicka på Nästa för att fortsätta.
välj följande:
- Målserver – där data kommer att replikeras till
- nätverksadapter – nätverket där replikeringstrafiken kommer att resa
- volym – Volymen du vill replikera
klicka på Nästa för att fortsätta.
välj följande:
- komprimeringsnivå-om du har ett 100 Mbps eller snabbare nätverk för replikering, lämna det inställt på ingen. Om du har ett WAN som är mindre än 100 Mbps kan du dra nytta av att aktivera komprimering. Inställningar någonstans i mitten tenderar att ge dig den bästa prestandan för komprimering kontra CPU overhead i samband med att möjliggöra komprimering.
- asynkron vs. Synkron-asynkron replikering är i allmänhet acceptabel i de flesta miljöer och krävs definitivt i Wan-miljöer med hög latens. Jag skrev ett helt blogginlägg om detta ämne, så om du har några frågor, kolla in min artikel om asynkron vs synkron replikering.
- maximal bandbredd – du kan tänka på detta som en” fattig mans ” QOS. Om du vill se till att replikering aldrig överstiger ett visst tröskelvärde för din WAN-kapacitet kan du sätta en begränsare på hur mycket bandbredd den kan konsumera. Om du inte har en bra anledning att ställa in den är det bättre att lämna den inställd på 0.
klicka på Klar för att skapa din spegel.
nu om du tittar på din DataKeeper GUI kommer den att likna följande.
när du har skapat din spegel måste du göra din spegel tillgänglig i Microsoft-klustret ”tillgänglig Lagring”. Det finns några sätt att göra detta, men det mest raka sättet är att använda Windows PowerShell CLI. Nedan följer ett exempel som visar hur man tar den befintliga spegeln som vi just skapat på e-enheten och lägger till den i klustret ”tillgänglig lagring”, flyttar den till den primära noden och tar den i drift
Import-Modul FailoverClusters
Add-ClusterResource-Name ”DataKeeper Volume E” -ResourceType ”DataKeeper Volume” -grupp ”tillgänglig Lagring”
Get-clusterresource ”DataKeeper Volym E” | Set-Clusterparameter volumeletter e
flytta-clustergroup ”tillgänglig lagring” -nod primär
start-Clusterresource ”DataKeeper Volym E”
för mer information information om PowerShell och tillgängliga kommandon för användning med Failover Clustering, kolla in det här fantastiska blogginlägget från Symon Perriman från Microsoft Failover Clustering Team.
http://blogs.msdn.com/clustering/archive/2008/12/20/9243367.aspx
du kommer nu att upprepa ovanstående steg för att lägga till ytterligare speglar som du kommer att använda i ditt kluster. I vårt fall kommer vi att skapa en spegel av F-enheten och använda den för att klustera MSDTC. När du har lagt till dina extra speglar och lagt till dem i tillgängligt lagringsutrymme bör din DataKeeper GUI se ut så här.
och din Failover Cluster Manager GUI ska se ut så här.
viktig anmärkning-Det finns en snabbkorrigering som krävs för att stödja DTC med 3: e parts diskresurser. Se följande KB-artikel och tillämpa howfix på alla klusternoder. http://support.microsoft.com/kb/978476
SQL 2008 är mycket beroende av MSDTC, så det rekommenderas starkt att du klustrar MSDTC-resursen innan du klustrar din SQL-resurs. Följande artiklar tillhandahålls som referens för konfiguration och hantering av din MSDTC-resurs.
http://technet.microsoft.com/en-us/library/cc770748(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc771540(WS.10).aspx
du börjar med att öppna GUI för failover Cluster Manager och sedan välja ”Konfigurera en tjänst eller ett program”.
du väljer sedan ”distribuerad Transaktionskoordinator” och klickar på Nästa
ge MSDTC-resursen ett namn och en unik IP-adress. Dessa bör vara unika för MSDTC och inte samma som du kommer att använda senare när du skapar din SQL-resurs.
välj volymen där du ska lagra data för MSDTC-resursen. I vårt fall väljer vi den replikerade f-enheten.
bekräfta din information och klicka på Nästa för att fortsätta.
Grattis, du har konfigurerat DTC-resursen. Klicka På Slutför.
vi är nästan redo att börja installationen av den första noden i SQL Server-klustret, men det finns en sak vi behöver göra för att förbereda-Slip Stream SQL 2008 SP1 på SQL Server 2008 RTM installera media.
SLIP STREAM SQL SP1 på din SQL 2008 installera MEDIA
vad jag har upptäckt är att SQL Server 2008 inte kommer att installera på Windows Server 2008 R2 utan att först slipstreaming SQL Server 2008 SP1 på din SQL 2008 installera media. Här är en bra artikel som beskriver hur man slipstream SQL Server 2008 RTM och Service Pack 1. Efter att jag läst den artikeln och framgångsrikt slipstream SP1 på SQL 2008 RTM hittade jag följande Microsoft KB-artikel som beskriver samma procedur. Du kan få ett fel som ser ut som följande om du försöker installera SQL utan att först slipstreaming SP1 på media.
det gick inte att ställa in privat egendom ’RequireKerberos’ till värde ’1’
jag följde instruktionerna i den första artikeln och kopierade min SQL 2008 med SP1-installation till C:\ – enheten för båda noderna i mitt kluster. I instruktionerna nedan kommer jag att göra installationen från den lokala disken i varje klusternod.
installera din första KLUSTERNOD
nu när du har din SQL Server 2008 SP1 installationsmedia redo att gå, är du redo att installera din första SQL-nod. Det finns en stor” gotcha ” när det gäller att installera SQL på ett kluster med flera noder. För att du ska kunna installera SQL på ett kluster med flera noder måste du först skicka valideringsprocessen för Windows Server 2008 Failover Cluster. Tyvärr är ett kluster med flera platser undantagna från att klara det lagringsrelaterade testet, så du kan aldrig faktiskt ”passera” valideringen när det gäller SQL. Det tog en liten undersökning från min sida, men vad jag har kommit att hitta är att det finns en kommandoradsparameter som låter dig hoppa över valideringstestet på SQL 2008-installationen. Här är kommandoraden.
Setup /SkipRules=Cluster_VerifyForErrors /Action=InstallFailoverCluster
för att starta SQL-inställningen, Öppna ett kommandofönster, bläddra till din SQL 2008 med SP1 install directory och skriv kommandot som visas nedan.
om allt går som planerat bör du se skärmen nedan. Klicka på OK för att fortsätta.
ange din produktnyckel och klicka på Nästa
acceptera licensavtalet och klicka på Nästa
klicka på Installera för att installera Installationssupportfilerna
i slutet av installationen för Supportfilerna får du en varning. Klicka på Visa detaljer så ser du meddelandet nedan. Du kan klicka på Nästa och ignorera det här meddelandet eftersom det förväntas i ett kluster med flera webbplatser eller icke-delat lagringsutrymme.
Välj de funktioner du vill installera och klicka på Nästa. Lämna katalogen ”delad funktion” inställd på C-enheten eftersom SQL-binärerna inte ska installeras på den replikerade volymen.
på nästa skärm väljer du ett nätverksnamn för din SQL Server. Detta kommer att vara namnet som alla klienter kommer att ansluta till. Förutsatt att detta är standardinstansen, lämna instans-ID och Instansrotkatalogen inställd på standardinställningarna. Flytta inte instansrotkatalogen till den replikerade volymen.
det rekommenderas att du har separata domänkonton för SQLServer och SQLAgent. Du kan ta dig tid att skapa dessa konton nu om du inte redan har gjort det. Dessa konton kräver inga speciella behörigheter, eftersom den här installationsprocessen ger dem de behörigheter som de behöver.
bekräfta att du har tillräckligt med diskutrymme och klicka på Nästa för att fortsätta.
Välj standardinställningarna för att tillåta att en ny klusterresursgrupp med namnet ”SQL Server (MSSQLSERVER)” skapas.
välj en replikerad volym som fortfarande är tillgänglig, i vårt fall E:\ drive. Klicka på Nästa för att fortsätta.
nu väljer du den IP-adress du vill ha associerad med SQL-klusterresursen. Du kan lämna den inställd på att använda DHCP om du vill.
Välj dina säkerhetsinställningar och klicka på Nästa
Lägg till alla SQL Server-administratörer och välj ditt autentiseringsläge och klicka sedan på Nästa
Välj dina fel-och Användningsrapporteringsalternativ och klicka på Nästa
du kommer återigen att se några varningar relaterade till valideringsprocessen. Du kan ignorera dessa meddelanden som de kan förväntas i ett SQL Server-kluster med flera webbplatser.
klicka på Installera för att påbörja installationsprocessen
om allt installeras som förväntat bör du se följande skärmar. Klicka på Nästa och Stäng för att avsluta installationen.
Grattis, du har installerat den första noden i ditt SQL Server-kluster med flera webbplatser. Nu installerar vi den andra noden i klustret.
installera den andra KLUSTERNODEN
installera den andra klusternoden liknar installationen av den första noden. Vi måste köra SQL Setup igen från kommandoraden så att vi kan hoppa över valideringsprocessen. Så, från 2: a noden, öppna din kommandotolk och kör följande kommando.
-
installera SQL 2008 SP1 (sammanslagen inställning) på 2: a noden med följande kommando:
Setup / SkipRules=Cluster_VerifyForErrors / Action=AddNode / INSTANCENAME= ”MSSQLSERVER”
*Obs!: Detta förutsätter att du har installerat standardinstansen på 1: A noden
det kommer att starta installationsguiden som visas nedan. Klicka på OK för att fortsätta.
ange din produktnyckel och klicka på nästa.
acceptera licensvillkoren och klicka på Nästa
klicka på Installera för att installera Installationssupportfilerna.
du kan återigen ignorera varningen om att vissa klustervalideringstester har hoppats över. Detta kan förväntas i ett kluster med flera platser och icke-delade lagringskluster.
kontrollera att du lägger till noden i rätt instans och klicka på Nästa.
Lägg till lösenorden i servicekontona och klicka på Nästa
Välj dina fel-och Användningsrapporteringsalternativ och klicka på Nästa
återigen, ignorera varningen om de överhoppade operationerna.
klicka på Installera för att påbörja installationsprocessen.
om allt går som förväntat bör du se följande skärm.
nu när du har ett fullt fungerande två nodkluster, borde du förmodligen testa saker genom att göra några manuella omkopplare. Högerklicka på resursen och välj ”Flytta till nod sekundär”.
om allt är korrekt konfigurerat bör din Failover Cluster GUI se ut som följer.
slutsats
jag tror att SQL-kluster med replikerad lagring ger mycket mening. Lagring har alltid varit en enda punkt för misslyckande av traditionella kluster. Du kan eliminera den enda felpunkten genom att distribuera ett SQL Server-kluster med replikerad lagring från SteelEye eller någon annan Microsoft-partner för flera webbplatser. Jag hoppas att du hittade den här artikeln informativ. Om du har några frågor eller förslag, Lägg till dina kommentarer!