I have run multiple searches in google and these communities and have found nothing that resembles the issue we are having.
There is an orphaned VM with Virtual Centre, I know it's only in Virtual Centre as if I login to the VI client directly on the host the VM no longer exists. Just to make things clear I have no need to keep the VM as it was a testing only.
I connect to the VC server again and then right click on the VM but the options are small and delete is not available. If I hit the delete key on the keyboard I get the message "You do not have the privilege to delete the selected items". I am beginning to suspect this is an issue with VC Server miss reporting the VM which I again suspect is maybe registered in the VC Server SQL database.
Has anyone come across this. I have restarted the following services mgmt_vmware \ vmware_vmkauthd \ vmware_vpxa and also reboot Virtual Centre
We are running VC Server 2.5.0 Build 119598 and ESX server 3.5.0 Build 123630.
Thanks in advanced.
Have you tried un-registering the VM?
Mike
also try to restart your vCenter Server Service.
We do lots of testing and sometimes will get 20-40 orphaned VM(s) and as you said on the individual host they'll be gone but on vCenter there is still the stale orphaned instances. You could manually remove from inventory on each one or bulk them up in a folder, but I decided to write a small script to automate this if you have orphaned VM(s) showing up in vCenter.
#!/usr/bin/perl -w use strict; use warnings; use VMware::VILib; use VMware::VIRuntime; Opts::parse(); Opts::validate(); Util::connect(); my ($hosts, $host); $hosts = Vim::find_entity_views(view_type => 'HostSystem'); unless (defined $hosts){ die "No hosts found.\n"; } foreach $host(@{$hosts}) { print "Searching Host: ", $host->name,"\n"; my $vm_views = Vim::get_views(mo_ref_array => $host->vm, properties => ); foreach(sort {$a->{'summary.config.name'} cmp $b->{'summary.config.name'}} @$vm_views) { if($_->{'summary.runtime.connectionState'}->val eq 'orphaned') { print "\t",$_->{'summary.config.name'}, " ", $_->{'summary.runtime.connectionState'}->val," & Removed from inventory!\n"; $_->UnregisterVM(); } } } Util::disconnect();
This Perl script just connects to vCenter and will look for all VM(s) that have a connectionState equal to orphaned and it'll unregister and remove from inventory.
Generally you should be able to manually remove from inventory using the VI Client and if vCenter is being stubborned, you can restart the services as suggested and usually that'll do that trick.
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
responded to the wrong post - 😛 :smileycool:
Hi William,
When you say manually remove them from the inventory I am trying to do this throught eh Vi client connected to Virtual Centre. The way I have tried is to right click on the orphan but the only options I get are the following
Snapshot, Add Alarm, Add Permission, Open Console, Report Performance, Migrate Storage.
There is no delete function available. Is supect the VM is registered in the Virtaul Centre's database but there is no instance on the host so how would I do this ?
With the script you refer to do I run this on a service console within one of the hosts ? And also do I replace theany of the variables with the name of our Vcentre Server ?
Thanks for your help.
To msemon1 I can't as the files are no longer on the Lun as in desperation I have removed to see if this would fix the issues.
To Troy Clavell yes I have rebooted the Virtual Centre server.
Thanks guys for the suggestions
The script should be pointing to your vCenter server and using valid credentials to login and requires you to install the VI Perl Toolkit on either a Windows or Linux system, it's not to be executed on the Service Console of the host. The issue lies in your vCenter having stale information, to the script will query vCenter to see if it even detects those Orphaned VM(s) and check the state it thinks it's in.
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
Go to the service console of the problematic ESX host. Run the following command with root privileges:
vmware-cmd -l
output looks like :
/vmfs/volumes/48341f38-2b47d258-9433-0013216bc092/vm01/vm01.vmx
Now you see the registered vm's on that esx host. To unregister them use the following command:
vmware-cmd -s unregister /vmfs/volumes/48341f38-2b47d258-9433-0013216bc092/vm01/vm01.vmx
William I take it you install the pearl application on the Vcentre server then ?
Thanks
You can install it on the vCenter server, but it does not have to. Usually you would just install it on a desktop system that you would use to connect to vCenter/etc.
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
William how do you tell the program what Vcentre server you are using ? Is there a line in the script that you kindly supplied that I have to change to specify the server ?
Many thanks
Mathew thanks for the reply, I am getting the output below now (I have replaced details with xxx to hide information), I am assuming this is not right ?
"P:\>P:\vc.pl --server xxxxxxxx --username xxxxxxxx
Enter password:
Searching Host: xxxx.xxxx.com
Odd number of elements in hash assignment at C:/Program Files/VMware/VMware VI P
erl Toolkit/Perl/lib/VMware/VICommon.pm line 1059, <STDIN> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Use of uninitialized value in string comparison (cmp) at P:\vc.pl line 23, <STDI
N> line 1.
Can't call method "val" on an undefined value at P:\vc.pl line 24, <STDIN> line
1.
End Disconnect"
What version of vCenter and ESX/ESXi are you using? This should work on ESX 3.5+ and vCenter 2.5+ using VI SDK 2.5
Here the same code working on a Windows XP system running VI Perl Toolkit 1.6
C:\Documents and Settings\Administrator\Desktop>getVMState.pl --server reflex.pr imp-industries.com --username primp Enter password: Searching Host: himalaya.primp-industries.com Auroa connected Bitsy connected Certiorari connected Clifford connected ESX-Kickstart connected Fourier connected ......
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
William,
Your not going to beleive how this was fixed. We had to contact VMware about another issue with VC update 4, whilst the guy was on he fixed this but doing the following.
Under VIRTUAL MACHINES AND TEMPLATES he created another folder called TEST then he dragged the machine into this folder and then delete the folder which deleted the stale VM inside it !!!
Now theres a piece of useful info !!!
Thanks for all your help BTW.
Ivan