<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY

Two vmware modules uses `copy()` to duplicate an internal instance of a pyvmomi object. This to be able to modify the object during an iteration.

- https://github.com/ansible/ansible/blob/622a493ae03bd5e5cf517d336fc426e9d12208c7/lib/ansible/modules/cloud/vmware/vmware_guest.py#L788
- https://github.com/ansible/ansible/blob/622a493ae03bd5e5cf517d336fc426e9d12208c7/lib/ansible/modules/cloud/vmware/vmware_datastore_facts.py#L220

As explain here, https://github.com/ansible/ansible/pull/60196/files#r312643761 this is not the best approach and this may impact the performance.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

vmware

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
devel
```
datastore_summary['type'] = summary.type
            if self.gather_nfs_mount_info or self.gather_vmfs_mount_info:
                if self.gather_nfs_mount_info and summary.type.startswith("NFS"):
                    
                    host_mount_info = self.check_datastore_host(summary.datastore.host[0].key.name, summary.name)
                    datastore_summary['nfs_server'] = host_mount_info.volume.remoteHost
                    datastore_summary['nfs_path'] = host_mount_info.volume.remotePath
                if self.gather_vmfs_mount_info and summary.type == "VMFS":
                    
                    host_mount_info = self.check_datastore_host(summary.datastore.host[0].key.name, summary.name)
                    datastore_summary['vmfs_blockSize'] = host_mount_info.volume.blockSize
                    datastore_summary['vmfs_version'] = host_mount_info.volume.version
                    datastore_summary['vmfs_uuid'] = host_mount_info.volume.uuid
            
            if not summary.uncommitted:
                summary.uncommitted = 0
            datastore_summary['uncommitted'] = summary.uncommitted
            datastore_summary['url'] = summary.url
            
            datastore_summary['provisioned'] = summary.capacity - summary.freeSpace + summary.uncommitted
            datastore_summary['datastore_cluster'] = 'N/A'
            if isinstance(datastore.parent, vim.StoragePod):
                datastore_summary['datastore_cluster'] = datastore.parent.name
            if self.module.params['name']:
                if datastore_summary['name'] == self.module.params['name']:
                    datastores.extend([datastore_summary])
            else:
                datastores.extend([datastore_summary])
        return datastores
class PyVmomiCache(object):