VMware {code} Community
jdictos
Contributor
Contributor

Restoring virtual machine gets "vmodl.fault.InvalidRequest"

So I'm trying to restore a machine that was backed up from a cluster on vcenter, to a non-cluster esxi server.

The soap request is:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:vim25" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns1:CreateVM_Task><ns1:_this xsi:type="ns1:ManagedObjectReference" type="Folder">ha-folder-vm</ns1:_this><ns1:config xsi:type="ns1:VirtualMachineConfigSpec"><ns1:changeVersion>2011-02-02T18:59:39.70806Z</ns1:changeVersion><ns1:name>DOS_6.1</ns1:name><ns1:version>vmx-07</ns1:version><ns1:uuid>4233ca64-d4e5-ab38-67e0-c9b6ea001910</ns1:uuid><ns1:instanceUuid>50335433-d15a-cd3c-0de1-f5b3210e7248</ns1:instanceUuid><ns1:npivWorldWideNameType></ns1:npivWorldWideNameType><ns1:npivTemporaryDisabled>true</ns1:npivTemporaryDisabled><ns1:locationId>564d30de-5a15-289c-d4d1-05f6c38cf3c1</ns1:locationId><ns1:guestId>dosGuest</ns1:guestId><ns1:alternateGuestName></ns1:alternateGuestName><ns1:annotation></ns1:annotation><ns1:files><ns1:vmPathName>[datastore1] DOS_6.1/DOS_6.1.vmx</ns1:vmPathName><ns1:snapshotDirectory>[datastore1] DOS_6.1/</ns1:snapshotDirectory><ns1:suspendDirectory>[datastore1] DOS_6.1/</ns1:suspendDirectory><ns1:logDirectory>[datastore1] DOS_6.1/</ns1:logDirectory></ns1:files><ns1:tools><ns1:toolsVersion>0</ns1:toolsVersion><ns1:afterPowerOn>true</ns1:afterPowerOn><ns1:afterResume>true</ns1:afterResume><ns1:beforeGuestStandby>true</ns1:beforeGuestStandby><ns1:beforeGuestShutdown>true</ns1:beforeGuestShutdown><ns1:toolsUpgradePolicy>manual</ns1:toolsUpgradePolicy><ns1:syncTimeWithHost>false</ns1:syncTimeWithHost></ns1:tools><ns1:flags><ns1:disableAcceleration>false</ns1:disableAcceleration><ns1:enableLogging>true</ns1:enableLogging><ns1:useToe>false</ns1:useToe><ns1:runWithDebugInfo>false</ns1:runWithDebugInfo><ns1:monitorType>release</ns1:monitorType><ns1:htSharing>any</ns1:htSharing><ns1:diskUuidEnabled>false</ns1:diskUuidEnabled><ns1:virtualMmuUsage>automatic</ns1:virtualMmuUsage><ns1:virtualExecUsage>hvAuto</ns1:virtualExecUsage><ns1:snapshotPowerOffBehavior>powerOff</ns1:snapshotPowerOffBehavior><ns1:recordReplayEnabled>false</ns1:recordReplayEnabled></ns1:flags><ns1:memoryHotAddEnabled>false</ns1:memoryHotAddEnabled><ns1:cpuHotAddEnabled>false</ns1:cpuHotAddEnabled><ns1:cpuHotRemoveEnabled>false</ns1:cpuHotRemoveEnabled><ns1:deviceChange><ns1:operation>add</ns1:operation><ns1:fileOperation>create</ns1:fileOperation><ns1:device xsi:type="ns1:VirtualDisk"><ns1:key>3000</ns1:key><ns1:deviceInfo><ns1:label>Hard disk 1</ns1:label><ns1:summary>2,097,152 KB</ns1:summary></ns1:deviceInfo><ns1:backing xsi:type="ns1:VirtualDiskFlatVer2BackingInfo"><ns1:fileName>[datastore1] DOS_6.1/DOS_6.1.vmdk</ns1:fileName><ns1:datastore>datastore1</ns1:datastore><ns1:diskMode>persistent</ns1:diskMode><ns1:contentId>33c890d1a469ec15a091bf75fffffffe</ns1:contentId></ns1:backing><ns1:controllerKey>200</ns1:controllerKey><ns1:unitNumber>0</ns1:unitNumber><ns1:capacityInKB>2097152</ns1:capacityInKB></ns1:device></ns1:deviceChange><ns1:deviceChange><ns1:operation>add</ns1:operation><ns1:device xsi:type="ns1:VirtualCdrom"><ns1:key>3002</ns1:key><ns1:deviceInfo><ns1:label>CD/DVD Drive 1</ns1:label><ns1:summary>Remote ATAPI</ns1:summary></ns1:deviceInfo><ns1:backing xsi:type="ns1:VirtualCdromRemoteAtapiBackingInfo"><ns1:deviceName></ns1:deviceName><ns1:useAutoDetect>false</ns1:useAutoDetect></ns1:backing><ns1:connectable><ns1:startConnected>false</ns1:startConnected><ns1:allowGuestControl>true</ns1:allowGuestControl><ns1:connected>false</ns1:connected><ns1:status>untried</ns1:status></ns1:connectable><ns1:controllerKey>200</ns1:controllerKey><ns1:unitNumber>1</ns1:unitNumber></ns1:device></ns1:deviceChange><ns1:deviceChange><ns1:operation>add</ns1:operation><ns1:device xsi:type="ns1:VirtualPCNet32"><ns1:key>4000</ns1:key><ns1:deviceInfo><ns1:label>Network adapter 1</ns1:label><ns1:summary>VM Network</ns1:summary></ns1:deviceInfo><ns1:backing xsi:type="ns1:VirtualEthernetCardNetworkBackingInfo"><ns1:deviceName>VM Network</ns1:deviceName><ns1:useAutoDetect>false</ns1:useAutoDetect><ns1:network type="Network">network-47</ns1:network></ns1:backing><ns1:connectable><ns1:startConnected>true</ns1:startConnected><ns1:allowGuestControl>true</ns1:allowGuestControl><ns1:connected>false</ns1:connected><ns1:status>untried</ns1:status></ns1:connectable><ns1:controllerKey>100</ns1:controllerKey><ns1:unitNumber>2</ns1:unitNumber><ns1:addressType>assigned</ns1:addressType><ns1:macAddress>00:50:56:b3:00:07</ns1:macAddress><ns1:wakeOnLanEnabled>true</ns1:wakeOnLanEnabled></ns1:device></ns1:deviceChange><ns1:deviceChange><ns1:operation>add</ns1:operation><ns1:device xsi:type="ns1:VirtualFloppy"><ns1:key>8000</ns1:key><ns1:deviceInfo><ns1:label>Floppy drive 1</ns1:label><ns1:summary>Remote</ns1:summary></ns1:deviceInfo><ns1:backing xsi:type="ns1:VirtualFloppyRemoteDeviceBackingInfo"><ns1:deviceName></ns1:deviceName><ns1:useAutoDetect>false</ns1:useAutoDetect></ns1:backing><ns1:connectable><ns1:startConnected>false</ns1:startConnected><ns1:allowGuestControl>true</ns1:allowGuestControl><ns1:connected>false</ns1:connected><ns1:status>untried</ns1:status></ns1:connectable><ns1:controllerKey>400</ns1:controllerKey><ns1:unitNumber>3</ns1:unitNumber></ns1:device></ns1:deviceChange><ns1:cpuAllocation><ns1:reservation>0</ns1:reservation><ns1:expandableReservation>false</ns1:expandableReservation><ns1:limit>-1</ns1:limit><ns1:shares><ns1:shares>1000</ns1:shares><ns1:level>normal</ns1:level></ns1:shares></ns1:cpuAllocation><ns1:memoryAllocation><ns1:reservation>0</ns1:reservation><ns1:expandableReservation>false</ns1:expandableReservation><ns1:limit>-1</ns1:limit><ns1:shares><ns1:shares>160</ns1:shares><ns1:level>normal</ns1:level></ns1:shares></ns1:memoryAllocation><ns1:swapPlacement>inherit</ns1:swapPlacement><ns1:bootOptions><ns1:bootDelay>0</ns1:bootDelay><ns1:enterBIOSSetup>false</ns1:enterBIOSSetup><ns1:bootRetryEnabled>false</ns1:bootRetryEnabled><ns1:bootRetryDelay>10000</ns1:bootRetryDelay></ns1:bootOptions><ns1:vAssertsEnabled>false</ns1:vAssertsEnabled><ns1:changeTrackingEnabled>false</ns1:changeTrackingEnabled></ns1:config><ns1:pool xsi:type="ns1:ManagedObjectReference" type="ResourcePool">ha-root-pool</ns1:pool><ns1:host xsi:type="ns1:ManagedObjectReference" type="HostSystem">ha-host</ns1:host></ns1:CreateVM_Task></SOAP-ENV:Body></SOAP-ENV:Envelope>


The soap reply is:

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<soapenv:Fault><faultcode>ServerFaultCode</faultcode><faultstring>vmodl.fault.InvalidRequest</faultstring><detail><InvalidRequestFault xmlns="urn:vim25" xsi:type="InvalidRequest"></InvalidRequestFault></detail></soapenv:Fault>

</soapenv:Body>

</soapenv:Envelope>

What part of the request is invalid?

0 Kudos
4 Replies
Steve_Jin
Expert
Expert

Unfortunately the InvalidRequest didn't tell anything other than there's something wrong with the request.The SOAP request is too verbose. You may want to share your code instead.

Steve Jin, author of VMware VI and vSphere SDK http://www.doublecloud.org

Steve JIN Author of VMware VI and vSphere SDK; Creator of open source VI Java API (http://vijava.sf.net); Blogger at http://www.doublecloud.org
0 Kudos
jdictos
Contributor
Contributor

Well the code is in php, which isn't supported here, and its spread out among various classes, so I think the time spent by anyone reading this post would be better spend looking at the vmware api itself rather then anything I wrote.

Maybe some background will help.

I am basically backing up, and restoring vm's. I save off the original vm configuration during backup, and from that I create a vmconfig spec. I follow the design document "Designing backup solutions for VMware vsphere" to the letter, and it has worked fine for the most part. I am able to backup and restore vm's to and from esxi/vcenter systems without issue. The problem arises however when I start using clusters in vcenter. When I try to restore a vm backed up from a vcenter cluster to a basic esxi server, it fails with this error.

So whatever the problem is it must be related to some configuration related to the cluster in the vm config spec above.

EDIT:

I've re-formatted the above xml a bit to help it be more readable:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:vim25" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <SOAP-ENV:Body>
   <ns1:CreateVM_Task>
      <ns1:_this xsi:type="ns1:ManagedObjectReference" type="Folder">ha-folder-vm</ns1:_this>
      <ns1:config xsi:type="ns1:VirtualMachineConfigSpec">
         <ns1:changeVersion>2011-02-02T18:59:39.70806Z</ns1:changeVersion>
         <ns1:name>DOS_6.1</ns1:name>
         <ns1:version>vmx-07</ns1:version>
         <ns1:uuid>4233ca64-d4e5-ab38-67e0-c9b6ea001910</ns1:uuid>
         <ns1:instanceUuid>50335433-d15a-cd3c-0de1-f5b3210e7248</ns1:instanceUuid>
         <ns1:npivWorldWideNameType></ns1:npivWorldWideNameType>
         <ns1:npivTemporaryDisabled>true</ns1:npivTemporaryDisabled>
         <ns1:locationId>564d30de-5a15-289c-d4d1-05f6c38cf3c1</ns1:locationId>
         <ns1:guestId>dosGuest</ns1:guestId>
         <ns1:alternateGuestName></ns1:alternateGuestName>
         <ns1:annotation></ns1:annotation>
         <ns1:files>
            <ns1:vmPathName>[datastore1] DOS_6.1/DOS_6.1.vmx</ns1:vmPathName>
            <ns1:snapshotDirectory>[datastore1] DOS_6.1/</ns1:snapshotDirectory>
            <ns1:suspendDirectory>[datastore1] DOS_6.1/</ns1:suspendDirectory>
            <ns1:logDirectory>[datastore1] DOS_6.1/</ns1:logDirectory>
         </ns1:files>
         <ns1:tools>
            <ns1:toolsVersion>0</ns1:toolsVersion>
            <ns1:afterPowerOn>true</ns1:afterPowerOn>
            <ns1:afterResume>true</ns1:afterResume>
            <ns1:beforeGuestStandby>true</ns1:beforeGuestStandby>
            <ns1:beforeGuestShutdown>true</ns1:beforeGuestShutdown>
            <ns1:toolsUpgradePolicy>manual</ns1:toolsUpgradePolicy>
            <ns1:syncTimeWithHost>false</ns1:syncTimeWithHost>
         </ns1:tools>
         <ns1:flags>
            <ns1:disableAcceleration>false</ns1:disableAcceleration>
            <ns1:enableLogging>true</ns1:enableLogging>
            <ns1:useToe>false</ns1:useToe>
            <ns1:runWithDebugInfo>false</ns1:runWithDebugInfo>
            <ns1:monitorType>release</ns1:monitorType>
            <ns1:htSharing>any</ns1:htSharing>
            <ns1:diskUuidEnabled>false</ns1:diskUuidEnabled>
            <ns1:virtualMmuUsage>automatic</ns1:virtualMmuUsage>
            <ns1:virtualExecUsage>hvAuto</ns1:virtualExecUsage>
            <ns1:snapshotPowerOffBehavior>powerOff</ns1:snapshotPowerOffBehavior>
            <ns1:recordReplayEnabled>false</ns1:recordReplayEnabled>
         </ns1:flags>
         <ns1:memoryHotAddEnabled>false</ns1:memoryHotAddEnabled>
         <ns1:cpuHotAddEnabled>false</ns1:cpuHotAddEnabled>
         <ns1:cpuHotRemoveEnabled>false</ns1:cpuHotRemoveEnabled>
         <ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:fileOperation>create</ns1:fileOperation>
            <ns1:device xsi:type="ns1:VirtualDisk">
               <ns1:key>3000</ns1:key>
               <ns1:deviceInfo>
                  <ns1:label>Hard disk 1</ns1:label>
                  <ns1:summary>2,097,152 KB</ns1:summary>
               </ns1:deviceInfo>
               <ns1:backing xsi:type="ns1:VirtualDiskFlatVer2BackingInfo">
                  <ns1:fileName>[datastore1] DOS_6.1/DOS_6.1.vmdk</ns1:fileName>
                  <ns1:datastore>datastore1</ns1:datastore>
                  <ns1:diskMode>persistent</ns1:diskMode>
                  <ns1:contentId>33c890d1a469ec15a091bf75fffffffe</ns1:contentId>
               </ns1:backing>
               <ns1:controllerKey>200</ns1:controllerKey>
               <ns1:unitNumber>0</ns1:unitNumber>
               <ns1:capacityInKB>2097152</ns1:capacityInKB>
            </ns1:device>
         </ns1:deviceChange>
         <ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:device xsi:type="ns1:VirtualCdrom">
            <ns1:key>3002</ns1:key>
            <ns1:deviceInfo>
               <ns1:label>CD/DVD Drive 1</ns1:label>
               <ns1:summary>Remote ATAPI</ns1:summary>
            </ns1:deviceInfo>
            <ns1:backing xsi:type="ns1:VirtualCdromRemoteAtapiBackingInfo">
               <ns1:deviceName></ns1:deviceName>
               <ns1:useAutoDetect>false</ns1:useAutoDetect>
            </ns1:backing>
            <ns1:connectable>
               <ns1:startConnected>false</ns1:startConnected>
               <ns1:allowGuestControl>true</ns1:allowGuestControl>
               <ns1:connected>false</ns1:connected>
               <ns1:status>untried</ns1:status>
            </ns1:connectable>
            <ns1:controllerKey>200</ns1:controllerKey>
            <ns1:unitNumber>1</ns1:unitNumber>
            </ns1:device>
         </ns1:deviceChange>
         <ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:device xsi:type="ns1:VirtualPCNet32">
               <ns1:key>4000</ns1:key>
               <ns1:deviceInfo>
                  <ns1:label>Network adapter 1</ns1:label>
                  <ns1:summary>VM Network</ns1:summary>
               </ns1:deviceInfo>
               <ns1:backing xsi:type="ns1:VirtualEthernetCardNetworkBackingInfo">
                  <ns1:deviceName>VM Network</ns1:deviceName>
                  <ns1:useAutoDetect>false</ns1:useAutoDetect>
                  <ns1:network type="Network">network-47</ns1:network>
               </ns1:backing>
               <ns1:connectable>
                  <ns1:startConnected>true</ns1:startConnected>
                  <ns1:allowGuestControl>true</ns1:allowGuestControl>
                  <ns1:connected>false</ns1:connected>
                  <ns1:status>untried</ns1:status>
               </ns1:connectable>
               <ns1:controllerKey>100</ns1:controllerKey>
               <ns1:unitNumber>2</ns1:unitNumber>
               <ns1:addressType>assigned</ns1:addressType>
               <ns1:macAddress>00:50:56:b3:00:07</ns1:macAddress>
               <ns1:wakeOnLanEnabled>true</ns1:wakeOnLanEnabled>
            </ns1:device>
         </ns1:deviceChange>
         <ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:device xsi:type="ns1:VirtualFloppy">
               <ns1:key>8000</ns1:key>
               <ns1:deviceInfo>
                  <ns1:label>Floppy drive 1</ns1:label>
                  <ns1:summary>Remote</ns1:summary>
               </ns1:deviceInfo>
               <ns1:backing xsi:type="ns1:VirtualFloppyRemoteDeviceBackingInfo">
                  <ns1:deviceName></ns1:deviceName>
                  <ns1:useAutoDetect>false</ns1:useAutoDetect>
               </ns1:backing>
               <ns1:connectable>
                  <ns1:startConnected>false</ns1:startConnected>
                  <ns1:allowGuestControl>true</ns1:allowGuestControl>
                  <ns1:connected>false</ns1:connected>
                  <ns1:status>untried</ns1:status>
               </ns1:connectable>
               <ns1:controllerKey>400</ns1:controllerKey>
               <ns1:unitNumber>3</ns1:unitNumber>
            </ns1:device>
         </ns1:deviceChange>
         <ns1:cpuAllocation>
            <ns1:reservation>0</ns1:reservation>
            <ns1:expandableReservation>false</ns1:expandableReservation>
            <ns1:limit>-1</ns1:limit>
            <ns1:shares>
               <ns1:shares>1000</ns1:shares>
               <ns1:level>normal</ns1:level>
            </ns1:shares>
         </ns1:cpuAllocation>
         <ns1:memoryAllocation>
            <ns1:reservation>0</ns1:reservation>
            <ns1:expandableReservation>false</ns1:expandableReservation>
            <ns1:limit>-1</ns1:limit>
            <ns1:shares>
               <ns1:shares>160</ns1:shares>
               <ns1:level>normal</ns1:level>
            </ns1:shares>
         </ns1:memoryAllocation>
         <ns1:swapPlacement>inherit</ns1:swapPlacement>
         <ns1:bootOptions>
            <ns1:bootDelay>0</ns1:bootDelay>
            <ns1:enterBIOSSetup>false</ns1:enterBIOSSetup>
            <ns1:bootRetryEnabled>false</ns1:bootRetryEnabled>
            <ns1:bootRetryDelay>10000</ns1:bootRetryDelay>
         </ns1:bootOptions>
         <ns1:vAssertsEnabled>false</ns1:vAssertsEnabled>
         <ns1:changeTrackingEnabled>false</ns1:changeTrackingEnabled>
      </ns1:config>
      <ns1:pool xsi:type="ns1:ManagedObjectReference" type="ResourcePool">ha-root-pool</ns1:pool>
      <ns1:host xsi:type="ns1:ManagedObjectReference" type="HostSystem">ha-host</ns1:host>
   </ns1:CreateVM_Task>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Thanks for your time!

-Jason

0 Kudos
BenN
Enthusiast
Enthusiast

I wouldn't set 'locationId', nor 'network' in VirtualEthernetCardNetworkBackingInfo. However, these are unrelated to clusters, and so are

probably not your problem.

Your best bets to narrow down the problem are:

  (1) Check ESX logs (/var/log/vmware/hostd-N.log on regular ESX, not sure how you find them on ESXi).

  (2) Start stripping out optional elements ('cpuAllocation', 'memoryAllocation', etc) until the request works.

0 Kudos
jdictos
Contributor
Contributor

The answere here is the datastore entry:

<ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:fileOperation>create</ns1:fileOperation>
            <ns1:device xsi:type="ns1:VirtualDisk">
               <ns1:key>3000</ns1:key>
               <ns1:deviceInfo>
                  <ns1:label>Hard disk 1</ns1:label>
                  <ns1:summary>2,097,152 KB</ns1:summary>
               </ns1:deviceInfo>
               <ns1:backing xsi:type="ns1:VirtualDiskFlatVer2BackingInfo">
                  <ns1:fileName>[datastore1] DOS_6.1/DOS_6.1.vmdk</ns1:fileName>
                  <ns1:datastore>datastore1</ns1:datastore>
                  <ns1:diskMode>persistent</ns1:diskMode>
                  <ns1:contentId>33c890d1a469ec15a091bf75fffffffe</ns1:contentId>
               </ns1:backing>
               <ns1:controllerKey>200</ns1:controllerKey>
               <ns1:unitNumber>0</ns1:unitNumber>
               <ns1:capacityInKB>2097152</ns1:capacityInKB>
            </ns1:device>
         </ns1:deviceChange>

This needs to be changed to:

<ns1:deviceChange>
            <ns1:operation>add</ns1:operation>
            <ns1:fileOperation>create</ns1:fileOperation>
            <ns1:device xsi:type="ns1:VirtualDisk">
               <ns1:key>3000</ns1:key>
               <ns1:deviceInfo>
                  <ns1:label>Hard disk 1</ns1:label>
                  <ns1:summary>2,097,152 KB</ns1:summary>
               </ns1:deviceInfo>
               <ns1:backing xsi:type="ns1:VirtualDiskFlatVer2BackingInfo">
                  <ns1:fileName>[datastore1] DOS_6.1/DOS_6.1.vmdk</ns1:fileName>
                  <ns1:datastore  xsi:type="ns1:ManagedObjectReference" type="Datastore">4d5151ac-f89f8eac-0540-001a926145e2</ns1:datastore>
                  <ns1:diskMode>persistent</ns1:diskMode>
                  <ns1:contentId>33c890d1a469ec15a091bf75fffffffe</ns1:contentId>
               </ns1:backing>
               <ns1:controllerKey>200</ns1:controllerKey>
               <ns1:unitNumber>0</ns1:unitNumber>
               <ns1:capacityInKB>2097152</ns1:capacityInKB>
            </ns1:device>
         </ns1:deviceChange>

0 Kudos