cinder的配额参数说明

概述

openstack默认为了防止用户随意使用存储空间,针对cinder做了限制。cinder的quota有一个专门的驱动去完成。当超过quota时,使用cinder将会失败。

cinder中quota的默认配置

quota_driver=cinder.quota.DbQuotaDriver            quota的驱动,源代码的路径
quota_volumes=10                                   volume的个数
quota_snapshots=10                                 快照个数
quota_gigabytes=1000                               volume的空间大小,默认单位是GB,包括快照和volume的空间
reservation_expire=86400                           过时时长
max_age=0                                          刷新间隔

以上配置均是在cinder.quota.quota_opts中配置的!

cinder的配额常用命令包括

1. 查看tenant的默认配额:

cinder quota-defaults tenant-id/user-id

2. 查看quota的使用情况

cinder quota-usage tenant-id/user-id

3. 调整quota配额

cinder quota0update --volumes 100 --snapshots 100 --gigabytes 5000 tenant-id/user-id

cinder quota-show tenant-id

cinder quota-usage tenant-id

相关数据库解析

reservations

每次创建卷或者删除卷的时候,都会创建创建对应的reservation记录,即预分配,等卷的数据库表创建成功或者删除成功之后,再将reservation中的配额更新到quota_usages中,之后,再将reservation表删除。delta值,代表此次是从quota_usages中获取多大的值,如果此值为负,则是说明还给quota_usages表。

在创建云硬盘的时候,发现reservation表在云硬盘创建成功之后,会自动删除;但是在删除云硬盘的时候,却不会自动删除。

原因是cinder-volume在读写数据库的时候,由于对sqlalchemy库做了改动,导致cinder-volume读写时出现错误。因此虽然执行了QUOTAS.commit(context, reservations, project_id=project_id)函数,但是执行失败,相应的reservation表没有删除,quota_usages的数据也没有更新。

quota_classes表

代表当前表中的资源限额是多少:

quota_usages表

代表当前各种资源的使用量:


该表会和reservation表进行联动,调用QUOTAS.commit函数的时候,会更新quota_usages表,同时会删除reservation表。

定时清理reservation

    @periodic_task.periodic_task(spacing=CONF.reservation_clean_interval,
                                 run_immediately=True)
    def _clean_expired_reservation(self, context):
        QUOTAS.expire(context)

上述函数位于cinder.scheduler.manager.SchedulerManager对象中,就是定时发现数据表中的reservation是否超时,如果超时就会把这个表删除,然后更新quota_usages数据表中的值。

例如在删除云硬盘的时候,配额在quota_usages中并未真正的减少,只是在reservation做了相应的记录,因此这个函数就会在删除超时的reservation时,更新quota_usages中的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值