donderdag 24 april 2008

Verplaatsen opslag virtuele machines met Storage Vmotion

Onlangs heb ik één van de nieuwe features van ESX3.5 gebruikt, namelijk Storage Vmotion. Hiermee is het mogelijk om zonder downtime de opslag van een virtuele machine te verplaatsen.

Helaas kun je Storage Vmotion niet aanroepen met de VI client, maar is de Remote CLI vereist. Deze bevat een commando 'svmotion' die een Storage Vmotion opdracht kan uitvoeren. De syntax van svmotion is als volgt:

svmotion [Standard remote CLI options]
--datacenter=<datacenter name>
--vm="<VM config datastore path>:<new datastore>"
[--disks "<virtual disk datastore path>:<new datastore>, <virtual disk datastore path>:<new datastore>]"


Met dit commando is het mogelijk om (afhankelijk van de opgegeven argumenten) een complete virtuele machine te verhuizen naar een andere datastore, of slechts enkele schijven. Een belangrijke kanttekening hierbij is dat de VM config datastore path die bij het vm argument wordt opgegeven niet hetzelfde mag zijn als de new datastore. Anders gezegd de configuratie, log en andere bestanden die in een directory van een virtuele machine staan moeten verhuizen. Met het disks argument kan eventueel per VMDK bestand worden opgegeven welke schijven moeten verhuizen of moeten blijven staan op de originele locatie. Ook mag de virtuele machine waarvan de opslag verplaatst gaat worden geen snapshots bevatten.

Zie voor meer informatie de Virtual Infrastructure documentatie op het volgende URL: http://pubs.vmware.com/vi35/ (via de index: Basic System Administration/Migrating Virtual Machines/Migration with Storage VMotion).

Mocht je de Remote CLI willen uitproberen, pas dan op aangezien deze een complete ActiveState perl distributie bevat. Mocht je al perl op je machine hebben staan dan kan dit mogelijk voor ongewenste bijeffecten zorgen.

dinsdag 1 april 2008

Virtual Center session count

Virtual Center kent veel mogelijkheden om het beheer van het virtuele machinepark te automatiseren. Dit is onder andere mogelijk met de VI Perl Toolkit. Deze interface bied de mogelijkheid om door middel van Perl scripts de VI API te gebruiken.

Tijdens het gebruik van deze toolkit is mij (wederom) gebleken dat het automatiseren door middel van eigen geschreven scripts de nodige risico's met zich meebrengt.

Een van de gebruikte scripten op de server van mijn opdrachtgever voerde een beschikbaarheids controle uit door simpelweg in te loggen op de Virtual Center web interface. Echter de routine om uit te loggen stond niet op de juiste plek in het script en werd nooit aangeroepen.

Het gevolg hiervan was dat na enkele momenten het limiet was bereikt van het maximaal aantal gelijktijdige sessies. Proefondervindelijk is vastgesteld dat dit maximum op de huidige versie van Virtual Center - versie 2.5 - op 100 is ingesteld. Indien deze situatie zich voordoet zal de volgende melding in de vpxd log bestanden worden weggeschreven:

"SOAP session count limit reached".

Gelukkig kan ook het aantal sessies door middel van de VI Perl toolkit worden bewaakt. Zie hiervoor de VMware Infrastructure SDK reference guide en zoek hier naar het UserSession Data Object.

Hopelijk ben je door het bewaken van het aantal gelijktijdige sessies het moment dat het écht fout gaat voor.