3.7. クォータ管理

Ceph Object Gateway を使用すると、ユーザーが所有するユーザーおよびバケットにクォータを設定することができます。クォータには、バケットのオブジェクトの最大数と、メガバイト単位のストレージの最大サイズが含まれます。

  • Bucket: --bucket オプションでは、ユーザーが所有するバケットのクォータを指定できます。
  • Maximum Objects: --max-objects 設定では、オブジェクトの最大数を指定できます。負の値を設定すると、この設定が無効になります。
  • Maximum Size: --max-size オプションでは、バイトの最大数のクォータを指定できます。負の値を設定すると、この設定が無効になります。
  • Quota Scope: --quota-scope オプションは、クォータのスコープを設定します。オプションは bucketuser です。バケットクォータは、ユーザーが所有するバケットに適用されます。ユーザークォータはユーザーに適用されます。
重要

オブジェクトが多数あるバケットは、パフォーマンスに関する重大な問題が発生する可能性があります。1 つのバケット内のオブジェクトの推奨最大数は 100,000 です。この数を増やすには、バケットインデックスシャードリングを設定します。詳細は 「バケットシャード化の設定」 を参照してください。

3.7.1. ユーザークォータの設定

クォータを有効にする前に、まずクォータパラメーターを設定する必要があります。以下に例を示します。

[root@master-zone]# radosgw-admin quota set --quota-scope=user --uid=<uid> [--max-objects=<num objects>] [--max-size=<max size>]

以下に例を示します。

radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024

オブジェクトと / または最大サイズに負の値を指定すると、特定のクォータ属性チェックが無効になります。

3.7.2. ユーザークォータの有効化および無効化

ユーザークォータを設定したら、これを有効にすることができます。以下に例を示します。

[root@master-zone]# radosgw-admin quota enable --quota-scope=user --uid=<uid>

有効なユーザークォータを無効にすることができます。以下に例を示します。

[root@master-zone]# radosgw-admin quota disable --quota-scope=user --uid=<uid>

3.7.3. バケットクォータの設定

バケットクォータは、指定された uid が所有するバケットに適用されます。これらはユーザーから独立しています。

[root@master-zone]# radosgw-admin quota set --uid=<uid> --quota-scope=bucket [--max-objects=<num objects>] [--max-size=<max size in bytes>]

オブジェクトと / または最大サイズに負の値を指定すると、特定のクォータ属性チェックが無効になります。

3.7.4. バケットクォータの有効化および無効化

バケットクォータを設定したら、これを有効にできます。以下に例を示します。

[root@master-zone]# radosgw-admin quota enable --quota-scope=bucket --uid=<uid>

有効なバケットクォータを無効にすることができます。以下に例を示します。

[root@master-zone]# radosgw-admin quota-disable --quota-scope=bucket --uid=<uid>

3.7.5. クォータ設定の取得

ユーザー情報 API から各ユーザーのクォータ設定にアクセスできます。CLI インターフェースでユーザークォータ設定情報を読み取るには、以下を実行します。

# radosgw-admin user info --uid=<uid>

テナントされたユーザーのクォータ設定を取得するには、ユーザー ID とテナントの名前を指定します。

+ radosgw-admin user info --uid=_user-id_ --tenant=_tenant_

3.7.6. クォータの統計の更新

クォータ統計は非同期的に更新されます。最新のクォータ統計を取得するには、すべてのユーザーおよびすべてのバケットのクォータ統計を手動で更新できます。

[root@master-zone]# radosgw-admin user stats --uid=<uid> --sync-stats

3.7.7. ユーザークォータの使用状況の取得

ユーザーが消費したクォータの量を確認するには、以下を実行します。

# radosgw-admin user stats --uid=<uid>
注記

最新のデータを受け取るには、--sync-stats オプションを指定して radosgw-admin user stats を実行する必要があります。

3.7.8. クォータキャッシュ

クォータの統計は、各 Ceph Gateway インスタンス用にキャッシュされます。複数のインスタンスがある場合、各インスタンスごとにクォータが異なるため、キャッシュはクォータの適用を防ぎます。これを制御するオプションは、rgw bucket quota ttlrgw user quota bucket sync interval、および rgw user quota sync interval です。これらの値が大きいほど、クォータ操作がより効率的になりますが、複数のインスタンスを同期する方がより効率的になります。これらの値が小さいほど、複数インスタンスの完全な実施性が高くなります。これら 3 つすべてが 0 の場合、クォータのキャッシュは効果的に無効になり、複数のインスタンスでクォータの適用が非常に高くなります。これらのオプションの詳細は、4章設定リファレンスを参照してください。

3.7.9. グローバルクォータの読み取りと書き込み

zonegroup マップでクォータ設定を読み書きできます。zonegroup マップを取得するには、次のコマンドを実行します。

[root@master-zone]# radosgw-admin global quota get

グローバルクォータ設定は、quota setquota enable、および quota disable コマンドに対応する global quota で操作できます。次に例を示します。

[root@master-zone]# radosgw-admin global quota set --quota-scope bucket --max-objects 1024
[root@master-zone]# radosgw-admin global quota enable --quota-scope bucket
注記

レルムと期間が存在するマルチサイト構成では、グローバルクォータへの変更は、period update --commit を使用してコミットする必要があります。期間がない場合には、変更を反映するために Ceph Object Gateways を再起動する必要があります。