IaaS met SQL Server : netwerkdrempels voor failoverclusters afstemmen
In dit artikel worden oplossingen geïntroduceerd voor het aanpassen van de drempelwaarde van failoverclusternetwerken.
Symptoom
Wanneer u Windows-failoverclusterknooppunten uitvoert in IaaS met een SQL Server AlwaysOn-beschikbaarheidsgroep, wordt het wijzigen van de clusterinstelling aanbevolen in een meer ontspannen bewakingsstatus. Clusterinstellingen buiten het vak zijn beperkend en kunnen onnodige storingen veroorzaken. De standaardinstellingen zijn ontworpen voor sterk afgestemde on-premises netwerken en houden geen rekening met de mogelijkheid van geïnduceerde latentie die wordt veroorzaakt door een omgeving met meerdere tenants, zoals Microsoft Azure (IaaS).
Failoverclustering van Windows Server bewaakt voortdurend de netwerkverbindingen en de status van de knooppunten in een Windows-cluster. Als een knooppunt niet bereikbaar is via het netwerk, wordt er herstelactie ondernomen om toepassingen en services online te herstellen en online te brengen op een ander knooppunt in het cluster. Latentie in communicatie tussen clusterknooppunten kan leiden tot de volgende fout:
Fout 1135 (systeemlogboek)
Clusterknooppunt 1 is verwijderd uit het actieve failoverclusterlidmaatschap. De clusterservice op dit knooppunt is mogelijk gestopt. Dit kan ook worden veroorzaakt doordat het knooppunt de communicatie met andere actieve knooppunten in het failovercluster heeft verbroken. Voer de wizard Een configuratie valideren uit om de netwerkconfiguratie te controleren. Als de voorwaarde zich blijft voordoen, controleert u op hardware- of softwarefouten met betrekking tot de netwerkadapters op dit knooppunt. Controleer ook op fouten in andere netwerkonderdelen waarmee het knooppunt is verbonden, zoals hubs, switches of bruggen.
Cluster.log voorbeeld:
0000ab34.00004e64::2014/06/10-07:54:34.099 DBG [NETFTAPI] Signaled NetftRemoteUnreachable event, local address 10.xx.x.xxx:3343 remote address 10.x.xx.xx:3343
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] got event: Remote endpoint 10.xx.xx.xxx:~3343~ unreachable from 10.xx.x.xx:~3343~
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] Marking Route from 10.xxx.xxx.xxxx:~3343~ to 10.xxx.xx.xxxx:~3343~ as down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [NDP] Checking to see if all routes for route (virtual) local fexx::xxx:5dxx:xxxx:3xxx:~0~ to remote xxx::cxxx:xxxd:xxx:dxxx:~0~ are down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [NDP] All routes for route (virtual) local fxxx::xxxx:5xxx:xxxx:3xxx:~0~ to remote fexx::xxxx:xxxx:xxxx:xxxx:~0~ are down
0000ab34.00007328::2014/06/10-07:54:34.099 INFO [CORE] Node 8: executing node 12 failed handlers on a dedicated thread
0000ab34.00007328::2014/06/10-07:54:34.099 INFO [NODE] Node 8: Cleaning up connections for n12.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO [Nodename] Clearing 0 unsent and 15 unacknowledged messages.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO [NODE] Node 8: n12 node object is closing its connections
0000ab34.00008b68::2014/06/10-07:54:34.099 INFO [DCM] HandleNetftRemoteRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] Route history 1: Old: 05.936, Message: Response, Route sequence: 150415, Received sequence: 150415, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:28.000, Ticks since last sending: 4
0000ab34.00007328::2014/06/10-07:54:34.099 INFO [NODE] Node 8: closing n12 node object channels
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] Route history 2: Old: 06.434, Message: Request, Route sequence: 150414, Received sequence: 150402, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.665, Ticks since last sending: 36
0000ab34.0000a8ac::2014/06/10-07:54:34.099 INFO [DCM] HandleRequest: dcm/netftRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] Route history 3: Old: 06.934, Message: Response, Route sequence: 150414, Received sequence: 150414, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.165, Ticks since last sending: 4
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO [IM] Route history 4: Old: 07.434, Message: Request, Route sequence: 150413, Received sequence: 150401, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:26.664, Ticks since last sending: 36
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <realLocal>10.xxx.xx.xxx:~3343~</realLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <realRemote>10.xxx.xx.xxx:~3343~</realRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <virtualLocal>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <virtualRemote>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <Delay>1000</Delay>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <Threshold>5</Threshold>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <Priority>140481</Priority>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO <Attributes>2147483649</Attributes>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO </struct mscs::FaultTolerantRoute>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO removed
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR [QUORUM] Node 8: Lost quorum (3 4 5 6 7 8)
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR [QUORUM] Node 8: goingAway: 0, core.IsServiceShutdown: 0
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR lost quorum (status = 5925)
Oorzaak
Er zijn twee instellingen die worden gebruikt om de connectiviteitsstatus van het cluster te configureren.
Vertraging : hiermee definieert u de frequentie waarmee cluster-heartbeats tussen knooppunten worden verzonden. De vertraging is het aantal seconden voordat de volgende heartbeat wordt verzonden. Binnen hetzelfde cluster kunnen er verschillende vertragingen optreden tussen knooppunten in hetzelfde subnet en tussen knooppunten, die zich in verschillende subnetten bevinden.
Drempelwaarde : hiermee definieert u het aantal heartbeats dat wordt gemist voordat het cluster herstelacties onderneemt. De drempelwaarde is een aantal heartbeats. Binnen hetzelfde cluster kunnen er verschillende drempelwaarden zijn tussen knooppunten in hetzelfde subnet en tussen knooppunten in verschillende subnetten.
Standaard stelt Windows Server sameSubnetThreshold in op 10 en SameSubnetDelay op 1000 ms. Als de connectiviteitsbewaking bijvoorbeeld 10 seconden mislukt, wordt de drempelwaarde voor failover bereikt, waardoor het knooppunt niet bereikbaar is dat knooppunt wordt verwijderd uit het clusterlidmaatschap. Dit leidt ertoe dat de resources worden verplaatst naar een ander beschikbaar knooppunt in het cluster. Clusterfouten worden gerapporteerd, inclusief clusterfout 1135 (hierboven).
Oplossing
U kunt dit probleem oplossen door de configuratie-instellingen voor het clusternetwerk te versoepelen. Zie Heartbeat en drempelwaarde.
Naslaginformatie
Zie Drempelwaarden voor failoverclusternetwerk afstemmen voor meer informatie over het afstemmen van de netwerkconfiguratie-instellingen voor Windows-cluster.
Zie Clusternetwerken configureren voor een failovercluster voor meer informatie over het gebruik van cluster.exe om de configuratie-instellingen van het Windows-cluster af te stemmen.