Toon posts:

[VMWARE] identify cluster of virtual servers

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

In opdracht voor een project zou het handig zijn om op een of andere manier de virtuele servers aan te kunnen duiden dat bij 'elkaar' horen (zonder op de vmware servers zelf te kijken). Ik kan over de domain admin user / pass beschikken (zodus ook over local admin).

Stel, er zijn 50 fysieke machines met elk circa 10 servers op draaiende. Ik zou op een snelle en efficiënte manier willen weten hoeveel virtuele servers er draaien en hoeveel fysieke machines er zijn.
BVB: uit een scan volgt als resulaat : 450 virtuele servers en daarvan horen 10 bij fysieke server 1, 20 bij een andere fysieke server 2, 20 bij een andere fysieke server 3...

Mijn vraag is: Is dit mogelijk ? en zoja, hoe ?

(Indien je zoals ik te werk zou gaan met hardware details dan:
Ik heb al geprobeerd om te kijken naar de 'hardware' maar aangezien vmware 'virtuele servers' maakt, maakt het ook speciale virtuele hardware aan en met als resultaat dat als je 2 dezelfde fysieke servers hebt je het onderscheid niet kan maken. )


Alvast bedankt!

  • Zwelgje
  • Registratie: November 2000
  • Laatst online: 20-01 19:37
filteren op mac address :? de eerste paar digits zijn van bepaalde vendors.

VMware ESX 3, Server, Workstation, Player 00-50-56, 00-0C-29, 00-05-69
Microsoft Hyper-V, Virtual Server, Virtual PC 00-03-FF
Parallells Desktop, Workstation, Server, Virtuozzo 00-1C-42
Virtual Iron 4 00-0F-4B
Red Hat Xen 00-16-3E
Oracle VM 00-16-3E
XenSource 00-16-3E
Novell Xen 00-16-3E
Sun xVM VirtualBox 08-00-27

zo zou je dit vrij makkelijk moeten kunnen filteren lijkt me :)

A wise man's life is based around fuck you


Verwijderd

Topicstarter
Thanks voor de snelle reply

Ja, daar had ik ook al aan gedacht maar ... dan kan je toch niet zien welke 'clusters' bij elkaar horen ?
Zo bedoel ik :

je krijgt mac adres
A
B
C
D
E
F
G
...

Stel : je hebt 3 servers waar VMWARE op staat. hoe kan je dan weten welke mac adressen bij elkaar horen (en met elkaar bedoel ik de fysieke server, dus dat je kan zegge A,B en D horen bij server1; C, E en F horen bij server 2 ...). Zit daar dan ook een vaste structuur in ? of volgende de mac adressen willekeurig op elkaar?

[ Voor 9% gewijzigd door Verwijderd op 30-12-2008 09:44 ]


  • Zwelgje
  • Registratie: November 2000
  • Laatst online: 20-01 19:37
mischien is deze tool wel wat je zoekt: http://www.veeam.com/vmware-esx-reporting_enterprise.html

werkt alleen met vmware esx

A wise man's life is based around fuck you


Verwijderd

Topicstarter
zal ik eens proberen thanks ... Andere alternatieven zijn altijd welkom.

  • RolandZ
  • Registratie: Oktober 2008
  • Laatst online: 20-05-2019
Zijn het ESX Servers? Of ESXi? Of Server?

Uitgaande van ESX:
Tenzij je standalone ESX Servers hebt, kan je hiervoor gewoon de VI Client gebruiken. Als je standalone servers hebt, dan kan je zelf met de VI Powershell Toolkit gaan scripten, of je kan gebruik maken van bestaande scripts. Kijk bv. eens op http://www.yellow-bricks....health-check-tools-i-use/ voor allerlei handige tools.

Maar als je ESX met alle toeters en bellen hebt, is deze info weer snel verouderd door DRS VMotion acties waarschijnlijk. Dus waarom wil je het eigenlijk weten?

Fabricati Diem, PVNC


Verwijderd

Topicstarter
De Bedoeling is om snel en eenvoudig een inventarisatie te kunnen maken van een 'park'. Wanneer ik bij een park A kom wil ik gewoon een scriptje runnen ofzoiets zodat ik weet welke virtuele servers bij elkaar staan op welke fysieke machine. Dit is handig voor later gebruik (aangezien we enkel naar de fysieke machines moeten kijken kunnen we dan alle virtuele servers eruit filteren of mappen als 1 fysieke server waarvan we dan de informatie nog moeten uitpluizen of opzoeken.)

Wat ik wil is iets (liefst een script of een simpele batch file zoals psinfo ofzo dat ik wat kan tweaken waar nodig) dat me verteld welke virtuele servers bij elkaar horen op een fysieke server (als een simpel commando in dos ervoor zorgt dat een parameter zoals bvb domweg een IP hetzelfde is , dan kan ik later bij de reconcilidatie van de data een filter instellen op IP adress en kan ik zien welke servers hetzelfde ip adres hebben, snap je ? ) . Ik heb al een script voor de informatie af te halen die ik nodig heb van desktops en gewone servers die windows omgeving draaien. wanneer ik echter dit uitvoer op een virtuele machine dan vind ik idd iets dat me kan vertellen dat het een virtuele server is maar ik weet niet welke virtuele servers bij elkaar horen.

Hopelijk is het nu wat duidelijker ?

ik wil dus iets vinden dat gelijk is voor virtuele server A en B die gehost zijn op server 1 maar niet gelijk is voor virtuele server C die op server 2 gehost staat.

[ Voor 6% gewijzigd door Verwijderd op 30-12-2008 11:24 ]


  • Zwelgje
  • Registratie: November 2000
  • Laatst online: 20-01 19:37
heb je ook al in virtual center gekeken mbt de maps functionaliteit :?

http://www.petri.co.il/images/vmware-virtual-center-03.jpg (voorbeeld map)

dat zit er namelijk default al in en is gratis en kan exporteren

A wise man's life is based around fuck you


  • RolandZ
  • Registratie: Oktober 2008
  • Laatst online: 20-05-2019
Ok, maar voor zover ik weet:
De virtuele machine heeft geen idee waar die draait, en er zijn geen overeenkomsten tussen virtuele machines op dezelfde host. Dat gaat je dus nooit lukken door naar de virtuele machines te kijken. Anders zou de config van een VM veranderen bij een VMotion. En dat is natuurlijk niet wenselijk.

Je zal een apart script moeten gaan draaien die je aan de Virtual Center koppelt en daar je info uit gaat trekken. Maar voor virtuele machines in een DRS/VMotion omgeving is het niet interessant waar ze draaien. Dat kan een uur later alweer anders zijn. Dus als je weet dat het een VM is zou dat toch voldoende moeten zijn?

Fabricati Diem, PVNC


Verwijderd

Topicstarter
dat is enkel afhankelijk als het een cluster is ?

kunnen ook geen clusters zijn ?

Een extern programma is ook minder handig voor mij, ik wil meer iets dat ik via commandline kan doorgeven op elke windows en zo kan filteren ... psinfo likewise.

Wat hierboven staat volg ik deels ook. Toch zou ik graag weten welke op dezelfde server draaien op het moment dat ik de test doorvoer, ik weet dat het een uur later (of zelfs 1 sec) anders kan zijn. Het is een momentopname.

[ Voor 31% gewijzigd door Verwijderd op 30-12-2008 11:49 ]


  • RolandZ
  • Registratie: Oktober 2008
  • Laatst online: 20-05-2019
Ok, maar dan heb je het probleem dat er aardig wat verschillende virtualisatie applicaties zijn. ESX/ESXi, MS Hyper-V, VMware Server en Workstation, Xen, Virtual Iron, VirtualBox etc. Voor ieder moet je dan een apart script bouwen. Daarnaast zal je toch de namen/ip adressen van de hosts moeten opvragen, en dat levert dus uiteindelijk aardig wat handwerk op. Ben je sneller klaar met een handmatige controle, misschien muv echt grote ESX implementaties.

Voor VMware (ESX(i)) zijn genoeg powershell scripts beschikbaar om info uit een VI omgeving te trekken, evenals grafische tools. Voor de anderen gaat het lastiger worden.

Fabricati Diem, PVNC


  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Hoe zijn je SQL skills? Als er namelijk gebruik wordt gemaakt van vCenter staan alle gegevens in een database. Dit dan MSSQL200* (/express) zijn of een Oracle database. Deze heeft de actuele stand van gegevens zoals de vCenter service deze heeft.

Wil je buiten vCenter om deze gegevens opvragen kan het lastig worden. Als de ESX(i) Host onderdeel is van een cluster moet je de vpxuser gaan gebruiken om de data op te vragen (passwd staat in de zelfde eerder genoemde database). Elke andere admin user kan uitgesloten zijn (lockdown mode).

Iets wat je op elke windows kan opgeven is sowieso niet te doen. Er zal dan toch iets van remote-CLI voor vmware op de windows machine geinstalleerd moeten zijn.

mochten het zoals in je voorbeeld 50 losse servers zijn, moet je op de CLI 50 hosts, usernamen en passwd's opgeven, wil je dat in 1x uitvragen (elke server moet dan apart benaderd worden). Tegen de tijd dat je er 50 moet opgeven zal het geheel CLI niet meer handig zijn.. een tikfoutje en je mag weer opnieuw beginnen...

[ Voor 31% gewijzigd door bakkerl op 30-12-2008 13:19 ]


Verwijderd

Topicstarter
een lijst van alle machines kan ik opvragen op de 'domain controller', even AD openen en je hebt de lijst van de computers binnen het domain. Deze kan ik exporteren en ik heb alles dat ik moet weten. Stel nu dat ik een simpel scriptje maak dat gewoon op een lijst machines.txt de informatie ipconfig /all of eender wat opvraagd. Dit is perfect doenbaar. Mijn intentie was om zoiets dergelijk te gebruiken zodat ik snel en eenvoudig een onderscheid kan maken en groepen van virtuele servers bij elkaar kan plaatsen. Ik heb een pull uit AD zowieso nodig voor alle desktops te weten.

Jammer genoeg besefte ik dat het niet zo eenvoudig ging zijn en daarom poste ik ook deze vraag.

De bedoeling is om zo weinig mogelijk andere software te installeren ...

De powershell scripts van Rolandz, kan je me even helpen, ik heb er geen ervaring mee... Hoe gaan deze te werk ? Waar dien je deze in te vullen etc ? Ik zal straks ff een google'tje starten erover.

voor: bakkerl

Ik ken wel wat van SQL (ik trek mijn plan erin), het is niet dat ik extreem grote queries te baas kan maar ik kan gerust overweg met queries.
Maar ik heb nog een vraagje over die vCenter. Gaat deze alles weergeven ? waar dient deze vCenter op installed te worden ? een client ? een server ? Ik zal straks normaal ook even een google'tje opstarten voor dit. Ik volg je redenering niet goed voor 50 x user en pass ... Ik gebruik de domainadmin user en pass welke local admin rechten heeft aldus kan ik normaliter commando's uitvoeren ?


Zeker en vast al een dikke bedankt voor jullie help.

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 20-01 20:59

bakkerl

Let there be light.

Verwijderd schreef op dinsdag 30 december 2008 @ 13:42:
een lijst van alle machines kan ik opvragen op de 'domain controller', even AD openen en je hebt de lijst van de computers binnen het domain. Deze kan ik exporteren en ik heb alles dat ik moet weten. Stel nu dat ik een simpel scriptje maak dat gewoon op een lijst machines.txt de informatie ipconfig /all of eender wat opvraagd. Dit is perfect doenbaar. Mijn intentie was om zoiets dergelijk te gebruiken zodat ik snel en eenvoudig een onderscheid kan maken en groepen van virtuele servers bij elkaar kan plaatsen. Ik heb een pull uit AD zowieso nodig voor alle desktops te weten.
Virtuele machines 'weten' niet dat ze virtueel zijn. Je zou het kunnen onderscheiden door kenmerken van de virtuele hardware en.of software: MAC adres, video driver, geinstalleerde software (vmware-tools). Verder kun je daar niet uit afleiden. Daarmee kun je dus nooit bepalen op welke fysieke hardware die specifieke virtuele machine draait, staat. En al zou het kunnen, gaat bovenstaande alleen op van machines die dan aan staan. De gene die uit staan heb je daarmee niet in je overzicht.

Bij het starten in een vmware cluster wordt (standaard) op dat moment pas bepaald op welke fysieke machine de virtuele machine gestart wordt. Ook wordt bij het starten het MAC adres bepaald. Deze hoeft dus zeker niet altijd het zelfde te zijn!
Verwijderd schreef op dinsdag 30 december 2008 @ 13:42:
voor: bakkerl

Ik ken wel wat van SQL (ik trek mijn plan erin), het is niet dat ik extreem grote queries te baas kan maar ik kan gerust overweg met queries.
Maar ik heb nog een vraagje over die vCenter. Gaat deze alles weergeven ? waar dient deze vCenter op installed te worden ? een client ? een server ? Ik zal straks normaal ook even een google'tje opstarten voor dit. Ik volg je redenering niet goed voor 50 x user en pass ... Ik gebruik de domainadmin user en pass welke local admin rechten heeft aldus kan ik normaliter commando's uitvoeren ?
Met de domein users kun je misschien veel binnen je guest systemen (de virtuele machines) omdat deze windows als OS hebben. De Host machines waar ESX(i) op staat, heb je weinig aan met windows domein user. ESX heeft een RH3 variant waar naar toe je kunt SSH-en om op de commandline nog wat dingen op te vragen (ook welke virtuele machines daar op staan/draaien). De ESXi variant zul je het zeker remote moeten dus.

Als je wil weten waar welke virtuele machine staat, zul je toch met de hosts moeten communiceren. De guest machines weten niet op welke fysieke host ze staan. Dus informatie aan de windows guests vragen heeft geen nut.

Omdat het dus een linux variant is, of sowieso remote zal moeten, zul je voor elke host de naam, usernaam en wachtwoord moeten opgeven om er naar toe te connecten om de gegevens op te kunnen vragen. Als je dit dus rechtstreeks op de 50 hosts wil doen, zul je 50 hostnamen, usernamen en wachtwoorden moeten opgeven (ook usernamen, omdat je niet standaard er vanuit mag gaan dat 'root' bruikbaar is).

vCenter is een apart product welke verplicht nodig is als je vmware hosts in een cluster wil zetten. vCenter zorgt voor de DRS en HA configuratie. vCenter heeft dus ook het overzicht van alle fysieke machines, virtuele machines en de status daarvan.
vCenter moet geinstalleerd worden op een windows host. Binnen vCenter kunnen daarna window (domain) gebruikers rechten gegeven worden voor bepaalde handelingen. vCenter is echter een los product van vmware en er moet stevig voor de licenties betaald worden (product zelf heeft een licentie en per esx host moeten er (per 2 fysieke CPU's) licenties aanwezig zijn.Ook vCenter heeft een api waar je remote tegen aan kunt praten om zo de informatie op te vragen.

Maar ik zou als ik jou was, je eerst eens verdiepen in ESX(i) in een cluster omgeving. Wat daar voor nodig is, hoe het werkt en welke onderdelen er allemaal zijn. Ik heb nog niet het idee dat het cluster concept van vmware er een beetje bij je inzit ;)

Verwijderd

Topicstarter
Thanks voor de grote reply en voor de verduidelijking.

Ik dacht al dat vCenter zo'n dergelijke programma was en dat het idd veel zou vragen van ons financieel dan. Wat voor dit project een onbegonnen zaak is.

Misschien heb ik ergens het woord 'cluster' verkeerd gebruikt of zijn we ergens de feeling kwijt geraakt.
Ik bedoelde een server die bvb 3 virtueel een OS draait (bvb windows xp), dus 3 keer een virtuele op 1 fysieke. Ik begin hier nog niet over redundantie van servers voor als de ene server down gaat dat de andere het over neemt etc etc etc. Neen, ik hou het nog steeds basis.

als ik nu een network commando ingeef waar ik vraag aan alle windows OS'n die draaiende zijn om mij iets te geven een ping reply een psinfo query of eender wat als resultaat te geven, dan gaan zowel de fysieke computers als de virtuele die windows draaien mij dit geven.

Het enige wat ik wil op dit moment is iets waaraan ik kan zien welke virtuele bij elkaar horen, ik kan al een onderscheid maken tussen de virtuele en de fysieke windows'n die ik contacteer (omdat de output file iets vermeld dat typisch is voor virtuele). Wat ik nu zoek is iets waaruit blijkt dat de windows'n bij elkaar horen dus draaiende zijn op dezelfde fysieke server, dit lukt tot op zekere mate door motherboard/cpu etc info te vragen, het enige probleem hierbij is, is dat als je bvb 2 identieke servers (fysische) hebt in een park, dan is die informatie identiek (de codename is hetzelfde) en weet je dus niet dat het over 2 fysieke servers gaat.

Daarom dat ik jullie hulp vroeg.
Pagina: 1