Điều khiển IO khối dựa trên trọng lượng cho máy ảo


13

Tôi sử dụng KVM để quản lý các máy ảo của mình. Tôi đang cố gắng hạn chế các tài nguyên được cung cấp cho máy ảo. Tôi có thể giới hạn CPU và bộ nhớ được phân bổ cho máy ảo bằng cách sử dụng libvirt / cgroups. Bây giờ tôi muốn kiểm soát thời gian đĩa được phân bổ cho mỗi VM bằng cách áp dụng một số trọng số. Tôi nhìn vào điều khiển blkio từ các nhóm. Vì VM chỉ là một quá trình Linux, tôi sẽ có thể sử dụng các nhóm nhưng tôi không chắc liệu nó có hoạt động với IO không đồng bộ không. Nếu không, ai đó có thể đề xuất một giải pháp thay thế tốt?

Câu trả lời:


2

Blkio trong thuật ngữ cgroup là viết tắt của quyền truy cập vào I / O trên các thiết bị khối . Dường như không phải là về việc điều chỉnh tất cả các cách khác nhau mà các nhà phát triển phần mềm có trong tay cho các mục đích liên quan đến I / O.

Nó dường như được nhắm mục tiêu chủ yếu vào I / O trên các thiết bị , chứ không phải trên cách phần mềm có quyền truy cập vào thiết bị. Nó có thể giới hạn số lượng iops, băng thông hoặc trọng số với các quy trình khác, trong những thứ khác. Có vẻ như bộ đệm được viết không được hỗ trợ bởi blockio vào lúc này. Đó là trong tài liệu chính thức :

Hiện tại, hệ thống con Block I / O không hoạt động cho các hoạt động ghi đệm. Nó chủ yếu được nhắm mục tiêu vào I / O trực tiếp, mặc dù nó hoạt động cho các hoạt động đọc được đệm.

Nếu bạn xem bản trình bày này từ Linda Wang và Bob Kozdemba của Red Hat, trên trang 20+, bạn sẽ thấy biểu đồ nói về băng thông thiết bị trên mỗi VM, không phải về ngẫu nhiên so với chặn I / O không đồng bộ.

Có vẻ như đã có công việc gần đây của Red Hat để thực hiện nó trực tiếp vào virsh. Nó đã được phát hành vào tuần trước trong libvirt 0.9.9. Trong một vài tháng, bạn sẽ có thể làm một cái gì đó như thế này trong bản phân phối yêu thích của bạn:

virsh blkiotune domA --device-weights /dev/sda,250
virsh blkiotune domB --device-weights /dev/sda,750

0

Bạn có thể muốn sử dụng ionice, nó rất tuyệt nhưng đối với IO.


1
ionicemột sự thay thế tốt hơn so với việc sử dụng blkiotừ các nhóm? Liệu nó có cung cấp một cái gì đó mà giải pháp hiện tại của OP không? Bạn có biết làm thế nào nó liên quan đến IO không đồng bộ?
Caleb

Caleb sẽ thật tuyệt nếu bạn có thể đưa ra ý chính về IO không đồng bộ và nó khác với IO đồng bộ như thế nào đối với hệ điều hành.
sethu

@Caleb: Xem ở trên.
Faheem Mitha
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.