A Microsoft licencelési metrikái között a processzormag alapú licencek már nem jelentenek újdonságot. Mégis gyakran találkozni olyan vállalati szerver infrastruktúrákkal, ahol az ilyen licencek felhasználása optimalizálatlan, sok esetben jelentős licenc többletköltséget eredményezve ezáltal. Cikkünkben ezért a két legalapvetőbb processzormag alapú licenccel rendelkező szerver termék, a Windows Server és az SQL Server felhasználásának optimalizálási lehetőségeit vizsgáljuk meg.
Windows Server
A Windows Server esetében függetlenül attól, hogy virtuális, vagy fizikai szerverekről beszélünk, minden esetben a fizikai környezet magszáma alapján kell licencigényt kalkulálni.
Fizikai CPU-nként minimum 8 magnyi licencet kell felhasználni, és szerverenként legalább 16-ot.
A Standard kiadású licenc maximum 2 Windows Server operációs rendszer környezet (Operating System Environment, OSE) futtatását engedi meg a licencelt fizikai szerveren.
A Datacenter kiadású licenc korlátlan számú Windows Server OSE futtatását engedi meg a licencelt fizikai szerveren.
A Windows Server ezen felül szerver elérési licenceket, un. CAL-okat is igényel felhasználói vagy kliens eszköz oldalról, de cikkünkben ezek felhasználását külön nem vizsgáljuk.
Mivel a Windows Servernek nem Software Assurance (SA) előnye a License Mobility (ld. korábbi SA cikkünket) ezért egy több fizikai szerveres virtualizációs környezetben minden olyan fizikai szerver processzormagjaihoz licencet kell hozzárendelnünk, amelyeken Windows Server OSE fordulhat elő, akkor is, ha a licencigény meghatározás pillanatában ez a gyakorlatban nem történik meg. Tehát ha egy két fizikai szerveres clusteren egy virtuális Windows Server OSE fut, amely szabadon „mozoghat” a két szerver között, abban az esetben mindkét szerver teljes fizikai magszámát szükséges licencelnünk, még akkor is, ha természetesen egy adott időpillanatban mindig csak az egyik szerver biztosít erőforrásokat a virtuális OSE-nek.
A fentiek alapján látható, hogy a Windows Server infrastruktúra licencigényét leginkább a Windows Server OSE-k számára számítási kapacitást nyújtani tudó fizikai processzorerőforrások magszáma határozza meg.
Az elszabaduló Windows Server licencigények csapdáját az a tény rejti magában, hogy a mai modern hypervisorok jellemzően operációs rendszer (OS) semlegesek. Ez lehetővé teszi számunkra, hogy egy adott fizikai környezeten gyakorlatilag bármilyen operációs rendszert futtató virtuális gépeket hozzunk létre, akár vegyes felhasználás mellett is, így fordulhat elő, hogy egy szerveren vagy clusterben vígan elfutnak egymás mellett Windows Server, Red Hat, SUSE, CentOS stb. virtuális szerverek.
Számos vállalati környezetben találkozunk ennek a rugalmasságnak a kihasználásával, a kialakított clusterek jellemzően vegyesen futtatnak különböző operációs rendszereket.
Egy ilyen vegyes környezet azonban nagymértékben növelheti Windows Szerver mag alapú licencigényünket. Miért is? Gondoljunk bele: egy cluster fizikai processzormag erőforrása úgy van tervezve, hogy a nagy rendelkezésreállás és a terheléselosztás figyelembevételével az összes futtatott virtuális OSE számára a megfelelő számítási kapacitást tudja biztosítani. Egy vegyes operációs rendszer környezetet futtató cluster processzormagjai tehát a Windows Server virtuális OSE-k mellet az egyéb OSE-k számára is biztosítanak erőforrást. Ahogy azonban fentebb írtuk, ha egy clusterben csak egyetlen szabadon „mozgó” Windows Server OSE van, abban az esetben a cluster teljes magszámát kell Windows Serverre licencelnünk, ezáltal egy vegyes környezetben olyan processzormag erőforrásokat is licencelünk Windows Serverre, amelyek egyébként más operációs rendszerek számára biztosítanak erőforrást.
A megoldást a dedikált Windows Server környezetek kialakítása jelenti: amennyiben a licencelt processzormagok csak Windows Server OSE-t futtatnak, biztosak lehetünk benne, hogy helyes méretezés mellett nem licencelünk felesleges erőforrásokat. A dedikált környezetnek nem feltétlenül kell dedikált clusternek lennie. Mivel a Microsoft licencelési szempontból elfogadja a hypervisor szintű VM „mozgás” korlátozást, ezért, ha egy clusteren belül a Windows Server VM-ek, csak bizonyos hostoktól kaphatnak erőforrásokat, akkor elegendő azokat a hostokat licencelnünk.
Lássunk egy példát: egy négy fizikai hostos clusterünk, szerverenként 16 fizikai processzormaggal rendelkezik. A cluster 12 db 4 vCore-os Windows Server VM-et és 12 db 4 vCore-os egyéb virtuális OSE-t futtat. A cluster Windows Server licencigénye 4 x 16 = 64 magnyi Windows Server Datacenter licenc (az egyszerűség kedvéért most csak a Datacenter kiadással kalkulálva).
Ugyanakkor a 48 vCore-nyi Windows Server OSE futtatásához 24 fizikai processzormag erőforrásnak elegendőnek kellene lennie. Ha tehát a Windows Server VM-jeink „mozgását” a clusteren belül két hostra korlátozzuk, míg az egyéb OSE-kat a mási két hostra, abban az esetben elegendő 32 magnyi Windows Server licenc biztosítása, míg a rendelkezésre álló számítási kapacitás is elegendő marad.
Természetesen a rendszer úgy is konfigurálható, hogy az egyik host kiesése esetén a fennmaradó három host egyike vegye át annak helyét így a hiba elhárításáig mindkét VM csoportnak erőforrást biztosítva, ezáltal a nagy rendelkezésre állás biztosítható, de a licencigényt továbbra is csak két host fizikai processzormag száma határozza meg.
A fenti logikát követve a szintén a fizikai környezet magszámán alapuló Windows Server Extended Security Update (ESU) a Windows Server 2008 / R2 rendszerek további elkülönítését igényelheti (ld.: ESU cikkünket).
SQL Server:
Az SQL Server szintén licencelhető processzormag alapon, de itt már más licencelési szabályokat kell figyelembe vennünk, mint a Windows Server esetén.
Virtuális szerverek esetén a VM-ek magszámának megfelelő, kiadás azonos (Standard vagy Enterprise) licenc használata szükséges, virtuális szerverenként legalább 4 magnyi. Amennyiben a VM-ek a fizikai clusterben szabadon mozoghatnak, abban az esetben a fizikai cluster tagok számával megszorzott licenc mennyiségre van szükség, vagy a License Mobility SA előny kihasználása érdekében a licenceknek SA-val kell rendelkezniük. Ez utóbbi esetben csak a VM-ek magszámának megfelelő licenc mennyiség szükséges (a VM-enkénti minimum 4 mag figyelembevételével) és nincs jelentősége, hogy a VM-ek hány cluster tag között mozoghatnak szabadon.
Fizikai szerverek esetén a fizikai magszámnak megfelelő mennyiségű licenc kiosztása szükséges, CPU-nként legalább 4 maggal számolva.
SQL Server Enterprise licencek használata esetén a licencelt fizikai környezethez rendelt core licencek számával azonos mennyiségű SQL VM futhat a fizikai szerveren.
SQL Server Enterprise + SA licencek használata esetén a fizikai környezet teljes lefedettsége esetén korlátlan számú SQL VM futtatható az adott szerveren.
A megfelelően licencelt (fizikai vagy virtuális) operációs rendszer környezetekben korlátlan számú SQL adatbázis példány futhat.
A Standard kiadású licencekkel licencelt fizikai magok csak a fizikai operációs rendszer környezetben (OSE) adnak SQL Server futtatási jogot, Standard kiadású licencek használata esetén a virtuális OSE-k licencigényét mindig a VM-ek virtuális magszáma határozza meg.
Láthatjuk, hogy itt már jóval több tényezőt kell figyelembe vennünk, mint a Windows Server esetén. Ebből eredően gyakran találkozhatunk olyan vállalati SQL Server infrastruktúrával, amely a fontosabb licencelési szempontok közül többet figyelmen kívül hagy, ezáltal a szükségesnél jóval magasabb licencigényt generálva. Lássuk a legjellemzőbb hibákat:
Feleslegesen magas vCore számok
Bár az SQL Server mag alapú licencelését függetlenné tehetjük a fizikai környezet processzormag számától, ettől függetlenül a vCore szám alapján történő licencelésnek is megvannak a maga csapdái, jellemzően a helytelen méretezésből eredően. Gyakran találkozunk olyan SQL Server virtuális szerverekkel melyek vCore száma indokolatlanul magas, láthatóan kialakításakor elsősorban a „biztos, ami biztos” alapon történő szándékos túlméretezés eredményeként. Ennek oka, hogy manapság még mindig gyakori, hogy a szoftver eszköz gazdálkodás és az ehhez kapcsolódó döntéshozói kör nem, vagy csak utólag kerül bevonásra az infrastruktúra tervezésbe, és az erőforrás tervezést végzők nem feltétlenül vannak tisztában a túlméretezett erőforrás többlet licencköltségeivel.
„Szétszórt” SQL Server infrastruktúra
Az infrastruktúrában szétszórt SQL szerverek, melyek olyan fizikai környezetekben futnak, amelyek más rendszereknek is biztosítanak fizikai processzormag erőforrásokat ellehetetlenítik, gazdaságtalanná teszik a fizikai magszám alapján történő licencigény kalkulációt, így az SQL Server Enterprise core + SA licencek korlátlan virtualizációs jogával sem lehet kalkulálni.
Nagy számú SQL Server-t futtató virtuális gép használata esetén licencelés szempontjából a Windows Serveréhez hasonló infrastruktúra megközelítés lehet az irányadó: ha az SQL szervereknek dedikált fizikai processzormag erőforrásokat biztosítunk, elkerülve ezzel a más felhasználásoknak, pl. alkalmazásoknak erőforrást biztosító processzormagok licencelését, abban az esetben a fizikai processzormagszám alapján történő SQL Server licencelés gazdaságos lehet.
Nézzünk egy példát: a teljes infrastruktúránk 12 db 16 fizikai processzormagos hoston 192 fizikai processzormaggal rendelkezik. A szerverek négy darab három tagú clusterbe vannak rendezve. Minden clusterben fut 4 db SQL Server Enterprise VM, szerverenként 4 vCore-ral. Összesen tehát 64 virtuális magon futtatunk SQL Server Enterprise-t melyet fizikai magszám alapján nem érné meg licencelnünk, tehát 64 magnyi SQL Server Enterprise licencre van szükségünk.
Ugyanakkor, ennek a 64 magnyi SQL Server Enterprise VM-nek elegendő lenne 32 fizikai processzormagnyi erőforrást biztosítanunk. Amennyiben az egyik három tagú cluster-ünket ezeknek a VM-eknek a futtatásához dedikáljuk, abban az esetben 48 magnyi SQL Server Enterprise licenc elegendő, a nagy rendelkezésre állás (+1 szerver) biztosítása mellett.
Természetesen a vCore szám optimalizálásával ennek az infrastruktúrának a kihasználhatósága tovább javítható, hiszen a 48 magnyi SQL Server Enterprise licencünk SA nélkül összesen 48 db, SQL Server OSE futtatását engedi meg, így akár további, akár Standard SQL Servereinket is itt futtathatjuk további licenc és CAL igény nélkül.
SA hiánya:
Virtualizált környezetben az SQL Server licencek License Mobility SA előnye, valamint a passzív failover használati jogok, illetve az SQL Server Enterprise SA korlátlan virtualizációs joga óriási licencigény megtakarítást jelenthetnek, melyet egy korábbi cikkünkben fejtettünk ki.
Összefoglalva tehát, a processzormag alapú licencek esetén az optimalizáció alapját jelentheti a megfelelő méretezés és az adott operációs rendszer vagy adatbázis futtatásához dedikált fizikai processzormag erőforrások alkalmazása, elkerülve ezzel olyan erőforrások licencelését, amelyek más OS-eknek vagy alkalmazásoknak nyújtanak számítási kapacitást. Az SQL Server esetén további lehetőségeket rejt magában az SA megfelelő alkalmazása. A licencfelhasználás szempontjából megfelelően optimalizált infrastruktúra kialakításának pedig elengedhetetlen feltétele, hogy már a tervezésbe bevonásra kerüljön a szoftvereszköz-gazdálkodásért felelős szakértői háttér, akár külső erőforrás bevonásával.