Štítky:
admin,
CPU,
data,
disk,
error,
image,
kopírovaní,
Linux,
patch,
podpora,
práva,
problém,
proces,
rsync,
rychlost,
server,
sítě,
snapshot,
správa,
storage,
virtualizace,
VMware,
výkon,
záloha,
zálohování
VMware server 2
6.7.2011 21:01
| Přečteno: 1904×
| poslední úprava: 6.7.2011 20:59
Postupne rusim vsechny VMware servery a prechazim na jinou virtualizacni technologii. Predchozi zapisek o VMware mne inspiroval k tomu, abych si zazalohoval nejake postrehy, ktere jsem onehda dohledal nekde na netu, nebo ktere jsem si vytvoril.
Vysvetlim svoje duvody odchodu, potom popisu optimalizace vykonu vmware serveru a nakonec i snapshotove zalohovani.
Uz si nejsem touto platformou jisty, protoze posledni verze serveru je nekdy z konce roku 2009. Ukazalo se, ze firma opravdu ukoncila vyvoj a jiz nikdy zadny dalsi update nevyjde.
Zrejme nikdy tedy nebude opraven problem s firefoxem a zrejme nikdy nebude podporovan zadny jiny browser nez IE pod windows.
Vadi mi, ze musim nekde drzet virtualku s windows jen kvuli tomu, abych mohl administrovat dalsi virtualky.
Chybi mi nejaka pokrocilejsi sprava bezicich virtualek, kde bych mohl sledovat aktualni zatizeni procesoru, disku a site. Pokud mi tedy zacne nektera z virtualek divocit, tak je o to pracnejsi zjistit kdo je vinikem - je nutne hledat uvnitr kazde z nich a analyzovat vsechny najednou nez dojde k odhaleni vinika.
Chybi podpora pro novejsi systemy - napr. problem s 64bit w2k8R2, ktere tuhnou kazde 2 dny. Zkoumani na netu smeruje k problemu ve VMwrae serveru, ktery neni a nebude vyresen (je vyresen v ESXi a tyka se to sitove karty).
Na novejsich jadrech je nutne aplikovat patch aby bylo mozne zkompilovat server, ale ani tento patch ci jine reseni problemu se doposud neobjevilo ve vmware download centru.
Jako zasadni problem se ukazal fakt, ze se jedna o jediny subjekt, ktery odpovida za vyvoj, protoze kdykoliv hrozi zruseni produktu, nebo podpory dulezite soucasti atd... S tim take souvisi problem meho neuspesneho pokusu prejit na ESXi. Problem je v nepodporovanem hw, ale take v tom, ze je to postavene na nejakem silne orezanem linuxu, ktery nepodporuje vse co potrebuju (napr. mdadm, ktery uprednostnuju pred hw raidy po urcitych zkusenostech).
Dost mi vadi divoke a dlouhe retezce v seznamu bezicich procesu, kdy tam je v kazdem z nich vypsan dlouhy nazev licence, ale kdyz chci identifikovat konkretni proces (napr. pomoci htop), tak to temer nejde (priklad:
/usr/lib/vmware/bin/vmware-vmx -# product=2;name=VMware Server;version=2.0.2;buildnumber=203138;licensename=VMware GSX Server for Linux;licenseversion=3.0 build-203138; -@ pipe=/tmp/vmhsdaemon-0/vmx4d5e367c6c630785;readyEvent=45....).
Dalsi problem je obcasne zatuhnuti nejakeho procesu managera a pak neni mozne se pripojit k administraci (jde poodstrilet nektere procesy, ale jednak je to otravne a druhak se tu a tam stane, ze se podela neco dalsiho a pak se musi resuscituovat server a postihne to vsechny virtualky - dokonce jsem musel za tech nekolik let u dvou serveru reinstalovat vmware server pricemz v jednom pripade to bylo dost v nervech, protoze se to podelalo zrovna ve chvili kdy mely probihat videoprenosy a bylo to velmi neprijemne - nestihal jsem ani prekopirovani na vedlejsi server).
Dalsi problem (uznam ze resitelny) jsou lck soubory a adresare, kdy po padu serveru (napr. watchdog zjisti pruser a watchdog karta retartne server) nenabehnou virtualky dokud nesmazu rucne lck soubory (ale to by slo osetrit scriptem, uznavam).
Rovnez se ukazalo, ze zatizeni hostitele je neprimerene vysoke a vykon diskovych image je celkem nizky.
Stejne tak vytvoreni image (s predalokovanym prostorem) zpusobi takove pretizeni serveru, ze desitky minut stoji vsechny ostatni virtualky (tohle bohuzel optimalizovat neumim - resenim je vytvareni image na jinem pocitaci a pak to prekopirovat).
Vykon disku nastesti lze velmi vyrazne vylepsit oproti vychozi instalaci, ale i tak to neni uplne idealni.
Bez optimalizace nastane problem napr. pri kopirovani ve windows, kdy zatizeni cpu ve windows stoupne na 100% a kopirovani probiha velmi pomalu. Nebo v linuxu kdy enormne roste load pokud se intenzivneji vyuziva disk.
Optimalizace diskovych operaci:
do /etc/fstab pridat nasledujici radek, ktery nam vytvori ramdisk a ten pripoji do tmp:
tmpfs /tmp tmpfs defaults,size=100% 0 0
Do /etc/vmware/config pridat na konec tyto radky:
tmpDirectory="/tmp"
mainMem.useNamedFile="FALSE"
sched.mem.pshare.enable="FALSE"
MemTrimRate="0"
MemAllowAutoScaleDown="FALSE"
prefvmx.useRecommendedLockedMemSize="TRUE"
prefvmx.minVmMemPct = "100"
Restart vmware a pojede to neporovnatelne rychleji.
Zalohovani:
VMware ma perfektni snapshoty! Sezere to sice asi 20% diskoveho vykonu pokud existuje snapshot, ale furt je to dost dobre (oproti LVM snapshotum, ktere s vmware neni uplne nejvhodnejsi a nejbezpecnejsi pouzivat...) a deje se to bez preruseni behu hostovaneho systemu.
Na netu jsem nachazel ruzne sripty, ktere to resi, ale ty scripty mely potrebu rozumet formatu image a ruznym detailum a z toho plynuly ruzne potize.
Ja na to sel jinak: zjistil jsem, ze pri vytvoreni snapshotu se nedeje nic jineho nez to, ze nekde vznikne nekolik souboru navic a do souboru, ktere existovaly pred vytvorenim image se jiz nezapisuje. Dale se zapise nejaka informace do souboru .vmx. To je cele.
Takze nejprve prochazim folderama a hledam ty, ktere obsahuji vmx. Pak zjistim zda virtualka bezi a pokud ano, tak nejprve stahnu do zalohy vmx soubor (ten dosud neobsahuje info o snapshotu), potom vytvorim seznam souboru, ktere v tom folderu existuji, potom vytvorim snapshot a tim mi vzniknou nejake ty soubory navic, ktere budu ignorovat. Kopiruju soubory do zalohy (bez tech novych, ktere tvori snapshot) a po zkopirovani souboru zase snapshot zrusim.
Jeste uvedu, ze mam lokalni folder pro zalohy aby snapshot nemusel existovat dlouho. Teprve odsud si potom nejaky zalohovaci proces bude v klidu stahovat data do zalohy nekam na vedlejsi server, nebo treba i pres net pryc (konkretne je to dirvish, ten spusti script na zalohovanem stroji, ktery vytvori lokalni kopie a potom to sosa k sobe. Na starne zalohovaciho serveru mam svepomoci zajisteno, ze se nikdy nespusti zaloha konkretniho stroje dokud nedobehla predesla zaloha tehoz stroje. Zaroven pokud script na zalohovanem serveru vrati error kod jiny nez nula tak dirvish usoudi, ze zaloha selhala a o jakemkoliv selhani mne poinformuje nagios a info o neuspesne zaloze mi dopluje pomoci push az do mobilu - pokud vse probehne dobre, tak dirvish pouziva rsync, takze po siti se toho taha malo diky tomu, ze se stahuji jen ty casti souboru, ktere byly zmeneny - tedy se skutecne taha jen cast vmdk souboru).
Mam na to script a pro mne je dost dobry na to abych se mu uz nevenoval, ale ma par omezeni, ktera je potreba vedet a mit je na pameti:
- soubory nmesmi obsahovat mezery nebo divoke znaky typu zavorky atd... rsync s tim ma problem a neni zadny problem tohle dodrzet, jen to admin musi mit na pameti!!
- nikdy nikde (ve vmware) nepouzivam independent disky, takze je nemam osetrene a pokud jsou potreba, tak navrhuju je premistit do specialnich folderu mimo ty zalohovane (snapshot pro ne neplati a normalne se do nich zapisuje i kdyz existuje snapshot)
- ve vmware musi byt vytvoren zalohovaci user a musi mit pravo
console interaction,
create snapshot a
remove snapshot (zadne dalsi pravo neni potreba!)
Dirvish loguje vse co na stdout vypsal vzdaleny script, tak proto ma vyznam aby byl script trochu ukecany.
Kopiruju pomoci rsync a rychlost omezuju na 5 mega aby se zbytecne nepretizil hostitel, ale lze zkouset namisto toho pouzit nice a rychlost neomezovat.
#!/bin/bash
SOURCE='/vmmachines' #folder se zivymi VM
DESTINATION='/vmshadow' # folder kam se zalohuji vm
STORAGE='standard' # nazev storage
USERNAME={backup user username} # tento user musi mit vyse zminena prava
PASSWORD={backup user poassword}
LOCATION='localhost' #adresa vmware serveru
function prepare_vm_snapshot {
cd $machinedir
echo "["`date`"] {$machine} ""Cistim pripadny drivejsi snapshot stroje "$machine" a nacitam adresarovou strukturu"
vmrun -T server -u $USERNAME -h 'https://'$LOCATION':8333/sdk' -p $PASSWORD deleteSnapshot "["$STORAGE"] "$machine >/dev/null
original=$(ls)
echo "["`date`"] {$machine} ""Vytvarim snapshot stroje "$machine" a nacitam zmeny v adresarove strukture"
vmrun -T server -u $USERNAME -h 'https://'$LOCATION':8333/sdk' -p $PASSWORD Snapshot "["$STORAGE"] "$machine
sleep 15
all=$(ls)
exclude=''
texclude=''
for folder in $all; do
found=0
for remove in $original; do
if [ "$folder" == "$remove" ]
then
found=1
fi
done
if [ $found != 1 ]
then
texclude=$texclude' '$folder
fi
done
texclude=$texclude" *.lck *.vmx *.vmsd *.log"
for ex in $texclude; do
exclude=$exclude' --exclude '$ex
done
echo "["`date`"] {$machine} ""pouziju nasledujici exclude: "$exclude
echo "["`date`"] {$machine} ""Kopiruju data stroje "$machine
rsync --inplace --bwlimit=5120 --delete-before $exclude --delete-excluded -v -ra $SOURCE'/'$machinedir $DESTINATION
echo "["`date`"] {$machine} ""Odstranuji snapshot stroje "$machine
vmrun -T server -u $USERNAME -h 'https://'$LOCATION':8333/sdk' -p $PASSWORD deleteSnapshot "["$STORAGE"] "$machine >/dev/null
sleep 5
echo "["`date`"] {$machine} ""Kopiruju konfiguracni soubory po odstraneni snapshotu stroje "$machine
rsync ./*.vmx $DESTINATION'/'$machinedir
rsync ./*.vmsd $DESTINATION'/'$machinedir
cd $SOURCE
}
cd $SOURCE
for dire in ./*/*.vmx ; do
machine=${dire:2}
machinedir=`dirname $machine`
prepare_vm_snapshot
done
Dirvish a kontrola pomoci nagios se nachazi na mnoha mych zalohovacich serverech, takze to nepotrebuju popisovat/zalohovat. Pokud by byl zajem, tak bych to nekdy mozna popsal, ale nejedna se o nic buh vi jak svetoborneho.
Tiskni
Sdílej:
Komentáře
Vložit další komentář
6.7.2011 22:41
jan.xxx
Re: VMware server 2
8.7.2011 11:52
ext3fs
Re: VMware server 2
8.7.2011 12:47
ext3fs
Re: VMware server 2
9.7.2011 02:31
D-Evil | skóre: 25
| Praha
Re: VMware server 2
Založit nové vlákno •
Nahoru