2012. augusztus 29., szerda

FT és SMP Virtuális szerverek

Gondolom sokan hitték azt, hogy a vSphere 5.1 már tartalmazni fogja az FT képességet több processzoros virtuális gépek esetében is. Sajnos ez nincs így, viszont a VMworld-ön már bemutatták működés közben, így már nem lehet messze az éles bevezetéstől.

Néhány változás, fejlesztés az eddig ismert FT technológiához képest:
  • vLockStep protokoll helyett bevezetik az SMP FT protokollt
  • az FT logging networknek már 10GB-os hálózat kell
  • shared VMDK helyett tükrözött/szinkronizált VMDK-t használ az SMP FT, azaz mindkét virtuális gépnek (primary,secondary) lesz saját konfigurációs fájlja, saját VMDK, stb.
  • az elsődleges és másodlagos gépeket futtató hostoknak a szükségük van egy ún. 'tie break' datastore-ra, amit mindketten elérnek. Ez egy backup lehetőség arra az estre, ha az FT logging networkkel lenne valami gond
  • Lehetőség lesz snapshot készítésére, így a mentés is megoldottá válik

A megjelenés dátumáról nem találtam információt.

2012. február 4., szombat

vCenter Operations 5.0

Január 24.-én megjelent a vCenter Operations 5.0. Ebből is létezik 60 napos próba verzió, amit véleményem szerint mindenkinek érdemes telepítenie. Ezzel egy időben megszüntették a CapacityIQ-t, mint önálló terméket. Sőt, azoknak akiknek meglévő CapacityIQ licenszük van, ingyenesen válthatnak a vCenter Operations Advanced verzióra. Akit érdekel működés közben, érdemes a lenti videót megnéznie. Amennyiben kellő tapasztalatot szerzek a termékkel, igyekszem megosztani veletek.



 .

Scripting Games 2012

Ha jól számolom, már harmadszor rendezik meg Scripting Games elnevezésű "versenyt". 2010-ben minden feladatra küldtem be megoldást,és szerencsém is volt. Nyertem egy PowerShell könyvet is, ami viszont Amerákából útban Magyarországra elveszett. Ettől függetlenül hasznos volt. Bár a feladatok nyílván nem kötődnek a PowerCLI használatához, de sokat lehet tanulni a scriptek megírása közben. Akit érdekel, az a lenti linken tájékozódhat az idei versenyről.
2012 Scripting Games

2011. november 21., hétfő

vCloud Director Appliance

Talán a VMware-nél is érezték, hogy egy vCloud Director teszt környezet felállítása nem egy egyszerű feladat. Ezért készítettek egy aplliance-t, amiben előre feltelepítettek mindent (Red Hat, Oracle, vCloud Director). Így az egész leegyszerűsödik egy OVF deploy-ra.
További segítségként készítettek egy Evaluation Guide-ot, ami lépésenként végigvisz a telepítéseken (kezdve a vCenter szerverrel), és a konfiguráción. Bejelentkezés után egy 60 napos licencet kapunk, ami a bejelentkezéstől számítva él (nem a telepítéstől)

Bevallom, nekem egyelőre a vCloud Director eléggé homályos terület, igazából nem is tudtam, hol kezdjek hozzá. Így viszont azt hiszem, a kezdetei lépéseket magam is megteszem.

Mindez megtalálható: https://www.vmware.com/tryvmware/index.php

Ha lesz értékelhető információm a tesztelésről, szintén megosztom.

2011. november 14., hétfő

Linked Clone Pool és a replika vm

Az általam használt View környezetben feltünt, hogy a replika vm-ek száma jelentősen nagyobb,  mint a rendszerben lévő linked clone típusú pool-ok száma. Miközben az elmélet szerint minden pool-hoz egy darab replika tartozik.
A nagy számú replikának valószínűleg az az oka, hogy elég sokszor futott hibára a recompose folyamat, mivel szűkében voltam mindig is a storage területnek. Bár azt nem értem, hogy ha a hibás pool tagokra elindítok egy recompose folyamatot, és az alap virtuális gép, valamint a felhasznált snapshot ugyanaz, akkor miért nem használja a már meglévő replikát?
Mivel ezek a replikák elég sok helyet foglalnak el, ezért szerettem volna tudni, hogy az egyes gépekhez mely replika tartozik. Így ha van olyan replika, amelyik valami hiba folytán maradt a rendszerben, azt bátran törölhetném. Mivel ez a rendszerből könnyen nem olvasható ki, ezért a VMUG közösséghez fordultam segítségért. CZW-től jött a gyors válasz: a descriptor vmdk file-ban megtalálom a szükséges infót. A ParentFileNameHint sor tartalmazta az adott vm-hez tartozó replika vm nevét. Ha pl. a virtuális gép neve V400212, akkor a V400212.vmdk file-ban található az információ.
Most már csak az a kérdés, hogy ha 100 gép esetében kell kinyernem azt az infót, akkor mit tegyek. Mivel a PowerCLI elég közel áll hozzám, és pont erre találták ki, azért azt kezdtem el nézegetni. Hogy egy kicsit felgyorsítsam a dolgokat, a PowerCLI fórumon is feltettem egy kérdést, amire Luc Dekens rövidesen válaszolt is. A továbbiakban az ő útmutatására is támaszkodok.

Legyen a kiválasztott gép a fent is említett V400212:

$vmName = "V400212"

Kérdezzük le, hogy milyen diszkek tartoznak a géphez:

Get-VM -Name $vmName | Get-HardDisk

CapacityKB Persistence Filename
---------- ----------- --------
15728640 Persistent ...FS20_VDI_SYS] V400212MOL/V400212-000001.vmdk
2097152 IndependentPersis... ...isk-D-e61dac41-43c4-499f-8334-40c495ce04c9.vmdk
20480 IndependentPersis... ...0_VDI_SYS] V400212/V4002121-internal.vmdk

A vSphere kilensben leellenőrizve látható, hogy a -00001 végű vmdk a virtuális gép C: meghajtója. Meglepő módon, pont a V400212.VMDK nem szerepel a lekérdezés eredményében. Viszont, ha megnézzük a V400212-000001.vmdk descriptor file tartalmát akkor látható benne a következő bejegyzés:

parentFileNameHint="V400212.vmdk"

Azaz, a virtuális gépet alkotó file-ok között van egy V4000212.VMDK nevű is, ami valószínűleg pont a linked clone technológia miatt szükséges.

Tételezzük fel, hogy a fenti diszkek valamelyikének szeretnénk beleolvasni a descriptor file-jába. Legyen ez az első a fenti három közül. Ha a Get-Datastore paranccsal lekérdezzük, akkor a Name paraméter érték "Hard disk 1" lesz.

$hdName = "Hard disk 1"
$hd = Get-VM -Name $vmName | Get-HardDisk | where {$_.Name -eq $hdName}

A $hd objektum Filename paamétere tartalmazza a vmdk file teljes elérési útját. Ezt egy kis bűvészkedéssel szét tudjuk szedni a Datastore nevére és a file névre.

$ds = Get-Datastore -Name $hd.Filename.Split(']')[0].TrimStart('[')
$vmdkPath = $hd.Filename.Split(']')[1].TrimStart(' ')

Ahhoz, hogy a szokásos Powershell parancsokkal hozzá tudjunk férni a datastore elemihez, hozzunk létre egy új PSDrive objektumot.

New-PSDrive -Location $ds -Name ds -PSProvider VimDatastore -Root '\'

Ettől kezdve, a ds: megadásával tudunk hivatkozni a a virtuális gépet tartalmazó Datastore root mappájára. Ha pedig ez így van, akkor egyszerűen olvassuk el az ott lévő file-ok tartalmát.

$source = ("ds:\" + $vmdkPath).Replace('/','\')
Get-Content -Path $source

Sajnos a várt eredmény helyett a következő üzenetet kapjuk:

Get-Content : Cannot use interface. The IContentCmdletProvider interface is not implemented by this provider.
At line:21 char:12
+ Get-Content <<<< -Path $source
+ CategoryInfo : NotImplemented: (:) [Get-Content], PSNotSupportedException
+ FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.GetContentCommand

Azaz, a VimDatastore PSProvider-ben nincs implementálva a Get-Content cmdlet. Akkor most hogyan tovább? Nincs más hátra, mint hogy megpróbáljuk átmásolni a .vmdk file-t a lokális gépre. Legyen ez a temp folder.

$temp = (Get-ChildItem Env:TEMP).Value
$destination = $temp + '\' + $vmdkPath.Split('/')[1]

Ezek után a $source értéke: ds:\V400212\V400212-000001.vmdk
A $destination pedig: D:\DOCUME~1\ZSoltesz\LOCALS~1\Temp\V400212-000001.vmdk
Maga a másolás:

Copy-DatastoreItem -Item $source -Destination $destination

Remélhetőleg, most már meg tudjuk nézni a fuile tartalmát.

Get-Content -Path $destination

És az eredmény:

# Disk DescriptorFile
version=1
CID=df51c9e2
parentCID=86745223
createType="vmfsSparse"
parentFileNameHint="V400212.vmdk"
# Extent description
RW 31457280 VMFSSPARSE "V400212-000001-delta.vmdk"
# The Disk Data Base
#DDB
ddb.longContentID = "2b70c5743a0fbfed935a57b5df51c9e2"
ddb.encoding = "UTF-8"


Hurrá! Győzelem! Illetve mégsem:( Ez, mint az elején írtam, nem annak a diszknek a leíró file-ja, amelyet szeretnénk, de ebben találunk rá hivatkozást, nevezetesen a parentFileNameHint="V400212.vmdk sorban.

Ezek után viszont már nagyon gyorsan eljuthatunk a kívánt információig. A fenti módszerrel másoljuk át a temp mappába a V400212.vmdk-t, majd nézzük meg annak a tartalmát.

Az eredmény:

# Disk DescriptorFile
version=1
CID=86745223
parentCID=3260994c
createType="vmfsSparse"
parentFileNameHint="/vmfs/volumes/4b9776cc-9ad21a92-391f-00215e4cb38d/replica-2d2fdc7f-5e15-4b9d-89be-/replica-2d2fdc7f-5e15-4b9d-89be-.vmdk"
# Extent description
RW 31457280 VMFSSPARSE "V400212-delta.vmdk"

# The Disk Data Base
#DDB

ddb.encoding = "UTF-8"
ddb.longContentID = "2b6a3f59ef1ff403a0c2983786745223"

Innen pedig egy kis bűvészkedés a file tartalmával, nevezetesen:

$replica=Get-Content -Path $destination|?{$_ -like 'Parentfile*'}
$replica.split('/')[5].trim('"')

És meg is kaptuk a replika nevét: replica-2d2fdc7f-5e15-4b9d-89be-.vmdk

Ezek után már csak azt a kódot kell megírni, amelyikkel sorra tudjuk venni az érintett virtuális gépeket, és megtudjuk mi az igazság.

Nem tudom, hogy a fenitől létezik-e sokkal egyszerűbb megoldás, de ez működik. Köszönet még egyszer CZW-nek, valamint Luc Dekens-nek.

2011. október 11., kedd

Ingyenes Quest vWorkspace Desktop Optimizer

Tapasztalatból és a dokumentációkból tudjuk, hogy VDI környezetben a szokásos fizikai környezetben használt desktop image-ből kreált gépek performancia szempontjából nem lesznek optimálisak. A Quest készített egy kis alkalmazást, amivel az általuk összegyűjtött ajánlott beállításokat érvényre tudjuk juttatni akár egy már kész virtuális desktopon, de akár a base image-en is.
Nyílván a saját VDI rendszerükhöz készítették (vWorkspace Desktop), de ugyanúgy hasznos lehet VMware View és Citrix XenDestop esetében is. További információ, és letöltés a Quest közösségi oldaláról, innen.

2011. október 8., szombat

SDRS - A legjobban várt új funkció

A vSphere 5 megjelenése után Duncan Epping készített egy listát a vSphere újdonságairól. A 140 újdonság közt persze vannak kevésbé fajsúlyos dolgok is, de talán nem véletlenül került első helyre a SDRS, azaz a Storage DRS.

Az SDRS három féle módon is segít az üzemeltetésben (automatikus datastore kiválasztás új vm készítésekor, I/O terhelés elosztás, valamint "tárhely elfogyás elleni védelem"), de nekem mindenképp a harmadik az, ami miatt várom a vSphere 5 upgrade-et. Nyílván a másik kettő is hasznos, de olyan környezetben, ahol a szabad storage terület nem valami sok, ott a harmadik képesség lesz leginkább hasznunkra. Márpedig én pontosan így vagyok vele. Van egy Datacenter, ahol minden datastore túlfoglalt, így tulajdonképpen bármikor előfordulhat, hogy valamelyikben teljesen elfogy a hely. Aki már futott bele ilyen szituációba, az tudja hogy nem túl kellemes. Főleg, ha fontos virtuális szerverek futnak rajta. Nézzük, milyen segítséget kapunk.

A vSphere 5-ben megjelenik a Datastore Cluster fogalma. Ez ugyanazt jelenti, mint hostok esetében az eddig megszokott cluster fogalom, csak ebben az esetben a Datastore Cluster-t alkotó Datastore-ok alkotnak egy közös erőforráscsoportot.


A képen látható módon a három datastore alkot egy clustert. A Summary fülön leolvashatóak a fontosabb paraméterek. Hány tagja van, mennyi az összes kapacitás, mennyi a legnagyobb szabad terület, stb.
A hagyományos cluster-hez hasonlóan tudjuk bekapcsolni a SDRS-t. Jobb klikk a cluster néven, majd Edit settings..


Itt is lehetőségünk van arra, hogy csak ajánlásokat tegyen a SDRS, és majd mi azok alapján lépünk, vagy pedig teljesen automatikusan mindig hajtsa is végre a megfelelő mozgatásokat (SDRS Automation). Majd azokat a fontos paramétereket állíthatjuk be, amelyek szabályozzák az SDRS működését (SDRS Runtime Rules)


Itt állíthatjuk be azt is, hogy az SDRS vegye-e figyelembe az I/O terhelés egyenlőtlenségeit. Csak egy megjegyzés ezzel kapcsolatban. Amikor különböző bemutatókon olyan storage-okat látok, amelyek már egyben tartalmaznak FC,SATA, és Flash diszkeket, valamint azt ígérik, hogy majd a storage eldönti, hogy a terhelés függvényében hol tárol egy adott .VMDK file-t, akkor mindig eszembe jut ez a funkció. Azaz hogy érdemes-e ilyen környezetben használni. De mint a bevezetőben említettem, inkább a tárhely elfogyás elleni védelemmel szeretnék foglalkozni.
Ezzel kapcsolatban a Utilized Space és No recommendations until utilization difference between source and destination is értékeivel szabályozhatjuk az SDRS működését. Az előbbivel azt mondjuk meg, hogy mekkora foglaltság esetében (%) lépjen működésbe az SDRS. Azaz pl. amíg minden datastore foglaltsága egy adott érték alatt van, addig nem történik mozgatás. Az utóbbi érték megadásával kizárhatjuk azt, hogy egymástól alig eltérő foglaltságú datastore-ok között történjen mozgatás. (A képen ez az érték 5%) A téma szempontjából a többi beállítható paraméter érdektelen.

Felmerül a kérdés, hogy ha vmdk mozgatásra kerül sor, akkor az SDRS miként választja ki a mozgatandó virtuális gépet, illetve a cél datastore-t. (Természetesen azt is megengedhetjük, hogy egy adott virtuális gép diszkjeit ne tartsa közös datastore-on, így akár vmdk szinten is történhet mozgatás)
A minél optimálisabb eredmény eléréséhez az SDRS különböző statisztikákat vezet mind a datastore-ok, mind a virtuális diszkekkel kapcsolatban. Pl. ha úgy látja, hogy egy datastore a statisztikák alapján 30 órán belül eléri a Utilized Space által megadott értéket, akkor oda nem fog mozgatni gépet (vagy diszket), mert hamarosan onnan kellene elmozgatni esetleg más diszkeket, hogy megfeleljen a feltételeknek.

A fentiekből kitűnik, hogy az SDRS nagy segítséget jelent (majd, ha eljutunk az éles bevezetésig) abban, hogy ne teljen be egy adott datastore. Persze ettől még nem lesz nagyobb kapacitásunk, de segít a meglévő (esetleg szűkös) tárterület jobb kihasználásában.