'Create a volume on given vzstorage share.
:param volume: volume reference'

def _do_create_volume(self, volume):

    volume_format = self.choose_volume_format(volume)
    volume_path = self.local_path(volume)
    volume_size = volume.size
    LOG.debug('Creating    new    volume    at    %s.', volume_path)
    if os.path.exists(volume_path):
        msg = (_('File    already    exists    at    %s.') % volume_path)
        LOG.error(msg)
        raise exception.InvalidVolume(reason=msg)
    if (volume_format == DISK_FORMAT_PLOOP):
        self._create_ploop(volume_path, volume_size)
    elif (volume_format == DISK_FORMAT_QCOW2):
        self._create_qcow2_file(volume_path, volume_size)
    elif self.configuration.vzstorage_sparsed_volumes:
        self._create_sparsed_file(volume_path, volume_size)
    else:
        self._create_regular_file(volume_path, volume_size)
    info_path = self._local_path_volume_info(volume)
    snap_info = {'active': os.path.basename(volume_path)}
    self._write_info_file(info_path, snap_info)
    self._qemu_img_info(volume_path, volume.name)
