Error: "A specified parameter was not correct: podSelectionSpec.initialVmConfig.interVmRule" when changing the SDRS mode
search cancel

Error: "A specified parameter was not correct: podSelectionSpec.initialVmConfig.interVmRule" when changing the SDRS mode

book

Article ID: 440113

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

  • Storage DRS(SDRS) mode is changed from Manual to Fully Automated
  • From vCenter(VC) UI, navigate to the Datastore & Datastore Clusters view > Select the datastore cluster > Configure > Storage DRS > Change "Cluster automation level" > Select "Fully Automated". Task fails with the error:

    A specified parameter was not correct: podSelectionSpec.initialVmConfig.interVmRule

  • There are stale SDRS anti-affinity rules with 2 VMs in it
  • The stale rules cannot be removed or edited via the UI and fails with the same error
  • Default VM overrides options are set on the datastore cluster
  • As there is a requirement for 2 VMs per rule, trying to disable the rule fails saying 2 VMs are required.
  • Verifying the stale affinity rules causes the VC UI to get stuck.
  • In the VC logs /var/log/vmware/vpxd/vpxd.log, the following entries are seen:

Added vm vm-12#### to interVms set because of rule <rule name>
Added vm vm-12#### to intraVms set

error vpxd[1337629] [Originator@6876 sub=Default opID=########-####-####-####:############5-##] [VpxLRO] -- ERROR task-######## -- 12c#####-####-####-####-############(32b#####-####-####-####-############) -- StorageResourceManager -- vim.StorageResourceManager.configureStorageDrsForPod: :vmodl.fault.InvalidArgument
--> Result:
--> (vmodl.fault.InvalidArgument) {
-->    faultCause = (vmodl.MethodFault) null,
-->    faultMessage = <unset>,
-->    invalidProperty = "podSelectionSpec.initialVmConfig.interVmRule"
-->    msg = ""
--> }
--> Args:
-->
--> Arg pod:
--> 'vim.StoragePod:########-####-####-####-############:group-p#####'
--> Arg spec:
--> (vim.storageDrs.ConfigSpec) {
-->    podConfigSpec = (vim.storageDrs.PodConfigSpec) {
-->       enabled = <unset>,
-->       ioLoadBalanceEnabled = <unset>,
-->       defaultVmBehavior = <unset>,
-->       loadBalanceInterval = <unset>,
-->       defaultIntraVmAffinity = <unset>,
-->       spaceLoadBalanceConfig = (vim.storageDrs.SpaceLoadBalanceConfig) null,
-->       ioLoadBalanceConfig = (vim.storageDrs.IoLoadBalanceConfig) null,
-->       automationOverrides = (vim.storageDrs.AutomationConfig) null,
-->       rule = (vim.cluster.RuleSpec) [
-->          (vim.cluster.RuleSpec) {
-->             operation = "remove",
-->             removeKey = <rule ID>,
-->             info = (vim.cluster.RuleInfo) null
-->          }
-->       ],
-->       option = <unset>
-->    },
-->    vmConfigSpec = <unset>
--> }
--> Arg modify:
--> true

Environment

VMware vCenter Server 8.0.3

Cause

This behavior is by default and conflict happens when the same set of VMs are added to interVM AntiAffinity rule and intraVmAffinity rule.

Resolution

To resolve the issue,remove all conflict interVms rules, or by removing all conflict intraVms rule overrides.

Remove Inter-VM Rules (VM Anti-Affinity / Affinity)

  1. Log in to the vSphere Client and navigate to the Storage inventory view.

  2. Select the target Datastore Cluster.

  3. Select the Configure tab.

  4. Under the Configuration section, select Rules.

  5. Locate the specific VM anti-affinity or affinity rule in the list.

  6. Click the Remove button.

  7. Click OK to confirm the deletion.

Remove Intra-VM Rules (VMDK Anti-Affinity / Affinity)

  1. Log in to the vSphere Client and navigate to the Storage inventory view.

  2. Select the target Datastore Cluster.

  3. Select the Configure tab.

  4. Under the Configuration section, select Rules.

  5. Locate the specific VMDK anti-affinity rule applied to the VM.

  6. Click the Remove button.

  7. Click OK to confirm.

Additional Information

Storage DRS FAQ