Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A feladatátvevő fürtök számos olyan szerepkört tartalmazhatnak, amelyek a csomópontok között mozoghatnak és futtathatók. Bizonyos szerepkörök (például virtuális gépek, erőforráscsoportok stb.) nem futhatnak ugyanazon a csomóponton. Ennek oka lehet az erőforrás-használat, a memóriahasználat stb. Van például két olyan virtuális gép, amely memória- és processzorigényes, és ha a két virtuális gép ugyanazon a csomóponton fut, az egyik vagy mindkét virtuális gép teljesítményproblémákat okozhat. Ez a cikk ismerteti a klaszter anti-affinitási szinteket és azok alkalmazását.
Mi az Affinity és az AntiAffinity?
Az affinitás egy olyan szabály, amely két vagy több szerepkör (pl. virtuális gépek, erőforráscsoportok stb.) közötti kapcsolatot hoz létre az együttes működés érdekében. Az AntiAffinity ugyanaz, de a megadott szerepkörök egymástól való távol tartására szolgál. A kiesésvédelmi fürtök az AntiAffinity függvényt használják a szerepeikhez. Pontosabban az AntiAffinityClassNames paraméter definiálva van a szerepkörökben, hogy ne fussanak ugyanazon a csomóponton.
Anti-affinitás osztálynevek
Egy csoport tulajdonságainak megtekintésekor az AntiAffinityClassNames paraméter alapértelmezés szerint üres. Az alábbi példákban az 1. csoportot és a 2. csoportot el kell különíteni attól, hogy ugyanazon a csomóponton fusson. A tulajdonság megtekintéséhez a PowerShell-parancs és az eredmény a következő:
Get-ClusterGroup Group1 | fl AntiAffinityClassNames
AntiAffinityClassNames : {}
Get-ClusterGroup Group2 | fl AntiAffinityClassNames
AntiAffinityClassNames : {}
Mivel az AntiAffinityClassNames nem alapértelmezettként van definiálva, ezek a szerepkörök együtt vagy egymástól függetlenül futtathatók. A cél az, hogy elkülönítse őket. Az AntiAffinityClassNames értéke bármi lehet, amit szeretne, csak azonosnak kell lennie. Tegyük fel, hogy az 1. és a 2. csoport virtuális gépeken futó tartományvezérlők, és a legjobban különböző csomópontokon futnának. Mivel ezek tartományvezérlők, a DC-t fogom használni az osztálynévhez. Az érték beállításához a PowerShell-parancs és az eredmények a következőek lesznek:
$AntiAffinity = New-Object System.Collections.Specialized.StringCollection
$AntiAffinity.Add("DC")
(Get-ClusterGroup -Name "Group1").AntiAffinityClassNames = $AntiAffinity
(Get-ClusterGroup -Name "Group2").AntiAffinityClassNames = $AntiAffinity
$AntiAffinity = New-Object System.Collections.Specialized.StringCollection
$AntiAffinity.Add("DC")
(Get-ClusterGroup -Name "Group1").AntiAffinityClassNames = $AntiAffinity
(Get-ClusterGroup -Name "Group2").AntiAffinityClassNames = $AntiAffinity
Get-ClusterGroup "Group1" | fl AntiAffinityClassNames
AntiAffinityClassNames : {DC}
Get-ClusterGroup "Group2" | fl AntiAffinityClassNames
AntiAffinityClassNames : {DC}
Most, hogy be vannak állítva, a feladatátvételi fürtözés megpróbálja távol tartani őket egymástól.
Az AntiAffinityClassName paraméter egy "soft" blokk. Ez azt jelenti, hogy megpróbálja távol tartani őket egymástól, de ha nem, akkor is lehetővé teszi, hogy ugyanazon a csomóponton fussanak. Például a csoportok egy két csomópontra épülő magas rendelkezésre állású fürtön futnak. Ha egy csomópontot le kell állítani karbantartás céljából, az azt jelentené, hogy mindkét csoport ugyanazon a csomóponton futna. Ebben az esetben ez rendben lenne. Lehet, hogy nem ez a legideálisabb, de mindkét virtuális gép továbbra is elfogadható teljesítménytartományokban fog futni.
Többre van szükségem
Mint említettük, az AntiAffinityClassNames egy enyhe blokk. De mi van, ha kemény blokkra van szükség? A virtuális gépek nem futtathatók ugyanazon a csomóponton; ellenkező esetben a teljesítményre gyakorolt hatás bekövetkezik, és bizonyos szolgáltatások esetleg leállnak.
Ezekben az esetekben a ClusterEnforcedAntiAffinity egy másik fürttulajdonsággal rendelkezik. Ez az antiaffinitási szint minden áron megakadályozza, hogy bármelyik azonos AntiAffinityClassNames érték ugyanazon a csomóponton fusson.
A tulajdonság és az érték megtekintéséhez a PowerShell-parancs (és az eredmény) a következő:
Get-Cluster | fl ClusterEnforcedAntiAffinity
ClusterEnforcedAntiAffinity : 0
A "0" érték azt jelenti, hogy le van tiltva, és nem kényszeríthető ki. Az "1" érték aktiválja és egyben a kemény blokkot jelenti. A kemény blokk engedélyezéséhez a parancs (és az eredmény) a következő:
(Get-Cluster).ClusterEnforcedAntiAffinity = 1
ClusterEnforcedAntiAffinity : 1
Ha mindkét beállítás be van állítva, a csoport nem fog tudni online állapotba kerülni. Ha ugyanazon a csomóponton vannak, ezzel fog találkozni a Feladatátvétel-cluster kezelőben.
A csoportok PowerShell-listájában a következő látható:
Get-ClusterGroup
Name State
---- -----
Group1 Offline(Anti-Affinity Conflict)
Group2 Online
További megjegyzések
Győződjön meg arról, hogy az igényeknek megfelelően a megfelelő AntiAffinity beállítást használja.
Ne feledje, hogy két csomópontos forgatókönyv esetén a ClusterEnforcedAntiAffinity-vel, ha az egyik csomópont kiesik, egyik csoport sem fog futni.
Az előnyben részesített tulajdonosok csoportokon való használata kombinálható az AntiAffinity használatával három vagy több csomópontfürtben.
Az AntiAffinityClassNames és a ClusterEnforcedAntiAffinity beállítások csak az erőforrások újrahasznosítása után lesznek végrehajtva. Ez azt is jelentheti, hogy beállíthatja őket, de ha mindkét csoport ugyanazon a csomóponton van online, akkor mindkettő továbbra is online marad.