[ 英语 | 日本語 | Deutsch | Indonesia ]
配额¶
为了防止系统容量在没有通知的情况下耗尽,您可以设置配额。配额是运行限制。例如,可以控制每个租户允许的千兆字节数,以确保单个租户无法消耗所有磁盘空间。目前,配额是在租户(或项目)级别强制执行的,而不是用户级别。
警告
由于如果没有合理的配额,单个租户可能会耗尽所有可用资源,OpenStack 默认会附带默认配额。您应该注意哪些配额设置对您的硬件功能有意义。
使用命令行界面,您可以管理 OpenStack Compute 服务和块存储服务的配额。
通常,会更改默认值,因为租户可能需要超过 OpenStack 默认的每个租户 10 个卷,或者超过 OpenStack 默认的计算节点上 1 TB 的磁盘空间。
注意
要查看所有租户,请运行
$ openstack project list
+---------------------------------+----------+
| ID | Name |
+---------------------------------+----------+
| a981642d22c94e159a4a6540f70f9f8 | admin |
| 934b662357674c7b9f5e4ec6ded4d0e | tenant01 |
| 7bc1dbfd7d284ec4a856ea1eb82dca8 | tenant02 |
| 9c554aaef7804ba49e1b21cbd97d218 | services |
+---------------------------------+----------+
设置镜像配额¶
您可以限制项目通过总字节数存储的镜像。目前,此配额在云级别应用,因此如果您将镜像配额限制设置为 5 GB,则您的云中的所有项目只能存储 5 GB 的镜像和快照。
要启用此功能,请编辑 /etc/glance/glance-api.conf 文件,并在 [DEFAULT] 部分中添加
user_storage_quota = <bytes>
例如,要将项目的镜像存储限制为 5 GB,请执行以下操作
user_storage_quota = 5368709120
注意
在 /etc/glance/glance-api.conf 中有一个配置选项,限制了每个镜像允许的成员数量,名为 image_member_quota,默认设置为 128。该设置与存储配额不同。
设置计算服务配额¶
作为管理员用户,您可以更新现有租户的计算服务配额,以及更新新租户的配额默认值。请参阅 计算配额说明。
配额 |
描述 |
属性名称 |
|---|---|---|
固定 IP |
每个项目允许的固定 IP 地址数量。此数字必须等于或大于允许的实例数量。 |
|
浮动 IP |
每个项目允许的浮动 IP 地址数量。 |
|
注入文件内容字节 |
每个注入文件允许的内容字节数。 |
|
注入文件路径字节 |
每个注入文件路径允许的字节数。 |
|
注入文件 |
每个项目允许的注入文件数量。 |
|
实例 |
每个项目允许的实例数量。 |
|
密钥对 |
每个用户允许的密钥对数量。 |
|
元数据项 |
每个实例允许的元数据项数量。 |
|
RAM |
每个项目允许的实例 RAM 千兆字节数。 |
|
安全组规则 |
每个项目允许的安全组规则数量。 |
|
安全组 |
安全组 |
|
VCPUs |
实例核心数 |
|
服务器组 |
服务器组数量 |
|
服务器组成员 |
每个服务器组的服务器数量。 |
|
查看和更新租户(项目)的计算配额¶
作为管理员用户,您可以使用 nova quota-* 命令,这些命令由 python-novaclient 包提供,来查看和更新租户配额。
要查看和更新默认配额值
如下列出所有租户的默认配额
$ nova quota-defaults
例如
$ nova quota-defaults +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+
如下更新新租户的默认值
$ nova quota-class-update default key value
例如
$ nova quota-class-update default --instances 15
要查看租户(项目)的配额值
将租户 ID 放入变量
$ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
如下列出租户当前设置的配额值
$ nova quota-show --tenant $tenant
例如
$ nova quota-show --tenant $tenant +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+
要更新租户(项目)的配额值
获取租户 ID,如下所示
$ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
如下更新特定配额值
# nova quota-update --quotaName quotaValue tenantID
例如
# nova quota-update --floating-ips 20 $tenant # nova quota-show --tenant $tenant +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 20 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+
注意
要查看
nova quota-update命令的选项列表,请运行$ nova help quota-update
设置对象存储配额¶
目前对象存储有两个类别的配额
- 容器配额
限制可以存储在单个容器中的总大小(以字节为单位)或对象数量。
- 帐户配额
限制用户在对象存储服务中可用的总大小(以字节为单位)。
要利用容器配额或帐户配额,您的对象存储代理服务器必须在 [pipeline:main] 管道中添加 container_quotas 或 account_quotas(或两者)。每种配额类型还需要在 proxy-server.conf 文件中拥有自己的部分
[pipeline:main]
pipeline = catch_errors [...] slo dlo account_quotas proxy-server
[filter:account_quotas]
use = egg:swift#account_quotas
[filter:container_quotas]
use = egg:swift#container_quotas
要查看和更新对象存储配额,请使用由 python-swiftclient 包提供的 swift 命令。项目中包含的任何用户都可以查看放置在其项目上的配额。要更新对象存储配额,您必须在应用配额的项目中拥有 ResellerAdmin 角色。
要查看放置在项目上的帐户配额
$ swift stat
Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
Objects: 0
Bytes: 0
Meta Quota-Bytes: 214748364800
X-Timestamp: 1351050521.29419
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes
要应用或更新项目上的帐户配额
$ swift post -m quota-bytes:
<bytes>
例如,要将 5 GB 配额放置在帐户上
$ swift post -m quota-bytes:
5368709120
要验证配额,再次运行 swift stat 命令
$ swift stat
Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
Objects: 0
Bytes: 0
Meta Quota-Bytes: 5368709120
X-Timestamp: 1351541410.38328
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes
设置块存储配额¶
作为管理员用户,您可以更新租户的块存储服务配额,以及更新新租户的配额默认值。请参阅 表:块存储配额说明。
属性名称 |
描述 |
|---|---|
千兆字节 |
每个租户允许的卷千兆字节数 |
快照 |
每个租户允许的块存储快照数量。 |
volumes |
每个租户允许的块存储卷数量 |
查看和更新租户(项目)的块存储配额¶
作为管理员用户,您可以使用由 python-cinderclient 包提供的 cinder quota-* 命令来查看和更新租户配额。
要查看和更新默认块存储配额值
如下列出所有租户的默认配额
$ cinder quota-defaults tenantID
获取租户 ID,如下所示
$ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
例如
$ cinder quota-defaults $tenant +-----------+-------+ | Property | Value | +-----------+-------+ | gigabytes | 1000 | | snapshots | 10 | | volumes | 10 | +-----------+-------+
要更新新租户的默认值,请更新
/etc/cinder/cinder.conf文件中的属性。
要查看租户(项目)的块存储配额
如下查看配额
# cinder quota-show tenantID
例如
# cinder quota-show $tenant +-----------+-------+ | Property | Value | +-----------+-------+ | gigabytes | 1000 | | snapshots | 10 | | volumes | 10 | +-----------+-------+
要更新租户(项目)的块存储配额
将租户 ID 放入变量
$ tenant=$(openstack project list | awk '/tenantName/ {print $2}')
如下更新特定配额值
# cinder quota-update --quotaName NewValue tenantID
例如
# cinder quota-update --volumes 15 $tenant # cinder quota-show $tenant +-----------+-------+ | Property | Value | +-----------+-------+ | gigabytes | 1000 | | snapshots | 10 | | volumes | 15 | +-----------+-------+