VMware migration tool: we need your feedback!
-
We are potentially investigating if HyperV APIs are friendly to do a similar thing than we do with VMware.
However, we do not have the objective to have XO managing VMware or HyperV clusters (at least, not for the next 3 years)
-
@olivierlambert I understand that, just for the migration purposes is all.. some of these migrations take months, if not years to get complete, and having it all under a single hood while that migration work is being done would be nice... I know that it is a HUGE ask
-
Yeah, each platform got its own logic, that's why having an universal one is very very hard, except if you are a very big company able to have dedicated people on it (while doing all the rest).
I mean, if we can do it, it means we had a huge success, so I won't be against that
-
I have two different behaviour on two different XO instances. Each XO instance refers to a different pool (different hosts, same xcp-ng version). In both the instances I try to connect to the same Private Virtual Datacenter based on VMware/vSphere at OVH.
In the first one I get the following error message by using the web UI: "invalid parameters" (take a look at this logfile 2023-02-28T19_25_21.933Z - XO.txt )
In the second one, I get the following error message by using the web UI "404 Not Found https://<vsphere-ip>/folder/<vm-name>/<vm-name>.vmx?dsName=<datastore-name>"
By using the xo-cli I get the "404 Not Found" on both the instances.
Regarding the "404 Not Found", I want to point out that at OVH I have a VMware datacenter (with 2 hosts) and in order to access to the storage I need to specify the parameter
dcPath=<datacenter-name>
So the right URL should be https://<vsphere-ip>/folder/<vm-name>/<vm-name>.vmx?dcPath=<datacenter-name>&dsName=<datastore-name>
Simply adding (in a static way) the dcPath specification on line :54 of esxi.mjs file makes it work.
-
Interesting, that's probably a parameter we need to add (as optional) in the case it's needed. Would you mind test a dedicated branch when @florent will add it?
-
@olivierlambert Yeah sure! No problem, it'll be a pleasure.
Do you have any idea about the issue related to the message "invalid parameters"? Do you have any suggestion in order to go deeper? Thanks.
-
No but @florent will take a look ASAP
-
For what it's worth I'm seeing the same invalid parameters error when I attempt to perform a migration from an on prem ESXI 7.0U2 host.
Error message:
vm.importFromEsxi { "host": "* obfuscated *", "network": "1fb3daf2-b27d-b7ef-48ce-b8986440247a", "password": "* obfuscated *", "sr": { "type": "SR", "content_type": "user", "physical_usage": 26223620096, "allocationStrategy": "thin", "current_operations": {}, "inMaintenanceMode": false, "name_description": "", "name_label": "Local storage", "size": 964124073984, "shared": false, "SR_type": "ext", "tags": [], "usage": 79456894976, "VDIs": [ "393e3767-07c2-4c23-bdca-b573e8ba5980", "16a72d41-a97d-4b8b-ae6e-3b043882ef8e", "59ae272b-00a8-483c-975b-48f55a15119b", "dcf1d26c-1f85-41f5-9045-cb931bf9ab3b" ], "other_config": { "i18n-original-value-name_label": "Local storage", "i18n-key": "local-storage" }, "sm_config": { "devserial": "" }, "$container": "5a58d8a6-0ed1-4825-b1fd-8d720832bf02", "$PBDs": [ "26c0dc31-2cf6-15c5-8683-5c60e10382d0" ], "id": "3662768f-4a40-31ed-54b9-21eb26876205", "uuid": "3662768f-4a40-31ed-54b9-21eb26876205", "$pool": "20ec2c95-dbb7-f4a3-8bb6-a80ff9de4d00", "$poolId": "20ec2c95-dbb7-f4a3-8bb6-a80ff9de4d00", "_xapiRef": "OpaqueRef:e1b6c317-a854-449b-80e3-b69bbeb389fc" }, "sslVerify": false, "stopSource": false, "thin": true, "user": "root", "vm": "16" } { "code": 10, "data": { "errors": [ { "instancePath": "/sr", "schemaPath": "#/properties/sr/type", "keyword": "type", "params": { "type": "string" }, "message": "must be string" } ] }, "message": "invalid parameters", "name": "XoError", "stack": "XoError: invalid parameters at Module.invalidParameters (/opt/xo/xo-builds/xen-orchestra-202302280214/packages/xo-common/api-errors.js:26:11) at Xo.call (file:///opt/xo/xo-builds/xen-orchestra-202302280214/packages/xo-server/src/xo-mixins/api.mjs:65:20) at Api.#callApiMethod (file:///opt/xo/xo-builds/xen-orchestra-202302280214/packages/xo-server/src/xo-mixins/api.mjs:390:19)" }
-
@Seclusion are you doing it while the VM is running on VMware side? If yes, that's normal then, the delta mode (VM on) isn't supported yet on ESXi > 6.5
-
@olivierlambert No, I thought doing a live migration seemed too ambitions to try first, but I also didn't realize that it also wasn't supported, haha. Here are my settings:
and on on the esxi side:
XO-log.txt
I am currently on commit 25759 -
@florent will take a look
-
@ismo-conguairta said in VMware migration tool: we need your feedback!:
I have two different behaviour on two different XO instances. Each XO instance refers to a different pool (different hosts, same xcp-ng version). In both the instances I try to connect to the same Private Virtual Datacenter based on VMware/vSphere at OVH.
In the first one I get the following error message by using the web UI: "invalid parameters" (take a look at this logfile 2023-02-28T19_25_21.933Z - XO.txt )
In the second one, I get the following error message by using the web UI "404 Not Found https://<vsphere-ip>/folder/<vm-name>/<vm-name>.vmx?dsName=<datastore-name>"
By using the xo-cli I get the "404 Not Found" on both the instances.
Regarding the "404 Not Found", I want to point out that at OVH I have a VMware datacenter (with 2 hosts) and in order to access to the storage I need to specify the parameter
dcPath=<datacenter-name>
So the right URL should be https://<vsphere-ip>/folder/<vm-name>/<vm-name>.vmx?dcPath=<datacenter-name>&dsName=<datastore-name>
Simply adding (in a static way) the dcPath specification on line :54 of esxi.mjs file makes it work.
I thought it was constant. I will look into the api to get it, and if not possible expose it in the UI
@Seclusion : noted I will look into theis error message, this one is a first for me
-
@Seclusion @florent In my case the ESXi version is 7.0.3 (build 20842708) and the vCSA version is 7.0 (build 20845200). The VM I try to migrate is not running on VMware side.
The only difference between the 2 XO instances is that the first one is installed on a PV machine while the second one on a PVHVM machine. -
@ismo-conguairta @rajaa-b can you check it, I think the full SR object is sent to the backend when changing the sr from the default one to another , instead of the id
-
@ismo-conguairta
Can you try this branch : https://github.com/vatesfr/xen-orchestra/pull/6694/files ?Edit : I can get the dcPath from the esxi api, you can test from the frontend, no need to use the command line
For now you can't change the SR ( changing it will lead to a parameter error)
-
@florent I just checked the branch and I get this error message "404 Not Found https://<vsphere-host>/folder/<vm-name>/<vm-name>.vmx?dcPath=datacenter-61&dsName=<ds-name>"
where
datacenter-61
is not the right reference to my datacenter. Please take a look at the following screenshot.From documentation
dcPath is the inventory path to the Datacenter containing the Datastore.
-
@ismo-conguairta said in VMware migration tool: we need your feedback!:
inventory path to the Datacenter
I updated to use another property (from https://developer.vmware.com/apis/196/vsphere/doc/vim.Datacenter.html ) is it better ? on our lab, theses properties have the same value
-
@florent I have just checked and your last update works like a charm. Great!
-
Hi folks,
I have an error when importing from VMware
I'm using XO from sources :
commit number : ea2c6 Hypervisor : Xcp-ng 8.2.1 node : 18.14.2
When I go on import and "from VMware", I put my ESX credentials, check "skip SSL", I do see the list of my VMs from my ESX. I select everything that needed and when I import, I have an error, doesn't matter which option I select or if the VM is running Windows or Linux. Also my ESX are running vmware 5.5.0
Here is the log and screenshot :
vm.importFromEsxi { "host": "IP MASKED", "network": "6277d50c-5d2e-e896-864a-5afcc009ad51", "password": "* obfuscated *", "sr": { "type": "SR", "content_type": "user", "physical_usage": 33929035776, "allocationStrategy": "thin", "current_operations": {}, "inMaintenanceMode": false, "name_description": "VM", "name_label": "NFS", "size": 12884899659776, "shared": true, "SR_type": "nfs", "tags": [], "usage": 289910292480, "VDIs": [ "afef80db-c923-4248-b731-4d1712f02db1", "42fc30c3-4d8f-4126-bb78-fd4a8285b03a", "b286ad66-3d19-4984-aa80-840d93c72cf0", "03869f0c-1a02-4e32-9932-4e221e534eb0", "d17a4e5e-7276-4ef2-84f4-4766c4ad471e" ], "other_config": { "auto-scan": "true" }, "sm_config": {}, "$container": "3eb75cbb-0cc2-3c90-e63e-ae6da1ef9417", "$PBDs": [ "90204213-cbec-5194-439d-ab795a0fe4b8", "2c8adf39-d2a9-8dd5-568d-872fcc04de54" ], "id": "cecb563f-f745-3ed6-1f64-85de34dfbbd5", "uuid": "cecb563f-f745-3ed6-1f64-85de34dfbbd5", "$pool": "3eb75cbb-0cc2-3c90-e63e-ae6da1ef9417", "$poolId": "3eb75cbb-0cc2-3c90-e63e-ae6da1ef9417", "_xapiRef": "OpaqueRef:04f1c17c-357e-428c-bbbe-2a558cd7238a" }, "sslVerify": false, "stopSource": false, "thin": false, "user": "root", "vm": "109" } { "code": 10, "data": { "errors": [ { "instancePath": "/sr", "schemaPath": "#/properties/sr/type", "keyword": "type", "params": { "type": "string" }, "message": "must be string" } ] }, "message": "invalid parameters", "name": "XoError", "stack": "XoError: invalid parameters at Module.invalidParameters (/opt/xo/xo-builds/xen-orchestra-202303011617/packages/xo-common/api-errors.js:26:11) at Xo.call (file:///opt/xo/xo-builds/xen-orchestra-202303011617/packages/xo-server/src/xo-mixins/api.mjs:65:20) at Api.#callApiMethod (file:///opt/xo/xo-builds/xen-orchestra-202303011617/packages/xo-server/src/xo-mixins/api.mjs:390:19)" }
-
@Touille As @florent said in a previous message probably the full SR object is sent to the backend instead of its id. This happens when you change the destination SR from the default one to another. You can try to proceed with the export on the default SR.
Take a look at this branch: https://github.com/vatesfr/xen-orchestra/pull/6696/files
It seems to fix the error.