Làm cách nào tôi có thể giới hạn băng thông truy cập đĩa cho khách máy ảo?


8

Tôi có một Virtualbox trên Ubuntu (máy chủ) phục vụ vài hệ điều hành Windows cho khách.
Đôi khi, máy ảo Windows đang chạy bắt đầu truy cập lớn vào đĩa chặn tôi trong môi trường máy chủ. Tôi muốn giới hạn việc đọc / ghi quyền truy cập dữ liệu vào ổ cứng vật lý.

Tôi làm nó như thế nào?


Âm thanh rất giống như một lỗi. Những loại hoạt động gây ra vấn đề? Bạn sắp hết RAM (bạn đang sử dụng bao nhiêu dung lượng trao đổi?)
Panther

1
Có thể có nhiều lý do để truy cập lớn và bạn đã đúng về một trong số đó. Tuy nhiên, câu hỏi của tôi là một câu hỏi chung chung về việc giới hạn VM để ngay cả khi nó muốn máy chủ sẽ không cho phép nó sử dụng một phần băng thông.
12:53

@ bodhi.zazen Tôi muốn giới hạn quyền truy cập (đọc / ghi) vào đĩa cứng. RAM và CPU có thể bị giới hạn từ cài đặt hình ảnh VM nhưng nếu một khách đang đọc / ghi nặng vào đĩa (dĩ nhiên là đĩa ảo) thì không có giới hạn nào về điều đó.
yossile

Câu trả lời:


9

Bắt đầu từ phiên bản 4.0, chúng tôi có thể giới hạn băng thông của Hộp ảo đối với hình ảnh đĩa (xem Hướng dẫn sử dụng Hộp ảo để biết chi tiết)

Trước tiên, chúng ta cần tạo một nhóm băng thông (trong ví dụ dưới đây có tên "Giới hạn" trong 20 MB / s):

VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M
VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd
                                   --medium disk1.vdi --bandwidthgroup Limit
VBoxManage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd
                                   --medium disk2.vdi --bandwidthgroup Limit

Nếu bạn gặp lỗi này:

VBoxManage: error: Cannot register the hard disk '.../foo.vdi' {...} because a hard disk '.../foo.vdi' with UUID {...} already exists

sau đó thay thế đường dẫn đến ảnh đĩa bằng UUID được cung cấp trong lỗi (cả hai phải giống nhau) bao gồm cả {}

Để tiếp tục giới hạn truy cập đĩa ở mức 10 MB / s, sau đó chúng tôi có thể phát hành

VBoxManage bandwidthctl "VM name" set Limit --limit 10M 

Điều này thậm chí có thể được thực hiện trong thời gian chạy.


2
- điều khiển không còn là lệnh chính xác. Bây giờ nó phải là --storagectl " Tên bộ điều khiển SATA " Để giới hạn quyền truy cập trong khi VM đang chạy lệnh là VBOXManage băng thông "VMName" - Giới hạn tên --limit 10

Câu trả lời tốt đẹp. Nhưng lệnh ở đây trong Virtual Box 4.2.12 là VBoxManage bandwidthctl "VM Name" add "Limit" --type disk --limit 10VBoxManage storageattach "VM Name" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "Disk Name.vdi" --bandwidthgroup "Limit".
Erick Petrucelli
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.