quota 功能及代码分析.docxVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Cinder 配额使用介绍 封装抽象 quota相关功能实现在cinder\quota.py实现,包含了引擎、资源、驱动三个大类抽象封装。看起来quota.py用的是设计模式“抽象工厂模式”,可选择引擎做不同的操作,引擎里又可选择驱动来操作管理资源,资源里可注册不同的配额项。 资源 资源其实就是对配额的封装,封装了资源名、默认值、数据库统计函数dbapi等。 资源分类列表: 类名 描述 属性 cinder.quota.BaseResource 定义单个配额资源 name(资源名)、flag(控制默认值)、parent_project_id(当前租户的附租户)、quota方法用于获取资源的使用量、default方法用户获取默认值 cinder.quota.AbsoluteResource 无预留的资源 pass无定义 cinder.quota.ReservableResource 可预留的资源 sync (dbapi 方法名,统计配额使用信息。如范例) cinder.quota.CountableResource 可统计的资源,cinder代码里没看到使用 count(统计函数) cinder.quota.VolumeTypeResource 为卷类型定义的资源,继承ReservableResource volume_type_name(卷类型名)、volume_type_id(卷类型id) HYPERLINK file:///C:/Users/wangyue/AppData/Local/Youdao/YNote/markdown/index.html \l 注意 注意: ReservableResource:相比BaseResource,多了sync方法,sync会被驱动调用,用于在计算配额之前,先同步配额信息(到本地和数据库)。ReservableResource只能用于project绑定的资源。 CountableResource:相比BaseResource,多了count方法,count方法必须给出一个函数,自己计算配额,其返回值里会包含配额实际使用值。 sync范例:ReservableResource资源volume的sync: cinder.db.sqlalchemy.api._sync_volumes: def _sync_volumes(context, project_id, session, volume_type_id=None, volume_type_name=None): # 根据volume_type_id和project_id统计卷数量和卷空间使用量 (volumes, _gigs) = _volume_data_get_for_project( context, project_id, volume_type_id=volume_type_id, session=session) key = volumes if volume_type_name: key += _ + volume_type_name return {key: volumes} HYPERLINK file:///C:/Users/wangyue/AppData/Local/Youdao/YNote/markdown/index.html \l 二-引擎 引擎 定义了资源集。调用驱动来实现查询统计功能。 引擎列表: 类名 描述 resources cinder.quota.QuotaEngine 配额引擎,基类 cinder.quota.VolumeTypeQuotaEngine 卷类型配额引擎 volumes, per_volume_gigabytes, snapshots, gigabytes, backups, backup_gigabytes cinder.quota.CGQuotaEngine 一致性组的配额的引擎 consistencygroups cinder.quota.GroupQuotaEngine 组配额的引擎 groups HYPERLINK file:///C:/Users/wangyue/AppData/Local/Youdao/YNote/markdown/index.html \l 三-驱动 驱动 驱动是可配置的,对应配置项quota_driver,默认值是cinder.quota.DbQuotaDriver cfg.StrOpt(quota_driver, default=cinder.quota.DbQuotaDriver,

文档评论(0)

annylsq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档