Environment
- Product: ZCF
- Component: ZCE-S
- Affected objects: RGW, object gateways, and
rgw_bucket_quota_ttl - Version: 6.3.205
- Trigger condition: In a multi-RGW environment, the user quota cache may cause
total_size_bto return a stale value or 0, requiring an RGW quota cache adjustment.
Symptoms
- The current version updates the user quota cache through asynchronous tasks.
- In a multi-RGW environment, the cache may intermittently cause
total_size_bto return a stale value or 0. - Set
rgw_bucket_quota_ttlto 0 so that every request queries the quota in real time.
Diagnosis
- Confirm that the environment is within scope and record versions, system architecture, operating system, deployment mode, and storage type.
- Run
ceph -sand confirmHEALTH_OKorHEALTH_WARNwith warnings that do not affect the operation. - Check whether
rgw_bucket_quota_ttlis already configured inceph.confon the RGW nodes. - After configuration, verify the value with
ceph daemon ... config show | grep rgw_bucket_quota_ttl.
Cause
User quota caching is delayed in a multi-RGW environment and may return a stale value or 0. Setting rgw_bucket_quota_ttl to 0 queries the quota for every request and eliminates cache inconsistency, but adds 1 I/O operation to each write request.
Resolution
1. Prerequisites
- Risk level: Medium
- Avoid affecting existing services throughout the change.
- Confirm cluster health and back up the configuration on every RGW node.
2. Procedure
- Confirm cluster status.
ceph -s
- Expected result: Status is
HEALTH_OKorHEALTH_WARN, and warnings do not affect the operation.
- Back up the configuration on every RGW node.
cp /var/lib/ceph/etc/ceph/ceph.conf /root
- Expected result:
ceph.confis backed up.
- Log in to every RGW node and edit the configuration.
vi /var/lib/ceph/etc/ceph/ceph.conf
- View RGW nodes from object gateway management on the port 6680 UI.
- Expected result: The configuration is open for editing.
- Add the parameter under
[global]or the corresponding RGW instance section.
rgw_bucket_quota_ttl = 0
- Expected result: The quota cache time is 0.
- Restart RGW on every RGW node.
systemctl restart radosgw@<rgw-name>.service
systemctl status radosgw@<rgw-name>.service
- Replace
<rgw-name>with the actual instance name; tab completion is available. - Expected result: Status is
active (running).
- Verify that the parameter is effective.
ceph daemon /var/lib/ceph/var/run/ceph/ceph-client.radosgw.rgw3.asok config show | grep rgw_bucket_quota_ttl
- Expected result: The output includes
rgw_bucket_quota_ttl = 0.
- Verify business functions with a small number of object uploads and downloads.
- Expected result: Business functions operate normally.
Verification
- Run
ceph -sand confirm normal cluster status. - Confirm
active (running)fromsystemctl status radosgw@<rgw-name>.service. - Confirm that
rgw_bucket_quota_ttl = 0is effective. - Upload and download a small number of objects and confirm normal access.
Risks and rollback
- Risk: Each write request incurs 1 additional I/O operation, slightly affecting object write performance.
- Risk level: Medium.
- Rollback: Restore the backed-up
ceph.confand restart RGW services.
Exception handling recommendations
If an abnormality occurs, stop subsequent operations immediately and restore the backed-up configuration as specified by the rollback plan.
