PlaceVm API does not work with datastores larger than 2PB.
search cancel

PlaceVm API does not work with datastores larger than 2PB.

book

Article ID: 312187

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

The publicly available PlaceVm API has this known limitation where datastores larger than 2PB will be ignored. The limitation can generate undesired recommendations or generate user visible errors when used in environments with datastores larger than 2PB. We would like to make users of the PlaceVm API be aware of limitation via this KB article.

Symptoms:
1. If there are multiple datastores that can satisfy request, then all those datastores larger than 2PB will be silently ignored by the API and only the remaining datastores are considered by the algo for generating placement recommendations.

2. If there is a single datastore that is compatible for VM placement but its size is > 2PB, the API will return DrsFaults.

Here is an example of the failure seen while deploying a OVF from content library which uses the PlaceVm API internally. In this case, the target cluster had many datastores but only one compatible datastore and its size was > 2PB.

In the vpxd.log file, below log line will be seen for every datastore whose size is > 2PB

/var/log/vmware/vpxd.log
-------------------------------------------

2021-06-03T15:34:27.912Z warning vpxd[17124] [Originator@6876 sub=sdrsLogger opID=6bbff91e] Datastore [vim.Datastore:datastore-XXXX,DatastoreName] invalid size: capcaityBytes=9007199254740992, freeBytes=8998305718599680

/var/log/vmware/content-library/cls.log

----------------------------------------------------------------------

DEBUG    | ko2vddrt-2926659-auto-1qq84-h5:70229914-bd-19-b0 | cls-simple-activity-6     | GetVmPlacementActivity         | PlacementResult is (vim.cluster.PlacementResult) {
   dynamicType = null,
   dynamicProperty = null,
   recommendations = null,
   drsFault = (vim.cluster.DrsFaults) {
      dynamicType = null,
      dynamicProperty = null,
      reason = xvmotionPlacement,
      faultsByVm = (vim.cluster.FaultsByVm) [
         (vim.cluster.FaultsByVirtualDisk) {
            dynamicType = null,
            dynamicProperty = null,
            vm = null,
            fault = (vmodl.MethodFault) [
               (vim.fault.StorageVmotionIncompatible) {
                  faultCause = null,
                  faultMessage = (vmodl.LocalizableMessage) [
                     (vmodl.LocalizableMessage) {
                        dynamicType = null,
                        dynamicProperty = null,
                        key = com.vmware.sdrs.datastore.constraint,
                        arg = (vmodl.KeyAnyValue) [
                           (vmodl.KeyAnyValue) {
                              dynamicType = null,
                              dynamicProperty = null,
                              key = arg,
                              value = softconstraint-SOFT_CONSTR_STORAGE_PROFILE
                           }
                        ],
                        message = The datastore is not compatible with the virtual machine because of constraint softconstraint-SOFT_CONSTR_STORAGE_PROFILE violation.


Environment

VMware vSphere ESXi 7.x
VMware vSphere ESXi 6.7
VMware vCenter Server 7.0.x
VMware vSphere ESXi 6.0
VMware vSphere ESXi 8.0.x

Cause

PlaceVm API implementation has a known limitation where datastores larger than 2PB are ignored for placement recommendations. Any workflow that uses PlaceVm API such as OVF deployment from content library may return error when the target cluster contains the datastores larger than 2PB.

Resolution

VMware is aware of this issue and working to resolve this in a future release.

Workaround:
Users should use the datastores smaller than 2PB.

Additional Information

Impact/Risks:
1. All the use-cases/workflows which uses PlaceVm API in an environment where datastore sizes is > 2PB will face this issue.
2. vSAN and vVol datastores are impacted by this limitation.