'Create volume backing under the given host.
If host is unspecified, any suitable host is selected.
:param volume: Volume object
:param host: Reference of the host
:param create_params: Dictionary specifying optional parameters for
backing VM creation
:return: Reference to the created backing'

def _create_backing(self, volume, host=None, create_params=None):

    create_params = (create_params or {})
    (host_ref, resource_pool, folder, summary) = self._select_ds_for_volume(volume, host)
    profile_id = self._get_storage_profile_id(volume)
    backing_name = create_params.get(CREATE_PARAM_BACKING_NAME, volume['name'])
    extra_config = self._get_extra_config(volume)
    if create_params.get(CREATE_PARAM_TEMP_BACKING):
        del extra_config[volumeops.BACKING_UUID_KEY]
    disk_less = create_params.get(CREATE_PARAM_DISK_LESS, False)
    if disk_less:
        return self.volumeops.create_backing_disk_less(backing_name, folder, resource_pool, host_ref, summary.name, profileId=profile_id, extra_config=extra_config)
    disk_type = VMwareVcVmdkDriver._get_disk_type(volume)
    size_kb = (volume['size'] * units.Mi)
    adapter_type = create_params.get(CREATE_PARAM_ADAPTER_TYPE, self._get_adapter_type(volume))
    backing = self.volumeops.create_backing(backing_name, size_kb, disk_type, folder, resource_pool, host_ref, summary.name, profileId=profile_id, adapter_type=adapter_type, extra_config=extra_config)
    self.volumeops.update_backing_disk_uuid(backing, volume['id'])
    return backing
