Successfully reported this slideshow.
Your SlideShare is downloading. ×

Fixing Cinder Quotas - Update

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 17 Ad
Advertisement

More Related Content

Similar to Fixing Cinder Quotas - Update (20)

Recently uploaded (20)

Advertisement

Fixing Cinder Quotas - Update

  1. 1. Fixing Cinder Quotas UPDATE
  2. 2. Pain point Quotas? What’s that? These are not the quotas you are looking for 'Tis but a scratch I’ve had worse Just a flesh wound!
  3. 3. Now: Reservations Extend existing volume of type LVM by 100GB ✔ in- use limit 8 1100 10 volume s gigabytes 910 7 10 volumes_lv m 1100 gigabytes_lvm 905 reserve d 1 100 1 100 ✘ ✘ ✔ request 0 100 0 100 + ≥ + ≥ + ≥ + ≥ + + + +
  4. 4. Proposal ● Remove reservation accounting ● Dynamically count resources ● Ensure necessary indexes
  5. 5. Performance
  6. 6. Not a simple query ● Limits calculated from 2 tables: ○ Global defaults: quotaclasses ○ Project specific: quotas ● Limits by volume type: No direct cross ○ Limits by type name ○ Volumes by type id ● Snapshot GBs may count towards volume GBs ○ Also by volume type ● Still need reservations table: eg. extend
  7. 7. Performance ● Look at 2 operations: ○ Create volume ○ Get current usage ● Concurrency ○ Single request ○ Multiple requests (10) ● Things to look at: ○ Time: Per request avg & total ○ CPU: Total and per service (DB/Cinder)
  8. 8. Create with concurrency = 1
  9. 9. Create with concurrency = 10
  10. 10. Get usage with concurrency = 1
  11. 11. Get usage with concurrency = 10
  12. 12. Survey Largest project Typical project Volumes Snapshots Backups Volumes Snapshots Backups 1 70000 30000 0 10000 5000 0 2 3300 41 490 17 7 36 3 2500 0 0 1800 0 0 4 2000 2000 50 5 2 1 5 568 5 0 20 1 0 6 250 20 100 20 50 7 200 400 200 120 240 120 8 100 0 0 50 0 0 9 20 10 20 10 5 10 10 10 2 1 2 0 0
  13. 13. What to do?
  14. 14. Option 1 ● Move forward ○ New counting driver is the default ○ Most projects will be better: ■ Faster ■ More accurate ○ Tell large projects: It’s a tradeoff, accuracy for speed
  15. 15. Option 2 ● Mixed solution: ○ Same as old: Use quota_usages table ○ Same as new: ■ Reservations only in indispensable operations ■ Wrap queries in transactions ● Requires changes to the new quota driver interface: ○ Instead of the counting ○ Have both ● Could be a future implementation
  16. 16. Create with concurrency = 10
  17. 17. Get usage with concurrency = 10

×