-
problemCloudstack 4.21.0.0 + VMware 8u3g + vSAN + Veeam 12 environment. When trying to create a new instance from an existing backup, an error occurs because the datastore cannot be found. The datastore lookup is using the CloudStack UUID instead of the volume name.
Find-VBRViDatastore doesnt accept uuid, it needs vmware volume name versionsCloudstack 4.21.0.0 + VMware 8u3g + vSAN + Veeam 12 The steps to reproduce the bugTry to create a new instance from backup What to do about it?Find-VBRViDatastore doesnt accept uuid, it needs vmware volume name |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
|
@leolns the Volume (Primary Storage) name in vmware is created by removing the '-' hyphens from the Primary storage UUID in cloudstack. So the -Name parameter looks correct. The issue is with the -Server parameter. The $server returned here is an Array object, which the command does not expect. Hence the error. Can you try running Get-VBRServer -Name directly on the Veeam server? Please check why are multiple servers present in Veeam for the same IP. |
Beta Was this translation helpful? Give feedback.
-
|
You were correct that the server object was returning an array. I fixed a duplicate configuration, and now it returns correctly. However, Find-VBRViDatastore still cannot find the database using the UUID, only by name, as shown below. Management log: ERROR [o.a.c.b.v.VeeamClient] (API-Job-Executor-70:[ctx-0aee04b2, job-58594, ctx-eb2fab33]) (logid:da32d532) Veeam PowerShell commands [PowerShell Import-Module Veeam.Backup.PowerShell -WarningAction SilentlyContinue;$ProgressPreference='SilentlyContinue';$points = Get-VBRRestorePoint;foreach($point in $points) { if ($point.Id -eq '6d748ad2-ec6d-44fe-842d-78cf7d57000f') { $restorePoint = $point; break; } };$server = Get-VBRServer -Name "172.22.254.10";$ds = Find-VBRViDatastore -Server:$server -Name "0f2b59684453331eb366a6d7036bae96";$job = Start-VBRRestoreVM -RestorePoint:$restorePoint -Server:$server -Datastore:$ds -VMName "i-8-667-DEMO-RESTORE-BKP" -RunAsync;while (-not (Get-VBRRestoreSession -Id $job.Id).IsCompleted) { Start-Sleep -Seconds 10 }] failed due to: [Start-VBRRestoreVM : Cannot validate argument on parameter 'Datastore'. The argument is null. Provide a valid value ^M for the argument, and then try running the command again.^M |
Beta Was this translation helpful? Give feedback.
-
|
Yeah, I think this is a bug in cloudstack. The Create new Instance from backup code is deriving the datastore name from primary_storage uuid, which works for NFS storage but not for VMFS. |
Beta Was this translation helpful? Give feedback.
-
|
I have created an issue for this: #11888. closing discussion. |
Beta Was this translation helpful? Give feedback.
Yeah, I think this is a bug in cloudstack.
For NFS storage, the datastore name in vmware is created from the primary_storage uuid in cloudstack by removing all hyphens.
VMFS (VSan) keeps the native datastore name. (CloudStack sets a custom field cloud.uuid equal to the primary_storage uuid for reference)
The Create new Instance from backup code is deriving the datastore name from primary_storage uuid, which works for NFS storage but not for VMFS.
The same issue is present in Restore single volume from veeam in all versions, as Create new instance feature has derived the code from the Restore single Volume feature.