Jak mogę ograniczyć przepustowość dostępu do dysku dla gościa maszyny wirtualnej?

8

Mam Virtualbox na moim Ubuntu (hoście), który obsługuje kilka systemów operacyjnych gościa Windows.
Czasami działająca maszyna wirtualna z systemem Windows zaczyna masowy dostęp do dysku, który blokuje mnie w środowisku hosta. Chciałbym ograniczyć dostęp do odczytu / zapisu danych do fizycznego dysku twardego.

Jak mogę to zrobić?

yossile
źródło
Brzmi jak błąd. Jaka aktywność spowodowała problem? Czy kończy Ci się pamięć RAM (ile przestrzeni wymiany używasz?)
Panther
1
Może być wiele przyczyn masowego dostępu i masz rację co do jednego z nich. Moje ogólne pytanie dotyczy jednak ograniczenia maszyny wirtualnej, aby nawet wtedy, gdy chce hosta, nie pozwoliła na wykorzystanie części przepustowości.
yossile
@ bodhi.zazen Chcę ograniczyć dostęp (odczyt / zapis) do dysku twardego. Pamięć RAM i procesor można ograniczyć w ustawieniach obrazu maszyny wirtualnej, ale jeśli gość wykonuje intensywny odczyt / zapis na dysk (oczywiście dysk wirtualny), nie ma na to żadnych ograniczeń.
yossile

Odpowiedzi:

9

Począwszy od wersji 4.0 jesteśmy w stanie ograniczyć przepustowość Virtual Box dla dostępu do obrazów dysków (szczegóły w instrukcji Virtual Box )

Najpierw musimy utworzyć grupę pasm (w poniższym przykładzie o nazwie „Limit” dla 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

Jeśli pojawi się ten błąd:

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

następnie zastąp ścieżkę do obrazu dysku identyfikatorem UUID podanym w błędzie (oba powinny być takie same), w tym {}

Aby dodatkowo ograniczyć dostęp do dysku do 10 MB / s, możemy wydać

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

Można to zrobić nawet w czasie wykonywania.

Takkat
źródło
2
--controller nie jest już prawidłowym poleceniem. Powinno być teraz --storagectl „ Nazwa kontrolera SATA ” Aby ograniczyć dostęp podczas działania maszyny wirtualnej, komenda to VBOXManage bandwidthctrl „VMName” - nazwa Limit --limit 10
Niezła odpowiedź. Ale polecenie tutaj w Virtual Box 4.2.12 było VBoxManage bandwidthctl "VM Name" add "Limit" --type disk --limit 10i VBoxManage storageattach "VM Name" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "Disk Name.vdi" --bandwidthgroup "Limit".
Erick Petrucelli,