8.6. クォータ管理
Ceph Object Gateway を使用すると、ユーザーが所有するユーザーおよびバケットにクォータを設定することができます。クォータには、バケットのオブジェクトの最大数と、メガバイト単位のストレージの最大サイズが含まれます。
-
Bucket:
--bucket
オプションでは、ユーザーが所有するバケットのクォータを指定できます。 -
Maximum Objects:
--max-objects
設定では、オブジェクトの最大数を指定できます。負の値を設定すると、この設定が無効になります。 -
Maximum Size:
--max-size
オプションでは、バイトの最大数のクォータを指定できます。負の値を設定すると、この設定が無効になります。 -
Quota Scope:
--quota-scope
オプションは、クォータのスコープを設定します。オプションはbucket
とuser
です。バケットクォータは、ユーザーが所有するバケットに適用されます。ユーザークォータはユーザーに適用されます。
多数のオブジェクトを含むバケットは、深刻なパフォーマンスの問題を引き起こす可能性があります。1 つのバケット内のオブジェクトの推奨最大数は 100,000 です。この数を増やすには、バケットインデックスシャーディングを設定します。詳細は、バケットインデックスの再シャーディングの設定 を参照してください。
8.6.1. ユーザークォータの設定
クォータを有効にする前に、まずクォータパラメーターを設定する必要があります。
構文
radosgw-admin quota set --quota-scope=user --uid=USER_ID [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
例
[root@host01 ~]# radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024
num オブジェクトおよび/または最大サイズの負の値は、特定のクォータ属性チェックが無効になっていることを意味します。
8.6.2. ユーザークォータの有効化と無効化
ユーザークォータを設定したら、これを有効にすることができます。
構文
radosgw-admin quota enable --quota-scope=user --uid=USER_ID
有効なユーザークォータを無効にすることができます。
構文
radosgw-admin quota disable --quota-scope=user --uid=USER_ID
8.6.3. バケットクォータの設定
バケットクォータは、指定された uid
が所有するバケットに適用されます。ユーザーからは独立しています。
構文
radosgw-admin quota set --uid=USER_ID --quota-scope=bucket --bucket=BUCKET_NAME [--max-objects=NUMBER_OF_OBJECTS] [--max-size=MAXIMUM_SIZE_IN_BYTES]
NUMBER_OF_OBJECTS、MAXIMUM_SIZE_IN_BYTES、またはその両方が負の値の場合、特定のクォータ属性チェックが無効になっていることを意味します。
8.6.4. バケットクォータの有効化と無効化
バケットクォータを設定したら、これを有効にすることができます。
構文
radosgw-admin quota enable --quota-scope=bucket --uid=USER_ID
有効なバケットクォータを無効にすることができます。
構文
radosgw-admin quota disable --quota-scope=bucket --uid=USER_ID
8.6.5. クォータ設定の取得
ユーザー情報 API を使用して、各ユーザーのクォータ設定にアクセスすることができます。CLI インターフェイスでユーザークォータ設定情報を読み取るには、以下のコマンドを実行します。
構文
radosgw-admin user info --uid=USER_ID
テナントユーザーのクォータ設定を取得するには、ユーザー ID とテナントの名前を指定します。
構文
radosgw-admin user info --uid=USER_ID --tenant=TENANT
8.6.6. クォータ統計の更新
クォータ統計は非同期で更新されます。すべてのユーザーおよびすべてのバケットのクォータ統計を手動で更新して、最新のクォータ統計を取得できます。
構文
radosgw-admin user stats --uid=USER_ID --sync-stats
8.6.7. ユーザークォータ使用の統計の取得
ユーザーが消費したクォータの量を確認するには、以下のコマンドを実行します。
構文
radosgw-admin user stats --uid=USER_ID
最新のデータを取得するには、--sync-stats
オプションを指定して radosgw-admin user stats
コマンドを実行する必要があります。
8.6.8. クォータキャッシュ
クォータ統計は、各 Ceph Gateway インスタンスに対してキャッシュされます。複数のインスタンスがある場合、インスタンスごとにクォータのビューが異なるため、キャッシュによってクォータが完全に適用されないようにすることができます。これを制御するオプションは、rgw bucket quota ttl
、rgw user quota bucket sync interval
、および rgw user quota sync interval
です。これらの値が高いほど、クォータ操作は効率的ですが、複数のインスタンスが同期しなくなります。これらの値が低いほど、複数のインスタンスは完全に近い形で適用されます。3 つすべてが 0 の場合には、クォータキャッシュは実質的に無効になり、複数のインスタンスで完全にクォータが適用されます。
8.6.9. グローバルクォータの読み取りおよび作成
ゾーングループマップでクォータ設定を読み書きできます。ゾーングループマップを取得するには、次のコマンドを実行します。
[root@host01 ~]# radosgw-admin global quota get
グローバルクォータ設定は、quota set
、quota enable
、および quota disable
コマンドに対応する global quota
で操作できます。次に例を示します。
[root@host01 ~]# radosgw-admin global quota set --quota-scope bucket --max-objects 1024 [root@host01 ~]# radosgw-admin global quota enable --quota-scope bucket
レルムと期間が存在するマルチサイト設定では、グローバルクォータへの変更は、period update --commit
を使用してコミットする必要があります。期間が表示されていない場合、変更を有効にするには、Ceph Object Gateway を再起動する必要があります。