Linked Clones vSphere alatt!
A Linked Clones funckió nem számít újdonságnak VMware-es körökben, azonban erősen limitált bizonyos termékekre. Linked Clone-okat használhatunk VMware Lab Manager-ben már régóta, illetve egy hasonló (de teljesen más) többszörözési eljárás a VMware View-ben is megtalálható. Mezei VI adminként azonban erről a nagyszerű dologról le kell mondanunk, mivel nem volt rá lehetőség.
Nos, ennek vége
Bár grafikus interfész egyelőre nincs (várható, hogy hamarosan ez is lesz 3rd party megoldásban), de a használat rémesen egyszerű még CLI-ből is.
Mi is a Linked Clone?
- Virtuális gépek többszörözése a egyik legegyszerűbb feladat. Történhet ez kikapcsolt vagy bekapcsolt gépeken és könnyedén testreszabhatjuk a klón-t más gépnévvel, ip címmel, sid-del stb. A probléma a hagyományos klónozás esetén, hogy többszörözi a helyfoglalást, és emiatt viszonlyag sokáig tart (1-15 perc a vmdk méretétől fűggően). Azaz ha az eredeti VM-ünk egy 15gb-s lemezzel működik, akkor az össze klón ennyi extra helyet igényel a storage-on. Ezen enyhíthetünk a thin diszkek használatával a vSphere4-ben, azonban ha az eredeti VM valóban elfoglal 15 GB-t, akkor ennél nem lehetnek kisebbek a thin diszkek sem.
- A LINKED CLONE óriási előnye, hogy az eredeti VM mellé úgy hozzuk létre a klónokat, hogy azok továbbra is a szülő diszkét (diszkjeit) használják read-only módon, így tehát nincs szükség többszörös tárhelyfoglalásra. Az összes változtatást, amelyet a klónok csinálnánk az eredeti diszken, pedig egy különbözeti állmányba kerülnek (snapshot delta).
- A klón szempontjából tehát a diszk egyrészt egy snapsthot-ból áll, másrész az eredeti VM diszkjéből. A változatlan blokk-ok olvasása mindig az eredeti diszkről történik, az összes megváltozott blokk pedig a deltából kerül kiolvasásra.
Mikor érdemes linked clone-okat használni?
- Ha sok VM-et létrehozni
- PL: oktatáshoz 70 XP-t kell délutánra
- fejlesztési és tesztrendszerek
- alap kiépítésből indulva számos fejlesztési variáns létrehozása
- nagyméretű VM-ek klónozása gyorsan
- 200gb-s VM-ek klónozása minimális tárkapacitással másodpercek alatt
- szűkös tárkapacitás
- nincs elegendő hely 10-20 új VM-hez
Mi kell hozzá?
- vSphere4, vCenter4
- vMA appliance vagy PERL kit vSphereCLI-vel (SDK)
- Eredeti VM kikapcsolt állapotban, snapshot-tal
- vGhettoLinkedClone.pl script
Tulajdonságok, limitációk
- A GuestOS szempontjából transzparens a klónozás. Számára ugyanaz a diszk látszik, mint az eredeti VM-ben
- Az eredeti VM-nek több diszkje is lehet, a diszkek nem lehetnek independent módban (snapshot-ra szükség van), nem lehet fizikai RDM diszk.
- Elvileg 8 klón hozható létre egy szülő VM-ról (de ezt sikerült megcáfolni a tesztek során..több is elkészíthető)
- A klónok nem lehetnek HA cluster tagjai (le kell tiltani)
- Support: érdekes kérdés, hogy milyen szintű támogatást ad hivatalosan a VMware a linked clone funkcióra. Elvileg ez nincs a hivatalos feature listában, de az SDK-nak része, azaz ebből következne, hogy erre is jár hivatalos támogatás (azért ennek még utánajárok…)
- Hivatalos dokumentáció (sdk): http://www.vmware.com/support/developer/vc-sdk/
vGhettpLinkedClone script – használat
Hála a VMware Community-nek nem kell az SDK-t bogarászni, hogy legyártásuk az első linked klónokat. William Lam vExpert már megtette ezt és publikálta a saját script-jét, amit bátran használhatunk. A script-et (sok más mellett) itt találhatjátok: http://communities.vmware.com/docs/DOC-9852
1, vMA
Mivel a vGettoLinkedClone egy perl script, ezért ezt a környezetet biztosítanunk kell számára. Ezt kétféle képpen is megtehetjük: vMA vagy Perl toolkit letöltése. A vMA egyszerűbb (lévén, hogy benne van minden és egy virtuáls appliance-ként fut) így indulujunk el ezzel.
Letöltés: http://www.vmware.com/support/developer/vima/
A letöltött ovf-t kényelemesen betolhatjuk majd vSphere alá két kattintással. Adni kell egy IP címet és egy admin jelszót számára és ezzel be is fejeztük az implementációt.
2, Sciprt betöltése vMA-ba
Winscp-vel csatlakozzunk a vMA appliance-be és töltsük fel a scriptet a /home/vi-admin folder-be (csak ide lesz írási jogunk) A script-en állísuk be futtatási jogot (winscp, jobb klikk, pipáljunk be mindent
)
3, VM kiválasztása és snapshot
Válasszunk ki egy VM-et, amelyről linked klónokat szeretnénk csinálni. Állítsuk le a VM-et, ellenőrizzük a limitációkat és készítsünk egy snapshot-ot a gépről.
Ezek után a VM-et vissza is kapcsolhatjuk szabadon, azonban a snapshot-ot már ne töröljük le lehetőleg. További snapshot-ok természetesen létrehozhatóak, illetve a VM-et innentől már el is indíthatjuk.
4, Linked Clone-ok létrehozása
vMA konzolban a következő parancsot kiadva kezdhetjük el létrehozni a linked klónjainkat:
[vi-admin@xxx]$ ./vGhettoLinkedClone.pl –server <vcenter name> –username <administrator_for_vcenter> –vmhost <esxname> –vmname <name of parent vm> –vmname_destination <linked clone name> –snapname <name of snapshot on parent vm> –-datastore <name of target datastore>
A parancs futása néhány másodperc, ami alatt el is készül a klónunk… Azaz egy perc alatt 6-8 VM-et is létrehozhatunk:)
A példa kedvéért 10 klónt hoztam létre a szülő VM-ből kevesebb, mint 2 perc alatt.
Hogy lássuk valóban mennyi helyet is foglalnak ezek:
Konzolból ugyanez (itt már látszik a delta is)
A létrejött klónok teljesen úgy működnek, mintha teljes VM-ek lennének. Természetesen snapshot-olni is tudjuk őket:
Testreszabás
Mivel klónokról beszélünk a létrejövő gépek minden szempontból megegyeznek a szülővel, ami név és IP ütközést okoz. A szenzációs, hogy a klónok létrehozásakor is kihasználhatjuk a Guest OS Customization lehetőségeit!!! Ehhez nincs másra szükség, minthogy a meglévő testreszabási xml-t feltöltjük a vMA-ba is majd a scriptet meghívjuk a következő paraméterekkel:
–customize_guest yes –filename /home/vi-admin/vGhetto/xml/w2k3r2sp2-32bit.xml
Tudnivalók a Parent VM-ről
A klónok kezelése során könnyen elfeledkezhetünk arról, hogy a háttérben ott a megosztott szülő diszk. Szerencsére nagy bajt azért nem okozhatunk.
| Szülő VM-et töröltük | A megosztott diszk ilyenkor nem törlődik szerencsére. De tudnunk kell, hogy miért is nem, ezért ne erőltessük. |
| Szülő VM-en töröltük a kezdeti snapshot-ot | a vSphere nem engedi, hogy a közös diszket konszolidáljuk, ezért ezt a hibát nem követhetjük el. |
Lecsatolás
Végül pedig érdemes megemléíteni, hogy a klónjainkat le is tudjuk választani a közös diszkről, azaz teljesértékű VM-et tudunk belőlük faragni bármikor a későbbiek során. (ehhez még nincs script)












