View Full Version : VMWare SERVER per Windows: come si SOSPENDE e RIPRENDE una VM?
Symonjfox
30-07-2009, 10:33
Salve a tutti, prima di scrivere qui ho cercato in lungo e in largo, ma non ho trovato quello che mi serve.
Dunque, da un cliente che abbiamo preso, c'è un Server Windows2003 standard, al cui interno c'è installato VMWare Server 2.0.
VMWare è configurato correttamente, all'avvio di questo server si carica una macchina virtuale che poi fa da Controller primario di dominio, e soprattutto tiene in piedi il loro programma di gestione pratiche (roba loro intenra).
Riassumendo, vogliamo fare un backup giornaliero della macchina virtuale, ma, come voi sapete, la VM deve essere SPENTA o SOSPESA.
Il backup va di notte, quindi nessuno lavora e posso tranquillamente spegnere la VM (potrei installarci dentro un software tipo Switchoff o altro).
Il problema è che, finito il backup, vorrei fare in modo che la VM si riaccendesse, in modo che la mattina quando loro rientrano al lavoro, è come se non fosse successo niente.
Sono 2 giorni che ci sto studiando, ma non trovo niente. Trovo tanti siti che parlano di Linux, ma nessuno di Windows (nel mio caso è sia host che client).
Spero che qualcuno possa aiutarmi.
Grazie
fedek9001
30-07-2009, 11:42
dovresti cercare l'help del comando vmrun.exe
Symonjfox
30-07-2009, 13:30
dovresti cercare l'help del comando vmrun.exe
L'ho appena guardato ... a prima vista sembra un po' complicato ... appena ho un attimo lo studio meglio.
Grazie intanto!
Symonjfox
31-07-2009, 08:11
vmrun.exe suspend "D:\VM\Vm.vmx"
e poi
vmrun.exe start "D:\VM\Vm.vmx"
Il comando stop è lo SPEGNIMENTO BRUTALE! Meno male che l'ho provato qui prima di farlo dal cliente ...
Dunque, ho provato sul lavoro, dove ho installato Vmware server e creato una macchina virtuale, ma mi dà un errore strano, tipo host (oggi vi do l'errore preciso).
Su un altro pc con Vmware workstation funziona.
Dal cliente, presumo che funzioni, perchè quando riavvii il server, automaticamente fa partire anche la VM (quindi presumo ci sia uno script in esecuzione automatica). Oggi è il grande giorno....
ti consiglio la guida in pdf corredata anche di numerosi esempi
http://www.vmware.com/pdf/vix162_vmrun_command.pdf
vmrun.exe suspend "D:\VM\Vm.vmx"
e poi
vmrun.exe start "D:\VM\Vm.vmx"
Il comando stop è lo SPEGNIMENTO BRUTALE! Meno male che l'ho provato qui prima di farlo dal cliente ...
...
basta aggiungere il parametro "trysoft", funziona sia sul comando stop che sul comando suspend.
Ciao
Federico
Symonjfox
31-07-2009, 13:09
ti consiglio la guida in pdf corredata anche di numerosi esempi
Grazie 10000 ora me la studio tutta....
basta aggiungere il parametro "trysoft", funziona sia sul comando stop che sul comando suspend. Altro comando interessante.
Oggi sono andato da questo cliente e purtroppo non ho avuto molto tempo per fare le mie prove. Ogni volta che riavvio la VM praticamente fermo 20 impiegati ....
Dunque: sia in ufficio che dal cliente, quindi entrambi VMWare Server 2.0, se faccio questo comando
vmrun.exe suspend "d:\virtual machines\virtual.vmx"
mi restituisce
Malformed hostname parameter. For the give service provider, the host name must be a URL, in the form https://<hostname>:port/sdk
Allora ho provato ad aggiungere anche l'url come viene scritto sul browser e la porta indicata sempre da browser ...
Come ripeto non ho potuto fare tante prove per motivi di tempo, martedì tornerò da questo cliente, spero con una soluzione valida.
Non mi va di fargli spegnere la VM e poi backup e poi riavviare il server (così all'avvio si avvia la VM in automatico).
PS: lo stesso comando con la stessa macchina virtuale su un pc con vmware worsktation funziona.
PPS: nella guida è spiegato che nella versione Workstation non è necessario mettere l'host, quindi è per questo che funziona...
-h https://<hostName>/sdk
Domanda, ma HostName è riferito alla macchina Host (quindi al server reale)? se mettessi
-h https://localhost/sdk o 127.0.01/sdk funzionerebbe?
Nessun mistero che il comando che tu dai funzioni su ws, visto che può solo controllare vm locali.
Invece con il server puoi benissimo controllare host remoti, per cui la sintassi è più complessa.
Nella guida che ti ho indicato guardati gli esempi di pag12
vmrun -T server -h https://ip dell'host:8333/sdk -u nome utente con privilegi di administrator -p password suspend "nome dello storage e percorso del file .vmx" soft
dove le parti in rosso le devi sostituire con i tuoi dati specifici
P.S. "trysoft" funzionava con il server1 con vmware-cmd
Symonjfox
31-07-2009, 13:32
Nella guida che ti ho indicato guardati gli esempi di pag12
vmrun -T server -h https://ip dell'host:8333/sdk -u nome utente con privilegi di administrator -p password suspend "nome dello storage e percorso del file .vmx" soft
Grazie mille. Si, infatti sto leggendo la guida tutta di un fiato ...
Adesso rientro in ufficio e provo subito.
Ne aprofitto per chiederti un'altra cosa: certa gente dice che per fare il backup di una VM occorra fare lo snapshot, io sapevo che bastava metterla in SOSPENSIONE o SPEGNERLA e poi copiare tutto.
Visto che il backup viene eseguito di notte e non c'è nessuno che lavora, io opterei per farla sopsendere o spegnere e farla attivare appena finito il backup.
Un discorso diverso potrebbe essere un gestionale di un hotel, dove essendo sempre aperto giorno e notte è più difficile trovare un orario preciso per fare il backup (e lo snapshot funziona anche senza sospendere la vm, giusto?).
grazie ancora.
Esatto.
Lo snapshot serve per fare una istantanea delle vm che, dovendo garantire continuità di servizio, non puoi fermare.
Ma se non hai di questi vincoli puoi tranquillamente fermarla, fare il backup e poi farla ripartire.
Ciao
Federico
grazie ancora
Di nulla!
:)
Symonjfox
31-07-2009, 14:45
Mamma mia, che nervoso ...
C:\Programmi\VMware\VMware VIX>vmrun.exe -h https://localhost:8333/sdk -u user -p l SUSPEND "c:\virtual machines\Windows XP Professional\Windows XP Professional.vmx"
Error: Cannot open VM: Windows XP Professional\Windows XP Professional.vmx, The virtual machine cannot be found
oppure
C:\Programmi\VMware\VMware VIX>vmrun.exe -t ws -h https://localhost:8333/sdk -u
user -p l SUSPEND "[STANDARD] Windows XP Professional/Windows XP Professional.vmx"
Error: Cannot open VM: [STANDARD] Windows XP Professional/Windows XP Professional.vmx, The virtual machine cannot be found
Facendo ...
C:\Programmi\VMware\VMware VIX>vmrun.exe -T server -h https://127.0.0.1:8333/sdk -u user -p l list
esce
Total running VMs: 1
[standard] Windows XP Professional/Windows XP Professional.vmx
quindi suppongo che la prima parte (host, nome e psw sono corrette ...).
Dopo tante prove trovato la soluzione: E' CASE SENSITIVE!!!!!
MEZZ'ORA A SMACCHINARMI LA TESTA .... :muro:
Mamma mia, che nervoso ...
Dopo tante prove trovato la soluzione: E' CASE SENSITIVE!!!!!
MEZZ'ORA A SMACCHINARMI LA TESTA .... :muro:
Probabilmente perché deriva dal mondo UNIX :D
Symonjfox
06-08-2009, 23:39
Lo scrivo così se qualcun altro ha problemi con questo programma, potrà facilmente trovare una guida.
- Prima cosa: sapere il nome esatto della macchina virtuale da controllare
Per fare questo basta usare il comando list
vmrun.exe -T server -h https://127.0.0.1:8333/sdk -u user -p password list
Comparirà, per esempio:
Total running VMs: 1
[standard] Windows XP Professional/Windows XP Professional.vmx
- Seconda cosa: creare un file .bat contentente lo script che volete far eseguire alla macchina reale (esempio nel mio caso, deve SOSPENDERE la macchina virtuale così poi parte il programma di backup e se la copia così com'è e poi deve RIACCENDERLA, in modo che la mattina dopo gli impiegati rientrano al lavoro come se nulla fosse -ma in caso di guasto avrei una copia perfettamente funzionante della loro VM, quindi li renderei operativi in poche ore dal guasto - ).
Aprite il vostro notepad e scrivete il comando.
Se avete letto bene il post, fate attenzione a 2 particolari:
- il nome host (per esempio io ho usato 127.0.0.1 cioè "me stesso" perchè lo script in questo caso viene eseguito dalla macchina host, ma in situazioni particolari questo potrebbe essere un indirizzo ip diverso, quindi occhio).
- caratteri maiuscoli e minuscoli (come fatto notare, gli ambienti UNIX sono severi).
Quindi ...
%programfiles%\VMware\VMware VIX\vmrun.exe -t server -h https://127.0.0.1:8333/sdk -u user -p password SUSPEND "[standard] Windows XP Professional/Windows XP Professional.vmx"
timeout /T 30
exit
%programfiles% significa la cartella programmi. Meglio scrivere così, visto che tanti sistemisti usano Windows Server in inglese (dove la cartella programmi è Program Files).
L'utente e la password solitamente coincidono con quelli dell'administrator, ma non è detto. Quando provate ad accedere all'interfaccia utente web di vmware vi vengono richiesti nome e password: usate quelli.
Il nome esatto della VM l'ho scritto tra " " perchè potrebbe contenere degli spazi al suo interno. Consiglio mio è di fare copia e incolla dal comando LIST, almeno non sbagliate a scrivere (per esempio io avevo scritto [STANDARD] al posto di [standard] e il comando diceva che era impossibile trovare la macchina virtuale.
PS: il comando timeout è stato messo solo per essere sicuri che la macchina sia effettivamente sospesa, per esempio, prima che parta il software di backup.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.