在新版本的swift中的配额主要体现在Container Quotas与Account Quotas两个功能上,分别是对Container和Account上传文件的大小、个数等方面进行限制,需要使用此功能首先要在/etc/swift/proxy-server.conf文件中进行配置,修改完后重启swift服务:
1.在keystone中创建ResellerAdmin角色.
keystone role-create --name ResellerAdmin
2.把admin分配给此角色
keystone user-role-add --user=admin --tenant=admin --role=ResellerAdmin
3.修改[pipeline:main]
[pipeline:main]pipeline = catch_errors healthcheck cache ratelimit authtoken keystoneauth account-quotas container-quotas proxy-logging proxy-server
[filter:container-quotas]
use = egg:swift#container_quotas
[filter:account-quotas]
use = egg:swift#account_quotas
配置重启完毕,
使用admin为test租户设置限额,test租户的url地址为:http://192.168.26.69:8080/v1/AUTH_3e2a0a2df18b4f86a52e2dc6ad3cb989
swift -V 2 -A http://192.168.26.69:5000/v2.0 -U admin:admin -K ADMIN_PASS --os-storage-url=http://192.168.26.69:8080/v1/AUTH_3e2a0a2df18b4f86a52e2dc6ad3cb989 post -m quota-bytes:100000000
查看test租户的元数据.
swift stat
Account: AUTH_3e2a0a2df18b4f86a52e2dc6ad3cb989
Containers: 12
Objects: 79
Bytes: 76559661
Meta Quota-Bytes: 100000000
X-Timestamp: 1387874777.22459
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes
Container_Quotas:
1. X-Container-Meta-Quota-Bytes -- 目标container可上传的最大字节数
2. X-Container-Meta-Quota-Count -- 目标container可上传的最大文件个数
Account_Quotas:
1. X-Account-Meta-Quota-Bytes -- 单个上传最大字节数
2. Quota-Byes -- 1必须配合2才能有效果