A seguito di modifiche mentre il server VMware ha tutte le risorse impegnate può succedere che vi venga fuori questo errore:

Cannot open the disk Reason : The parent virtual disk has been modified since the child was created

Questo errore non permette di avviare la macchina virtuale, dopo una ricerca nella kb di vmware sembra che il problema risiede

nel vmdk della snapshot che ha perso il parent cid.

Per risolvere il problema collegarsi via ssh al server Esxi navigare all’interno del datastore fino a trovare la directory della macchina virtuale.

# cd /vmfs/volumes/46c0f14f-55428b78-a2d3-0018fe79b968/hudson

facciamo ls  e troviamo i file che ci interessano (il vmdk originale, gli snapshot e il vmx).

/vmfs/volumes/46c0f14f-55428b78-a2d3-0018fe79b968/hudson# ls

hudson01.vmdk

hudson01-000001.vmdk

hudson01-000002.vmdk

hudson01.vmx

Cerchiamo di capire quindi cosa veniva avviato, apriamo il file vmx e andiamo a leggere il campo scsi0:0.fileName

scsi0:0.fileName = “hudson01-000002.vmdk”

Nel nostro caso significa che a partire è il secondo snapshot (identificato dallo 000002).

Apriamo il vmdk originale con l’editor vi.

# Disk DescriptorFile

version=1

CID=bea5305c

parentCID=ffffffff

createType=”vmfs”

# Extent description

RW 41943040 VMFS “hudson-flat.vmdk”

# The Disk Data Base

#DDB

ddb.geometry.biosSectors = “63″

ddb.geometry.biosHeads = “255″

ddb.geometry.biosCylinders = “2610″

ddb.adapterType = “buslogic”

ddb.geometry.sectors = “63″

ddb.geometry.heads = “255″

ddb.geometry.cylinders = “2610″

ddb.uuid = “99 01 C4 9f 36 ce 65 03-73 55 15 7e 92 88 c8 4c”

ddb.toolsVersion = “5353″

ddb.virtualHWVersion = “7″

Il campo che ci interessa è CID (in questo caso bea5305c), che andremo a sostituire nel campo parentCID del primo snapshot.

/vmfs/volumes/46c0f14f-55428b78-a2d3-0018fe79b968/hudson# vi hudson-000001.vmdk

# Disk DescriptorFile

version=1

CID=b9567c51

parentCID=bea5305c

createType=”vmfsSparse”

parentFileNameHint=”hudson.vmdk”

# Extent description

RW 41943040 VMFSSPARSE “hudson-000001-delta.vmdk”

# The Disk Data Base

#DDB

ddb.toolsVersion = “5353″

Salviamo con :wq

Il primo snapshot è ora sistemato, dobbiamo poi riparare il secondo, apriamolo con vi e vediamo di chi è parent.

/vmfs/volumes/46c0f14f-55428b78-a2d3-0018fe79b968/hudson # vi hudson-000002.vmdk

# Disk DescriptorFile

version=1

CID=1efd6875

parentCID=b9567c51

createType=”vmfsSparse”

parentFileNameHint=”hudson-000001.vmdk”

# Extent description

RW 41943040 VMFSSPARSE “hudson-000002-delta.vmdk”

# The Disk Data Base

#DDB

ddb.toolsVersion = “5353”

Dal campo parentFileNameHint capiamo che è legato al primo snapshot (hudson-000001.vmdk), prenderemo quindi il valore CID presente nel file Webserv01-000001.vmdk, e lo sostituiremo come valore parentCID in hudson-000002.vmdk.

Salviamo con :wq

Ora possiamo avviare tranquillamente la nostra macchina virtuale.

Spero possa essere di aiuto

By

Frank

Può nascere la necessità di fare N operazioni sul nostro server VMware come ad esempio Backup,Recovery Vmdk danneggiati, Recovery Snapshot, Spostamento ISO per nuove installazioni ecc.. tutte cose che normalmente l’interfaccia di vmware esxi non consente, tutte queste operazioni posso essere fatte da console abilitato il demone ssh che di default è disabilitato.

Ecco i passi da eseguire:

  1. Dalla console di Esxi (in locale sul server non è possibile farlo in remoto), premere alt+F1
  2. Scrivere: unsopported
  3. Digitare la password di root
  4. Modificare dunque inetd.conf con vi : vi /etc/inetd.conf
  5. Cercare la riga che inizia con #ssh e rimuovere il #
  6. Salvare con :wq
  7. Far ripartire i servizi digitando /sbin/services.sh restart
Spero possa essere utile a molti
By
Frank

In alcune configurazioni mi è capitato di configurare dei  faxserver su ambienti virtuali, siccome utilizzo deifantastici modem usb “Multi-Tech MT5634ZBA-USB-V92″ avevo il problema che al riavvio del server lamacchina virtuale perdeva il collegamento con il modem, e dovevo andare a fare il join manualmentenellaconfig di vmware. Cercando nella kb ho scoperto che il join può essere fatto in automatico seguendo i seguenti passi:

1) Dal server host bisgona lanciare il comando lsusb e recuparare l’identificativo associato al nostro modem Ex.

DebianFax:~# lsusb

Bus 001 Device 002: ID 06e0:f107 Multi-Tech Systems, Inc. MT5634ZBA-USB-V92 MultiModemUSB

2) Dopo andiamo a modificare la voce relativa alla porta usb nel file VMX della nostra macchina virtuale
usb.autoConnect.device0 = “0×06e0:f107″ (viene aggiunto 0x + l’id ricavato da lsub)
In questo modo ad ogni riavvio del server host sarà eseguito in automatico il join del modem usb all’interno della macchina virtuale.
Spero possa essere utile
by
Frank

Se volete creare una una macchina virtuale che sia compatibile per abedue le applicazioni, la soluzione migliore è creare il disco della macchina virtuale utilizzando il formato vmdk.

Per creare il nuovo hard disk ci viene incontro l’utility Qemu che in realta è un sistema di virtualizzazione come VMware e Virtualbox, di seguito i passi da eseguire:

1) apt-get install qemu (installiamo il pacchetto interessato)

2) qemu-img create -f vmdk Ubuntu.vmdk 10 G (Viene creato un Disco da 10 Gagabyte)

In questo modo la nostra VM sarà universale :-)

By

Frank

Per espandere un disco virtuale di vmware è sufficiente digitare da console i seguenti comandi (naturalmente dopo aver stoppato la macchina virtuale e averne fatto un backup).

vmware-vdiskmanager -x 20GB virtual_disk.vmdk (Vmware Server)
vmkfstools -X 20g
virtual_disk.vmdk (Vmware Esx)

Al termine è necessario eseguire il resize delle partizioni con tool tipo Partition Magic.
Io consiglio il software open source gparted http://gparted.sourceforge.net/