VMware Cloud Community
WillL
Enthusiast
Enthusiast
Jump to solution

can't insert media for new VM

Here is the configuration:

2x ESXi without shared storage, in same cluster of vCenter DC

media (OS iso files) were imported from vShpere in VCD console, media folder was created on datastore of ESX no.2 server, noticed that one iso file was able to be copied remotely from ESX no.1 server.

In Organization VCD console, create a VM, verified it's under ESX no.1 server according to vCenter console, try to "Insert CD/DVD..." when power on or off, got the error below in vcloud-container-debug.log:

I suspect the VM on ESX no.1 can't access the media file on ESX no.2 server (at least can't do this using vCenter), is there any workaround?

Thanks,

William

2010-09-03 10:57:26,708 | INFO | Quartz-pool-1-thread-542 | TaskManager | waitForCompletion (safe) for task returning completion status ERROR | #778461740

2010-09-03 10:57:26,708 | DEBUG | Quartz-pool-1-thread-542 | TaskManager | Attempting remove of wait handle for task | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | Task dump: | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | LmVimMoRef dump: type=Task value=task-238 | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | entityName = 0516723195-RHEL | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | descriptionId = VirtualMachine.reconfigure | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | state = error | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | name = ReconfigVM_Task | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | TaskWaiterInvRecord | error.localizedMessage = Invalid configuration for device '0'. | #778461740

2010-09-03 10:57:26,708 | ERROR | Quartz-pool-1-thread-542 | LmVim | Fault of type http://com.vmware.vim.binding.vim.fault.InvalidDeviceSpec is not handled. | #778461740

2010-09-03 10:57:26,709 | ERROR | Quartz-pool-1-thread-542 | TaskServiceImpl | Unable to execute task VAPP_INSERT_CD_FLOPPY(com.vmware.vcloud.entity.task:778461740) | #778461740

com.vmware.ssdc.util.LMException: Fault of type com.vmware.vim.binding.vim.fault.InvalidDeviceSpec is not handled. Message[FAILURE]: Invalid configuration for device '0'.

Invalid configuration for device '0'.

- Multiple Exceptions follow: [com.vmware.vim.binding.vim.fault.InvalidDeviceSpec:

deviceIndex = 0

inherited from com.vmware.vim.binding.vim.fault.InvalidVmConfig:

property = deviceChange[0].device.backing.fileName

inherited from com.vmware.vim.binding.vim.fault.VmConfigFault:

inherited from com.vmware.vim.binding.vim.fault.VimFault:

inherited from com.vmware.vim.binding.vim.fault.InvalidDeviceSpec: Invalid configuration for device '0'.]

at com.vmware.ssdc.library.vim.LmVim.Convert(LmVim.java:474)

at com.vmware.ssdc.library.vim.LmVim.Convert(LmVim.java:498)

at com.vmware.ssdc.library.vim.LmVim.Convert(LmVim.java:509)

at com.vmware.vcloud.val.taskmanagement.TaskWaiterInvRecord.CheckForError(TaskWaiterInvRecord.java:187)

at com.vmware.vcloud.val.internal.impl.VC20VirtualServer.reconfigureVm(VC20VirtualServer.java:1887)

at com.vmware.vcloud.val.internal.impl.VC20VirtualServer.InsertMediaDevice(VC20VirtualServer.java:716)

at com.vmware.vcloud.val.internal.impl.VC20VirtualServer.InsertCD(VC20VirtualServer.java:769)

at com.vmware.ssdc.backend.services.impl.VmManagerImpl.insertMedia(VmManagerImpl.java:1342)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)

at com.vmware.ssdc.backend.annotation.GenericMethodDiagnosticsInterceptor.aroundMethod(GenericMethodDiagnosticsInterceptor.java:36)

at sun.reflect.GeneratedMethodAccessor2074.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at $Proxy125.insertMedia(Unknown Source)

at com.vmware.vcloud.vapp.impl.VAppServiceImpl.insertMediaTask(VAppServiceImpl.java:1654)

at com.vmware.vcloud.vapp.impl.VAppServiceImpl.executeTask(VAppServiceImpl.java:398)

at com.vmware.vcloud.management.system.TaskServiceImpl.dispatchTask(TaskServiceImpl.java:1009)

at com.vmware.vcloud.management.system.TaskExecutionJob.execute(TaskExecutionJob.java:177)

at org.quartz.core.JobRunShell.run(JobRunShell.java:199)

at com.vmware.vcloud.scheduler.impl.ElasticQuartzThreadPool$3$1.run(ElasticQuartzThreadPool.java:209)

at com.vmware.vcloud.scheduler.impl.ElasticQuartzThreadPool$3$1.run(ElasticQuartzThreadPool.java:207)

at com.vmware.vcloud.common.threadpool.ThreadContextExecutor.execute(ThreadContextExecutor.java:36)

at com.vmware.vcloud.scheduler.impl.ElasticQuartzThreadPool$3.run(ElasticQuartzThreadPool.java:207)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:619)

Subexception: com.vmware.vim.binding.vim.fault.InvalidDeviceSpec:

deviceIndex = 0

inherited from com.vmware.vim.binding.vim.fault.InvalidVmConfig:

property = deviceChange[0].device.backing.fileName

inherited from com.vmware.vim.binding.vim.fault.VmConfigFault:

inherited from com.vmware.vim.binding.vim.fault.VimFault:

inherited from com.vmware.vim.binding.vim.fault.InvalidDeviceSpec: Invalid configuration for device '0'.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at java.lang.Class.newInstance0(Class.java:355)

at java.lang.Class.newInstance(Class.java:308)

at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:143)

at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:26)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.(ComplexStackContext.java:33)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.StackContextFactory.newContext(StackContextFactory.java:92)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.FaultStackContext.getNestedContext(FaultStackContext.java:84)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallContext.beginElement(UnmarshallerImpl.java:354)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallContext.parse(UnmarshallerImpl.java:258)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallContext.parse(UnmarshallerImpl.java:210)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallContext.unmarshall(UnmarshallerImpl.java:191)

at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:71)

at com.vmware.vim.vmomi.client.common.impl.ReturnvalStackContext.setValue(ReturnvalStackContext.java:42)

at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.unmarshal(ResponseUnmarshaller.java:97)

at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.unmarshalResponse(ResponseImpl.java:203)

at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.setResponse(ResponseImpl.java:162)

at com.vmware.vim.vmomi.client.http.impl.HttpExchange.run(HttpExchange.java:103)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:619)

2010-09-03 10:57:26,730 | DEBUG | Quartz-pool-1-thread-542 | TaskServiceImpl | Cleaning busy entities for task '778,461,740' | #778461740

2010-09-03 10:57:26,733 | DEBUG | Quartz-pool-1-thread-542 | BusyObjectServiceImpl | Unsetting 1 busy entitie(s) for task ref VAPP_INSERT_CD_FLOPPY(com.vmware.vcloud.entity.task:778461740) | #778461740

2010-09-03 10:57:26,743 | DEBUG | Quartz-pool-1-thread-542 | TaskServiceImpl | Recorded completion of task '778,461,740' (retry count: 1) | #778461740

2010-09-03 10:57:26,750 | DEBUG | Quartz-pool-1-thread-542 | TaskServiceImpl | Unscheduled job with trigger 'GLOBAL_com.vmware.vcloud.management.system.TaskServiceImpl_trigger778461740' for task '778,461,740' | #778461740

2010-09-03 10:57:26,995 | DEBUG | pool-jetty-19 | AuthorizationMethodInterceptor | Authorizing method: public abstract java.util.Collection com.vmware.vcloud.api.presentation.service.QueryService.getList(com.vmware.vcloud.api.presentation.entity.query.QuerySpec). |

2010-09-03 10:57:26,995 | DEBUG | pool-jetty-19 | QueryServiceImpl | Getting list for: vmQueryList |

2010-09-03 10:57:26,995 | DEBUG | pool-jetty-19 | QueryServiceImpl | Param : isVappTemplate EQUALS false |

2010-09-03 10:57:26,995 | DEBUG | pool-jetty-19 | QueryServiceImpl | Param : OR (null) |

2010-09-03 10:57:26,995 | DEBUG | pool-jetty-19 | AuthorizationMethodInterceptor | Authorizing method: public abstract void com.vmware.vcloud.management.query.GenericSecureQueryDao.checkAuthorization(com.vmware.vcloud.api.presentation.entity.query.QuerySpec). |

2010-09-03 10:57:27,001 | DEBUG | pool-jetty-19 | QueryServiceImpl | Result: 1 rows (com.vmware.vcloud.api.presentation.entity.query.VMQueryListData) |

Reply
0 Kudos
1 Solution

Accepted Solutions
f10
Expert
Expert
Jump to solution

From what I have observed, the media files are saved on the catlog. If you Click on Catlog and right click the media file and click on open you would get to see the details about the file(datastore, host). When you go back to My Cloud and select the VM, you would get to see the ESX host where it is provisioned now the datastore where the CD resides should be shared with this ESX host where the VM is provisioned.

Im not sure if there is any workaround and using shared storage is mandatory. You may try using Openfiler to create shared storage and use for test purpose.

If you found this or other information useful, please consider awarding points for "Correct" or "Helpful".

f10

VCP3,VCP4,HP UX CSA

Regards, Arun Pandey VCP 3,4,5 | VCAP-DCA | NCDA | HPUX-CSA | http://highoncloud.blogspot.in/ If you found this or other information useful, please consider awarding points for "Correct" or "Helpful".

View solution in original post

Reply
0 Kudos
5 Replies
f10
Expert
Expert
Jump to solution

From what I have observed, the media files are saved on the catlog. If you Click on Catlog and right click the media file and click on open you would get to see the details about the file(datastore, host). When you go back to My Cloud and select the VM, you would get to see the ESX host where it is provisioned now the datastore where the CD resides should be shared with this ESX host where the VM is provisioned.

Im not sure if there is any workaround and using shared storage is mandatory. You may try using Openfiler to create shared storage and use for test purpose.

If you found this or other information useful, please consider awarding points for "Correct" or "Helpful".

f10

VCP3,VCP4,HP UX CSA

Regards, Arun Pandey VCP 3,4,5 | VCAP-DCA | NCDA | HPUX-CSA | http://highoncloud.blogspot.in/ If you found this or other information useful, please consider awarding points for "Correct" or "Helpful".
Reply
0 Kudos
WillL
Enthusiast
Enthusiast
Jump to solution

Thanks for confirmation, I will try openfiler.

Reply
0 Kudos
WillL
Enthusiast
Enthusiast
Jump to solution

Are shared storage required to be mounted on all ESX servers at the same time? Besides NFS, can iSCSI or FC SAN be used as datastore in VCD?

To my past experience, SAN can't be mounted on two servers at the same time, but my knowledge could be outdated.

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

Yes, the storage needs to be mounted on all ESX hosts in the same cluster at the same time. The VMFS filesystem used by ESX is designed to be used by a cluster of ESX hosts. You should be able to use any of the options supported by ESX (iSCSI, NFS, FC), with the exception of local storage, as you've already found.

Obviously, there will not be shared storage between different ESX clusters.

Message was edited by: kmsmith

WillL
Enthusiast
Enthusiast
Jump to solution

I was able to use Openfiler to turn local storage as iSCSI targets, VMFS supports distributed locks so ESX servers in the cluster is able to use them at the same time, so problem resovled.

It's just the lab environment is only 100mbps network, performance seems to be a new issue now.

Reply
0 Kudos