KB outlines problem when removing VDS uplinks.
Symptoms: Removal of uplink fails - Warning: DistributedVirtualSwitch.reconfigure: vim.fault.ResourceInUse
The uplink of VDS is a straight-ordering array. It maps to uplink port array with an index.
Removing uplinks near the beginning of the array can cause issues.
We only support removing the last uplink in the array.
Example1: Using the following uplink to vmnic mapping:
Uplink1 - free
Uplink2 - free
Uplink3 - vmnic1
Uplink4 - vmnic2
If we try to remove Uplink1 and Uplink2 from the VDS on VC UI, it will report "Resource in use" on VC UI. The logs in /var/log/vmware/vpxd/vpxd.log on VCSA looks like:
2023-09-20T16:49:13.194Z warning vpxd[46771] [Originator@6876 sub=Vmomi opID=lkab6gv9-663278-auto-e7sf-h5:70099241-ef] VMOMI activation LRO failed; <<520e857f-ef27-9917-de0e-35f3fae9fb55, <TCP '127.0.0.1 : 8085'>, <TCP '127.0.0.1 : 58302 '>>, dvs-2065, vim.DistributedVirtualSwitch.reconfigure>, N3Vim5Fault13ResourceInUse9ExceptionE(Fault cause: vim.fault.ResourceInUse
--> )
--> [context]zKq7AVECAQAAAEq5RwEadnB4ZAAAENk3bGlidm1hY29yZS5zbwAAp3gsACVsLQAt6TKB88IHAWxpYnZpbS10eXBlcy5zbwCBndMHAQFPD+sCe+hwdnB4ZACCXt1OAYIgo0gBgrk0RwGC+zBDAYJZSUMBggFKQwGBbHQFAYLC1mEBgr3ZYAGC/tpgAYIs6mABgo8XYAGCWsFgAQCnSSMAT58jAM5kNwOH
fwBsaWJwdGhyZWFkLnNvLjAABC82D2xpYmMuc28uNgA=[/context]
2023-09-20T16:49:13.199Z info vpxd[46771] [Originator@6876 sub=vpxLro opID=lkab6gv9-663278-auto-e7sf-h5:70099241-ef] [VpxLRO] -- FINISH task-16220
2023-09-20T16:49:13.199Z info vpxd[46771] [Originator@6876 sub=Default opID=lkab6gv9-663278-auto-e7sf-h5:70099241-ef] [VpxLRO] -- ERROR task-16220 -- dvs-2065 -- vim.DistributedVirtualSwitch.reconfigure: vim.fault.ResourceInUse:
--> Result:
--> (vim.fault.ResourceInUse) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = (vmodl.LocalizableMessage) [
--> (vmodl.LocalizableMessage) {
--> key = "com.vmware.vim.vpxd.dvs.uplinkInUse.label",
--> arg = (vmodl.KeyAnyValue) [
--> (vmodl.KeyAnyValue) {
--> key = "uplink",
--> value = "uplink1"
--> },
--> (vmodl.KeyAnyValue) {
--> key = "pnic",
--> value = "vmnic2"
--> },
--> (vmodl.KeyAnyValue) {
--> key = "host",
--> value = "host aus1-c1-esx01.dell.kohls.com"
--> },
--> (vmodl.KeyAnyValue) {
--> key = "port",
--> value = "3"
--> }
--> ],
--> message = <unset>
--> }
--> ],
--> type = "vim.dvs.DistributedVirtualPort",
--> name = "3"
--> msg = ""
--> }
Example 2: With the following uplink to vmnic mapping:
Uplink1 - free
Uplink2 - free
Uplink3 - vmnic1
Uplink4 - vmnic2
Uplink5 - free
Uplink6 - free
An there is a dvportgroup dvpg-1 with teaming policy:
Active: [Uplink3, Uplink4]
Standby: []
Unused: [Uplink1, Uplink2, Uplink5, Uplink6]
And a VM vm-1 connected to dvpg-1.
If we try to remove Uplink1 and Uplink2 from the VDS on VC UI, the task will success, but vm-1 will lost connection. Because the uplink to vmnic mapping will changed to:
Uplink3 - free
Uplink4 - free
Uplink5 - vmnic1
Uplink6 - vmnic2
dvportgroup dvpg-1 teaming policy will be:
Active: [Uplink3, Uplink4]
Standby: []
Unused: [Uplink5, Uplink6]
Now all the active uplinks on dvportgroup dvpg-1 do not have vmnic, so it has lost network connection.
The uplink of VDS is a straight-ordering array. It maps to uplink port array with an index.
Currently there is no resolution.
Follow the below workaround:
Currently only removing the last uplink in the array is supported.
Example 1:
If we have the following uplink to vmnic mapping:
Uplink1 - vmnic1
Uplink2 - vmnic2
Uplink3 - free
Uplink4 - free
Removing Uplink3 and Uplink4 from the VDS on VC UI is OK, it will not have any problem.
Example 2 :
If we have the following uplink to vmnic mapping:
Uplink1 - free
Uplink2 - free
Uplink3 - vmnic1
Uplink4 - vmnic2
First move vmnic1 and vmnic2 to Uplink1 and Uplink2, and then remove Uplink3 and Uplink4 from the VDS on VC UI.