I ran into an issue recently with the vCenter Server Appliance where the file based backup jobs suddenly stopped working on environments running 6.7. Attempts to run the backup job manually failed with the UI reporting “Location type SMB is not supported”, which is unexpected since SMB is supported.
The log file at /storage/log/vmware/applmgmt/applmgmt.log
contained the following entries.
2021-05-25T21:36:52.136 [4055]ERROR:backupRestoreAPI:Failed to mount the cifs share //<ServarFQDN>/VCSA_FBB/VCSA at /storage/remote/backup/cifs/<ServerFQDN>/nRxfrQkY/TMnSs7YB; Err: rc=32, stdOut:, stdErr: mount error(5): Input/output error Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) . 2021-05-25T21:36:52.136 [4055]INFO:backupRestoreAPI:Didn't remove non empty dir /storage/remote/backup/cifs/<ServerFQDN>; Contents: ['zPeftASY'] 2021-05-25T21:36:52.136 [4055]ERROR:backupRestoreAPI:Failed to create dispatch object for location type: SMB. Err: Couldn't mount the cifs share //<ServerFQDN>/VCSA_FBB/VCSA at /storage/remote/backup/cifs/<ServerFQDN>/nRxfrQkY/TMnSs7YB 2021-05-25T21:36:52.141 [4055]ERROR:vmware.appliance.vapi.impl:pint.Error('com.vmware.applmgmt.err_dispatch_module_load', "Location type '%(0)s' is not supported.", **{'args': LocationType(string='SMB')})
It turns out that the appliance will mount the remote SMB path to a folder under /storage/remote and in normal circumstances will remove the mount when the job completes. In my situation however, the unmount operation did not occur and the old mount point was left behind. The existence of this mount point caused future jobs to fail. Manually unmounting the SMB path with umount /storage/remote/backup/cifs/<ServerFQDN>/nRxfrQkY/TMnSs7YB
resolved the issue. Note that the last two folder names in the path are randomly generated and will be different in each environment. Since the mounts are non-persistent, rebooting the appliance will also remove the mount and resolve the issue.
The error message that SMB is not supported appears to be a generic catch-all error that is returned. The error message is not accurate in this situation.