Zabawy z obrazami i limitowanie sieci

z dnia 2010-07-29

Obrazy dysków

Dyski twarde używane przez maszyny wirtualne są najczęściej fizycznie plikami w różnych formatach: VMDK (VmWare), VHD (Microsoft), VDI (VirtualBox), itp. Jak poradzić sobie z ich obsługą ?

Konwersję między większością formatów zrobimy z użyciem qemu-img, przykładowe wywołanie z konsoli może wyglądać tak:

qemu-img convert -O raw plik_wejsciowy.vhd plik_wyjsciowy.bin

Jest też narzędzie VBoxManage, które pozwoli na obsługę VHD, VDI i VMDK. Konwersję pliku uzyskamy tutaj przez:

VBoxManage clonehd plik_wejsciowy.vmdk plik_wyjsciowy.vhd --format VHD

gdzie zamiast VHD podajemy docelowy format pliku.

Jeżeli chcielibyśmy zmienić rozmiar pliku VMDK (tzn. pliku, a nie partycji w nim zapisanych), opcja do tego znajduje się w pakiecie VmWare Player przy ustawieniach maszyn wirtualnych, do których ten plik podłączono.

Pakiet ten zawiera jeszcze jedną przydatną aplikację: vmware-fuseUI - pozwala na łatwe "podłączenie" zawartości pliku VMDK w jakimś katalogu systemu plików. Z kronikarskiego obowiązku: podobne rozwiązanie ma Windows 7 (w odniesieniu do plików VHD).

Limitowanie sieci

Praktycznie każda z przedstawionych wcześniej maszyn ma funkcje ustawiania ilości rdzeni procesora czy dostępnej ilości pamięci RAM. Niestety żadna nie potrafi ograniczyć pasma przeznaczonego dla karty sieciowej. Czy da się coś z tym zrobić?

Można założyć odpowiednie ograniczenie w samej maszynie wirtualnej. Ubuntu ma do tego celu narzędzie wondershaper. W celu ustawienia limitu wydajemy komendę z konsoli:

wondershaper eth0 100 200

gdzie zamiast eth0 podajemy nazwę naszego interfejsu sieciowego (uzyskamy ją np. poprzez komendę ifconfig), zamiast 100 prędkość pobierania w kilobitach/s i zamiast 200 prędkość wysyłania w kilobitach/s.