'Creates a EMC volume.'

def create_volume(self, volume):

    volume_size = volume['size']
    volume_name = volume['name']
    utils.check_type_matched(volume)
    volume_metadata = utils.get_metadata(volume)
    pool = utils.get_pool_from_host(volume.host)
    specs = common.ExtraSpecs.from_volume(volume)
    provision = specs.provision
    tier = specs.tier
    volume_metadata['snapcopy'] = 'False'
    LOG.info('Create    Volume:    %(volume)s        Size:    %(size)s    pool:    %(pool)s    provision:    %(provision)s    tier:    %(tier)s    ', {'volume': volume_name, 'size': volume_size, 'pool': pool, 'provision': provision, 'tier': tier})
    qos_specs = utils.get_backend_qos_specs(volume)
    if (volume.group and vol_utils.is_group_a_cg_snapshot_type(volume.group)):
        cg_id = volume.group_id
    else:
        cg_id = None
    lun = self.client.create_lun(pool, volume_name, volume_size, provision, tier, cg_id, ignore_thresholds=self.config.ignore_pool_full_threshold, qos_specs=qos_specs)
    location = self._build_provider_location(lun_type='lun', lun_id=lun.lun_id, base_lun_name=volume.name)
    rep_update = self.setup_lun_replication(volume, lun.lun_id)
    model_update = {'provider_location': location, 'metadata': volume_metadata}
    model_update.update(rep_update)
    return model_update
