Quality of Service (QoS)
Mục lục
- Quality of Service (QoS)
- Sample Command
- Sample Output
- Defining Thresholds — Định nghĩa các ngưỡng
- Nguồn tham khảo
QoS dựa trên policy được áp dụng cho mọi volume mới được tạo trên một Lightbits cluster. Việc này hoặc được thực hiện bằng cách chỉ định tường minh QoS mong muốn cho volume ngay trong thông tin của request tạo volume, hoặc được Lightbits cluster kế thừa từ QoS policy mặc định gắn với project của volume đó.
Tương tự, một project có thể được chỉ định QoS policy tường minh tại thời điểm tạo, hoặc kế thừa policy mặc định toàn cục của cluster (no-limit-policy).
Một QoS policy phải hoặc được tạo dưới dạng global policy khả dụng cho tất cả, hoặc chỉ định cụ thể project mà nó khả dụng. Một volume có thể được cập nhật bất cứ lúc nào để dùng một QoS policy khác (policy đó phải là global hoặc khả dụng cho project mà volume này thuộc về).
Một QoS policy có thể được cập nhật bất cứ lúc nào, và các giới hạn mới sẽ được lan truyền tới mọi volume gắn với project này. Một project cũng có thể được cập nhật bất cứ lúc nào để dùng một QoS policy mặc định khác; tuy nhiên lưu ý rằng điều này chỉ cung cấp QoS policy mặc định cho các volume được tạo mới. Mọi volume mới sẽ dùng QoS policy mặc định vừa được chỉ định, và việc này không làm thay đổi QoS mà các volume hiện có đang dùng.
QoS policy mặc định có thể được sửa đổi bất cứ lúc nào để trỏ tới một QoS policy mong muốn. Việc này sẽ ảnh hưởng tới mọi project được tạo mới. Các project (/volume) hiện có sẽ tiếp tục dùng những policy mà chúng đã chỉ định trước đó.
Bất kỳ volume nào cũng có thể được cập nhật để không còn rate limit, bằng cách cập nhật nó dùng một QoS policy được đặt ở mức không giới hạn cho cả ingress lẫn egress.
Rate limit được áp dụng trên từng volume, giới hạn tổng tốc độ lưu lượng ingress hoặc egress tổng hợp ở phía Lightbits cluster. Cơ chế QoS rate limit cung cấp một vài cách khác nhau để chỉ định giới hạn, mỗi cách có đơn vị và độ chi tiết riêng:
-
iops: Giới hạn băng thông đọc và ghi của volume, tính theo đơn vị IOPS. Độ chi tiết tăng theo bước 256 IOPS mỗi lần. Ví dụ, 400 IOPS sẽ được làm tròn lên thành 512 IOPs. Ở bên trong, các giới hạn IOPS được biểu diễn dưới dạng bandwidth và được thực thi, tính toán ở kích thước I/O mặc định là 4 KiB - trừ khi
pure-iopsđược dùng tường minh. Xem bài QoS IOPS Limiting - Pure IOPS để biết thêm thông tin. -
iops-per-gb: IOPs đọc và ghi của volume trên mỗi GB dung lượng volume. Kích thước volume sẽ được làm tròn xuống nếu không phải số GB nguyên, và mức trần đọc/ghi hiệu dụng được xác định bằng giới hạn per-GB × dung lượng volume tính theo GB. Ở bên trong, các giới hạn IOPS được biểu diễn dưới dạng bandwidth và được thực thi, tính toán ở kích thước I/O mặc định là 4 KiB - trừ khi
pure-iopsđược dùng tường minh. Xem bài QoS IOPS Limiting - Pure IOPS để biết thêm thông tin. -
bw: Giới hạn băng thông đọc và ghi của volume, tính theo đơn vị MB/s. Độ chi tiết phải theo số MB/s nguyên.
Lưu ý:
Vớiiopsvàiops-per-gb, khi Pure IOPS được bật trên policy, mỗi thao tác I/O được tính đúng một đơn vị (1 IOP) vào giới hạn đã cấu hình, bất kể kích thước block I/O. Các giới hạn nội bộ dựa trên bandwidth (bytes/sec) sẽ không được áp dụng. Xem bài QoS IOPS Limiting - Pure IOPS để biết thêm thông tin.
Lightbits nâng cao QoS cho các logical volume, trong quá trình khôi phục khi drive lỗi và với các khả năng multi-tenancy.
Sample Command
Create a new QoS policy
root@rack13-server94:~# lbcli create qos-policy --name=iops-best --description="256 iops" --type iops --write-limit 256 --read-limit 256 --projects default
UUID Name State Type Write limit Read limit
d47b29c7-ed85-47d9-ac4e-53a637be2b9d iops-best Creating iops 256 256
Lưu ý rằng một QoS policy có thể được tạo để giới hạn các tham số sau:
-
Giới hạn IOPS trên mỗi user: --type iops
-
Giới hạn bandwidth trên mỗi user: --type bw
-
Giới hạn bandwidth trên mỗi gigabyte cho mỗi user: --type iops-per-gb
-
Giới hạn IOPS write/read theo bội số 256, 512, 1024...
-
Policy vừa tạo có thể được gán cho bất kỳ số lượng project nào dưới
$ --projects
Sample Output
List existing QoS policies
root@rack13-server94:~# lbcli list qos-policies
UUID Name State Type Write limit Read limit
babd2548-b6bc-444f-978c-ed556404f62c no-limit-policy Active iops 0 0
ff23f768-96b6-4874-b838-9eee41b0838e iops-best Active iops 256 256
Update the volume with the newly created QoS policy
$ lbcli update volume --uuid=0e7ee2fa-5ff3-46cc-ba4a-efd110d0d8b0 --projects=default --qos-policy-uuid=ff23f768-96b6-4874-b838-9eee41b0838e
Defining Thresholds — Định nghĩa các ngưỡng
Khi tạo hoặc cập nhật một QoS policy, các giá trị tối thiểu cho ngưỡng giới hạn sẽ được định nghĩa. Với QoS, giá trị ngưỡng tối đa là không giới hạn, và mọi ngưỡng đều được làm tròn lên theo bước 256. Ví dụ, nếu bạn định nghĩa ngưỡng 1001 IOPS, nó sẽ được làm tròn lên thành 1024.
Lưu ý:
- Việc làm tròn lên theo bước được thực hiện trong Lightbits và được đặt vào policy sau khi tính toán (ví dụ, như một thao tác ngầm).
- Với giá trị tối thiểu, ở chế độ fixed IOPS, giới hạn 256 IOPS được thực thi ở mức API, và trả về lỗi nếu dưới 256.
- Ngưỡng IOPS per GB không được thực thi ở mức API - nhưng trên mỗi lần tính giới hạn của volume dựa theo kích thước, 256 IOPS là mức tối thiểu.
Có ba loại ngưỡng, được trình bày chi tiết trong bảng dưới đây:
| Minimum Value | Incremental Value | Maximum Value | |
|---|---|---|---|
| Fixed IOPS threshold | 256 IOPS | 256 | No limit |
| Fixed bandwidth thresholds | 1 MB/s | 1 MB/s | No limit |
| IOPS per GB threshold | 1 IOPS per GB, but a total minimum of 256 IOPS | 1 IOPS per GB, with a total increment of 256 IOPS | No limit |
Dưới đây là một vài ví dụ:
-
100 GB với 1 IOPS per GB → giới hạn 256 IOPS
-
275 GB với 1 IOPS per GB → giới hạn 512 IOPS
-
890 GB với 1 IOPS per GB → giới hạn 1024 IOPS
-
100 GB với 2 IOPS per GB → giới hạn 256 IOPS
-
275 GB với 2 IOPS per GB → giới hạn 168 IOPS
-
890 GB với 2 IOPS per GB → giới hạn 1792 IOPS
-
Fixed IOPS bằng 100 → API sẽ thất bại (dưới ngưỡng tối thiểu)
-
Fixed IOPS bằng 250 → API sẽ thành công, giới hạn 256 IOPS
-
Fixed IOPS bằng 331 → API sẽ thành công, giới hạn 512 IOPS
Nguồn: https://documentation.lightbitslabs.com/lightbits-private-cloud/quality-of-service--qos-
Nguồn tham khảo
- Quality of Service (QoS) — https://documentation.lightbitslabs.com/lightbits-private-cloud/quality-of-service--qos-
Ghi chú về nguồn
- URL fetch thành công. Trang thuộc phiên bản 3.20.x, mục Lightbits Administration Guide.
- Cấu trúc heading giữ nguyên 1:1: H1, hai heading
####Sample Command / Sample Output, và một mục##Defining Thresholds. - Bản gốc có một số điểm cần lưu ý, được giữ nguyên không suy diễn:
- Trong danh sách sau lệnh create, bản gốc mô tả
--type iops-per-gblà "Limit bandwidth per gigabyte per user", trong khi phần đầu trang định nghĩaiops-per-gbtheo IOPS. Bản dịch giữ nguyên cả hai cách diễn đạt như bản gốc. - Trong danh sách ví dụ ngưỡng, dòng "275 GB với 2 IOPS per GB → giới hạn 168 IOPS" không nhất quán với quy tắc làm tròn lên theo bước 256 nêu ở trên; đây là nội dung của bản gốc và được giữ nguyên.
- Bản gốc viết "512 IOPs" (chữ s thường) ở một chỗ và "IOPS" ở các chỗ khác; giữ nguyên.
- Bản gốc dùng nhãn "Note:" và "Notes"; đều được dịch thành
> **Lưu ý:**.