システムの容量が通知なしに完全に消費されないように、 クォータ を設定することができます。クォータとは、運用上の制限値です。たとえば、各テナントに許容される容量 (GB) を制御して、単一のテナントで全ディスク容量すべてが消費されないようにします。現在、ユーザーレベルではなく、テナント (またはプロジェクト) レベルで、クォータを有効にすることができます。
警告
妥当なクォータがないと、単一のテナントが利用可能なリソースをすべて使用してしまう可能性があるため、デフォルトのクォータが OpenStack には含まれています。お使いのハードウェア機能には、どのクォータ設定が適切か注意してください。
コマンドラインインターフェースを使って、OpenStack Compute と Block Storage のクォータを管理できます。
テナントには、10 個を超える Block Storage ボリュームまたはコンピュートノードで 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>
たとえば、プロジェクトのイメージストレージを 5GB に制限するには、以下を実行します。
user_storage_quota = 5368709120
注釈
イメージごとに許可されるメンバーの数を制限する、 /etc/glance/glance-api.conf
の設定オプションがあります。これは、 image_member_quota
であり、デフォルトで 128 です。その設定は、保存容量のクォータとは別のクォータです。
管理ユーザーは、既存のテナントの Compute のクォータを更新できます。また、新規テナントのクォータのデフォルト値を更新することもできます。 Compute のクォータの説明 を参照してください。
クォータ | 説明 | プロパティ名 |
---|---|---|
固定 IP | プロジェクトごとの固定 IP アドレスの最大数。この数はプロジェクトごとの最大インスタンス数以上にしなければなりません。 | fixed-ips |
Floating IP | プロジェクトごとの最大 Floating IP 数 | floating-ips |
注入ファイルのコンテンツ (バイト) | injected file あたりの最大バイト数 | injected-file-content-bytes |
注入ファイルのパス (バイト) | injected file のパス長の最大バイト数 | injected-file-path-bytes |
注入ファイル | プロジェクトごとの injected file の最大数 | injected-files |
インスタンス | プロジェクトごとの最大インスタンス数 | instances |
キーペア | ユーザーごとの最大キーペア数 | key-pairs |
メタデータ項目 | インスタンスごとのメタデータ項目数 | metadata-items |
メモリー | プロジェクトごとのインスタンスの RAM 容量(メガバイト単位) | ram |
セキュリティグループルール | Number of security group rules per project. | security-group-rules |
セキュリティグループ | プロジェクトごとのセキュリティグループ数 | security-groups |
仮想 CPU | プロジェクトごとのインスタンスのコア数 | cores |
サーバーグループ | プロジェクトごとのサーバーグループ数 | server_groups |
サーバーグループのメンバー | サーバーグループごとのサーバー数。 | server_group_members |
管理ユーザーは 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
現在、Object Storage に対する 2 種類のクォータがあります。
コンテナーのクォータやアカウントのクォータの利点を得るために、Object Storage のプロキシーサーバーが container_quotas
や account_quotas
(または両方) を [pipeline:main]
パイプラインに追加するする必要があります。各クォータの種類は、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
Object Storage クォータを表示および更新するためには、python-swiftclient
パッケージにより提供される swift
コマンドを使用します。プロジェクト内のユーザーは誰でも、そのプロジェクトに設定されているクォータを表示できます。プロジェクトの Object Storage クォータを更新する場合、クォータを適用するプロジェクトにおいて 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
管理ユーザーは、既存のテナントの Block Storage のクォータを更新できます。また、新規テナントのクォータのデフォルト値を更新することもできます。表: Block Storage のクォータの説明 を参照してください。
プロパティ名 | 説明 |
---|---|
gigabytes | テナントごとのボリューム容量の最大値(単位はギガバイト) |
snapshots | テナントごとのブロックストレージスナップショット数 |
volumes | テナントごとのブロックストレージボリューム数 |
管理ユーザーは cinder quota-* コマンドを使って、テナントのクォータを表示したり更新したりできます。コマンドは python-cinderclient
パッケージに含まれます。
Block Storage のデフォルトのクォータ値の表示と更新
全テナントに対するクォータのデフォルト値を全て表示するには、以下のようにします。
$ 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
ファイルの対応する項目を更新します。
プロジェクトの Block Storage クォータの表示方法
特定のテナントのクォータを表示するには以下のようにします。
# cinder quota-show tenantID
例えば
# cinder quota-show $tenant
+-----------+-------+
| Property | Value |
+-----------+-------+
| gigabytes | 1000 |
| snapshots | 10 |
| volumes | 10 |
+-----------+-------+
プロジェクトの Block Storage クォータの更新方法
テナント 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 |
+-----------+-------+
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.