A VMCP-ről pár szóban.

Van néhány meg nem értett, vagy legalábbis nagyon elhanyagolt funkciója a vSpherenek, ezek közül az egyik a VMCP, amely a vSphere 6.0-val érkezett. A VMCP egy tárolóhoz köthető funkció, ami az APD és PDL beállításokat jelenti. A mostani vSphere 7-ben már nem lehet ilyen néven beállítást találni nem kell külön engedélyezni, mint mondjuk a 6.0 esetén, elég az APD és PDL funkciókat beállítani. Ezt a két beállítást is ritkán látom engedélyezve különböző partnereknél.

Mi is az APD és a PDL?

PDL – Permanent Device Loss

PDL esemény következik be, ha a tároló ISCSI sense kódsort küld, amely azt jelzi, hogy az eszköz (pl. lun) nem elérhető. PDL esemény során a tároló képes folyamatosan kommunikálni az esxi hostokkal, és továbbra is küldenek és fogadnak ISCSI sense kódsort a tároló állapotának monitorozására. Ha a PDL állapot fennáll, akkor az ESXi host nem küld több I/O kérést a tárolóhoz, feltételezve, hogy az adott eszköz ideiglenesen nem elérhető.

Összefoglalva, azt történik ilyenkor, hogy a tároló működőképes, de egy adott lun/datastore nem elérhető, például egy elrontott konfiguráció vagy jogosultság miatt.

APD azaz All Path Down

Ha az ESXi host egyáltalán nem képes elérni a tárolót, és ezért nem is érkezik ISCSI kód, akkor az az eszköz (lun vagy több lun) APD státuszt kap. Ez abban különbözik a PDL-től, hogy kommunikáció hiányában nincs elég információ eldönteni, hogy a hiba ideiglenes, vagy végleges. APD esetén az ESXi hostok továbbra is próbálkoznak I/O parancsok küldésével, amíg az erre meghatározott idő le nem telik. Ha az időtúllépés bekövetkezett a host leállít minden I/O küldést a tároló felé. Ez csak az ESXi hostok által generált I/O forgalomra vonatkozik, a futó virtuális gépeken belül továbbra is generálódik I/O küldés amíg a VM le nem áll, vagy a guest OS le nem állítja.

Alapértelmezett várakozási idő APD esetén 140 másodperc, ami az advanced settings menüpontban a Misc.APDTimeout érték módosításával változtatható.

Most, hogy már tudjuk hogy működik a folyamat, eldönthetjük, hogy melyik opciót választjuk. A beállítás a Cluster settings » vSphere HA menüpontban lehetséges:

PDL esetén az alábbi lehetőségeink vannak:

Disabled: Ebben az esetben nem történik semmilyen beavatkozás
Issue Events: Ebben az esetben nem történik semmilyen virtuális gépre hatással lévő beavatkozás, de értesülünk az eseményről
Power off and restart VMs: Ilyenkor minden érintett virtuális gép leállításra kerül, és a vSphere HA segítségével olyan ESXi hostokon újraindulnak amelyeknek továbbra is van hozzáférése az adott LUNhoz.

APD esetén a következő opciókból választhatunk:

Disabled: Ebben az esetben nem történik semmilyen beavatkozás
Issue Events: Ebben az esetben nem történik semmilyen virtuális gépre hatással lévő beavatkozás, de értesülünk az eseményről
Power off and restart VMs – Conservative: Addig nem történik virtuális gépet érintő beavatkozás, amíg a rendszer biztos lesz benne, hogy a gépeket újra lehet indítani egy másik hoston. Az a host amelyik észlete az APD-t, kommunikációt kezdeményez a HA mester hosttal, hogy kiderítsék van-e olyan egészséges host a clusterben, amelyik eléri az adott eszközt/lunt és biztonságosan újra lehet indítani a virtuális gépeket rajta. Ha a kapcsolatfelvétel a mester hosttal sikertelen, nem történik beavatkozás.
Power off and restart VMs – Aggressive: Ebben az esetben az összes érintett VM azonnal leállításra kerül, független attól, hogy van-e vagy nincs másik egészséges host. Az APD-t észlelő host megkezdi a kommunikációt a HA mester hosttal hogy kiderítse, van-e elég kapacitás újraindítani az érintett gépeket. Ha a HA mester nem elérhető, ismeretlen marad a többi host státusza, ezért ebben az esetben az érintett host rizikót vállal és leállítja a virtuális gépeket. Ha nincs további működőképes host, vagy elegendő kapacitás a clusterben előfordulhat, hogy a vSphere HA nem lesz képes visszaállítani a gépeket.

Korábban említettem, hogy az APD alapértelmezett várakozákozási ideje 140 másodperc, azonban a virtuális gépek nem egyből a 140 mp letelte után kerülnek leállításra. VMCP ilyenkor még vár 3 percet, mielőtt leállítana bármit. Tehát összesen 5 perc és 20 másodperc telik el legalább mielőtt a virtuális gépek leállnak. Ezt az 320 másodpercet hívjuk VMCP Timeout-nak

Van még egy elérhető opció az APD beállítai között, mégpedig az APD Response Recovery:

Ez a beállítás arra vonatkozik, hogy a vSphere HA hajtson-e végre bármilyen utasítást az APD beállása után, de még a VMCP Timeout előtt, tehát a 140. mp és a 320. mp között.

Két opció van:

Disabled: Ebben az esetben nem történik semmilyen beavatkozás
Reset VMs: Ebben az esetben a virtuális gépek resetelve lesznek, azon a hoston ahol éppen vannak.
Erre azért lehet szükség, mert van olyan Guest OS amely érzékeny a tároló elvesztésére. Ez a beállítás a vSphere HA-nak ad utasítást a helyzet kezelésére.

Én azt szoktam javasolni, hogy ha nem is merjük leállítani a virtuális gépeket ilyen esetben egyből, legalább az Issue Event opciót állítsuk be, hogy értesüljünk ha valami történne. Egyébként érdemes beállítani a VM leállítási opciókat, de ezt az adott VM/Alkalmazás függvényében egyénileg kell eldönteni.