Project

General

Profile

Bug #51422 » quota_error.log

Log about repeat my operation. - 海航 于, 07/12/2021 01:59 AM

 
1. Initial situation
<On ceph master>
[root@ceph ~]# radosgw-admin user info --uid admin
{
"user_id": "admin",
"display_name": "admin",
.........
"caps": [
{
"type": "buckets",
"perm": "read"
},
{
"type": "metadata",
"perm": "read"
},
{
"type": "usage",
"perm": "read"
},
{
"type": "users",
"perm": "read"
},
{
"type": "zone",
"perm": "read"
}
],
.........
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
.........
}

[root@ceph ~]# radosgw-admin user stats --uid=admin --sync-stats
{
"stats": {
"total_entries": 0,
"total_bytes": 0,
"total_bytes_rounded": 0
},
"last_stats_sync": "2021-07-12 01:00:11.899886Z",
"last_stats_update": "2021-07-12 00:58:24.423704Z"
}

2. Without quota:
<On client>
[root@haihang test]# s3cmd ls
[root@haihang test]# s3cmd la
[root@haihang test]# s3cmd mb s3://dlweb-haha
Bucket 's3://dlweb-haha/' created
[root@haihang test]# ls -lh
......
-rw-r--r-- 1 root root 200M Jun 29 14:18 file
-rw-r--r-- 1 root root 200M Jul 12 08:59 file1
-rw------- 1 root root 246M Jun 29 10:36 python1.tar
-rw------- 1 root root 246M Jun 29 10:28 python.tar
[root@haihang test]# s3cmd put file s3://dlweb-haha
upload: 'file' -> 's3://dlweb-haha/file' [part 1 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 42.34 MB/s done
.........
upload: 'file' -> 's3://dlweb-haha/file' [part 14 of 14, 5MB] [1 of 1]
5242880 of 5242880 100% in 0s 30.03 MB/s done
[root@haihang test]# s3cmd put file1 s3://dlweb-haha
upload: 'file1' -> 's3://dlweb-haha/file1' [part 1 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 38.09 MB/s done
.........
upload: 'file1' -> 's3://dlweb-haha/file1' [part 14 of 14, 5MB] [1 of 1]
5242880 of 5242880 100% in 0s 35.89 MB/s done
<On ceph master>
[root@ceph ~]# radosgw-admin user stats --uid=admin --sync-stats
{
"stats": {
"total_entries": 2,
"total_bytes": 419430400,
"total_bytes_rounded": 419430400
},
"last_stats_sync": "2021-07-12 01:06:42.922618Z",
"last_stats_update": "2021-07-12 01:06:42.917389Z"
}

As expected.

3. Set quota to 300M.
<On client>
[root@haihang test]# s3cmd del s3://dlweb-haha/file1
delete: 's3://dlweb-haha/file1'
[root@haihang test]# s3cmd del s3://dlweb-haha/file
delete: 's3://dlweb-haha/file'
<On ceph master>
[root@ceph ~]# radosgw-admin quota set --quota-scope=user --uid admin --max-size 300M
[root@ceph ~]# radosgw-admin quota enable --quota-scope=user --uid admin
[root@ceph ~]# radosgw-admin user info --uid admin
{
.........
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": true,
"check_on_raw": false,
"max_size": 314572800,
"max_size_kb": 307200,
"max_objects": -1
},
.........
}
<On client>
[root@haihang test]#
[root@haihang test]# s3cmd del s3://dlweb-haha/file1
delete: 's3://dlweb-haha/file1'
[root@haihang test]# s3cmd del s3://dlweb-haha/file
delete: 's3://dlweb-haha/file'
[root@haihang test]# s3cmd ls -rH s3://dlweb-haha
[root@haihang test]# s3cmd put file s3://dlweb-haha
upload: 'file' -> 's3://dlweb-haha/file' [part 1 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 40.24 MB/s done
.........
upload: 'file' -> 's3://dlweb-haha/file' [part 14 of 14, 5MB] [1 of 1]
5242880 of 5242880 100% in 0s 29.63 MB/s done
[root@haihang test]# s3cmd put file1 s3://dlweb-haha
upload: 'file1' -> 's3://dlweb-haha/file1' [part 1 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 38.65 MB/s done
.........
upload: 'file1' -> 's3://dlweb-haha/file1' [part 7 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 85.72 MB/s done
ERROR:
Upload of 'file1' part 7 failed. Use
/usr/local/bin/s3cmd abortmp s3://dlweb-haha/file1 2~C4d44FmnTq8OBu0sSPKvk1HTUDQy9OO
to abort the upload, or
/usr/local/bin/s3cmd --upload-id 2~C4d44FmnTq8OBu0sSPKvk1HTUDQy9OO put ...
to continue the upload.
ERROR: S3 error: 403 (QuotaExceeded)

As Expected.

4. Then set max-size quota from 300M to 500M.
<On ceph master>
[root@ceph ~]# radosgw-admin quota set --quota-scope=user --uid admin --max-size 500M
<On client>
[root@haihang test]# s3cmd put file1 s3://dlweb-haha
upload: 'file1' -> 's3://dlweb-haha/file1' [part 1 of 14, 15MB] [1 of 1]
15728640 of 15728640 100% in 0s 38.09 MB/s done
.........
upload: 'file1' -> 's3://dlweb-haha/file1' [part 14 of 14, 5MB] [1 of 1]
5242880 of 5242880 100% in 0s 35.89 MB/s done
[root@haihang test]# s3cmd ls -rH s3://dlweb-haha
2021-07-12 01:16 200M s3://dlweb-haha/file
2021-07-12 01:20 200M s3://dlweb-haha/file1
Now bucket dlweb-haha has stored 400M, then try to upload python.tar(246M)
[root@haihang test]# s3cmd put python.tar s3://dlweb-haha
upload: 'python.tar' -> 's3://dlweb-haha/python.tar' [part 1 of 3, 100MB] [1 of 1]
104857600 of 104857600 100% in 1s 93.70 MB/s done
ERROR:
Upload of 'python.tar' part 1 failed. Use
/usr/local/bin/s3cmd abortmp s3://dlweb-haha/python.tar 2~kcE4EZZEJ03i9br9OSvaFOW5ezks66Z
to abort the upload, or
/usr/local/bin/s3cmd --upload-id 2~kcE4EZZEJ03i9br9OSvaFOW5ezks66Z put ...
to continue the upload.
ERROR: S3 error: 403 (QuotaExceeded)
As expected, Then delete file1(200M).
[root@haihang test]# s3cmd ls -rH s3://dlweb-haha
2021-07-12 01:16 200M s3://dlweb-haha/file
2021-07-12 01:20 200M s3://dlweb-haha/file1
[root@haihang test]# s3cmd del s3://dlweb-haha/file1
delete: 's3://dlweb-haha/file1'
Current bucket dlweb-haha has stored just 200M, while quota is 500M. Then try to upload python.tar(246M), we get unexpected.
[root@haihang test]# s3cmd put python.tar s3://dlweb-haha
upload: 'python.tar' -> 's3://dlweb-haha/python.tar' [part 1 of 3, 100MB] [1 of 1]
104857600 of 104857600 100% in 2s 49.85 MB/s done
upload: 'python.tar' -> 's3://dlweb-haha/python.tar' [part 2 of 3, 100MB] [1 of 1]
104857600 of 104857600 100% in 1s 51.31 MB/s done
upload: 'python.tar' -> 's3://dlweb-haha/python.tar' [part 3 of 3, 45MB] [1 of 1]
47887872 of 47887872 100% in 0s 95.27 MB/s done
ERROR:
Upload of 'python.tar' part 3 failed. Use
/usr/local/bin/s3cmd abortmp s3://dlweb-haha/python.tar 2~ZKwTBczSQHkrApl43SVWRalchaxOx-H
to abort the upload, or
/usr/local/bin/s3cmd --upload-id 2~ZKwTBczSQHkrApl43SVWRalchaxOx-H put ...
to continue the upload.
ERROR: S3 error: 403 (QuotaExceeded)
[root@haihang test]# s3cmd ls -rH s3://dlweb-haha
2021-07-12 01:16 200M s3://dlweb-haha/file
    (1-1/1)