modified on 2 gru 2009 at 11:42 ••• 9 252 views

Kvm

Z MikroTik Wiki

Spis treści

Wstęp

Kernel-based Virtual Machine zapewnia wirtualizację na x86 RouterOS. Zapewnia pełną wirtualizację pozwalającą na uruchamianie wielu systemów operacyjnych jako goście na hoście RouterOS.

Wymagania

KVM wymaga wsparcie wirtualizacji CPU typu Intel VT-x lun AMD-V lista obsługiwanych CPU, w celu uzyskania więcej informacji zajrzyj na stronę producenta. Uruchomienie systemu w trybie gościa wymaga przynajmniej 16 MB RAM i odpowiednio dużo miejsca na dysk obrazu. Plik obrazu nie może być zwiększany po utworzeniu i ma rozmiar równy temu, który wpisałeś podczas procesu tworzenia obrazu.

Pakiety, które należy zainstalować do obsługi KVM:

  • system
  • kvm

Konfiguracja

Konfiguracja KVM dostępna jest w menu /kvm'. Dostępne menu dla konfiguracji gościa KVM to:

  • /kvm - główne menu konfiguracyjne KVM
  • /kvm interface - menu konfiguracji interfejsów KVM
  • /interface virtual-ethernet - interfejs KVM służący do łączenia się z hostem.

Polecenia KVM

Polecenia dostępne w menu /kvm:

  • add - Tworzenie nowego wpisu gościa KVM
  • comment - Komentarz wpisu gościa KVM
  • console - aby połączyć się z konsolą gościa KVM
  • continue - wznowienie gościa KVM jeśli jest uśpiony
  • disable - zmiana stanu globalnego gościa KVM. Jeśli właczone, gość KVM będzie uruchamiany podczas uruchamiania RouterOS. Gość KVM nie może tego zmienić
  • edit - zmień wybraną wartość wpisu KVM
  • enable - zmiana stanu globalnego gościa KVM na włączenie działania KVM. Jeśli gość został wcześniej wyłączony - gość KVM zostanie automatycznie uruchomiony.
  • export - wyświetl lub zapisz wyeksportowany skrypt używany do przywrócenia konfiguracji aktualnego menu, nie można zapisać konfiguracji gościa KVM ani plików z obrazami
  • find - znajdź wpis po wartości
  • get - pobierz wartość parametru wpisu
  • make-routeros-image - tworzy obraz RouterOS aktualnej instalacji routera bez konfiguracji. Zaleca się stworzenie pliku obrazu o większym rozmiarze niż minimalny, aby możliwe było wgranie nowych pakietów i aktualizacja RouterOS. Ponadto, wszystkie dodatkowe pliki utworzone wewnątrz gościa KVM będą przechowywane w pliku obrazu. Plik obrazu nie jest związany z hostem i użytkownik może uruchomić różne wersję RouterOS na hoście i gościu. To polecenie utworzy plik obrazu RAW zawierający instalację RouterOS.
  • pause - wstrzymanie działania gościa KVM
  • print - wyświetl wartości parametrów wpisu
  • reboot - wysyła do gościa KVM polecenie ACPI shut-down', jeśli system gościa nie obsługuje ACPI, polecenie nie zadziała. Po wyłączeniu się gościa KVM zostanie automatycznie uruchomiony system gościa
  • reconfigure-routeros-image - ustawa domyślną konfigurację obrazu RouterOS.
  • remove - usuwa wpis
  • set - zmienia wartość parametru
  • shut-down - wysyła do gościa KVM polecenie ACPI shut-down', jeśli system gościa nie obsługuje ACPI, polecenie nie zadziała.
  • start - uruchamia gościa KVM

Tworzenie gościa KVM

Aby dodać nowego gościa KVM musisz wpisać polecenie add w menu /kvm z poniższymi artybutami:

  • comment - dodaje prosty komentarz tekstowy do gościa KVM
  • cpu-count - dostępna dla gościa ilość rdzeni procesora. Dozwolone wartości to [1..32]
  • disabled - ustawia stan gościa po utworzeniu, wartości: yes lub no
  • disk-images - które pliki są używane jako wirtualne dyski. Jeśli typ będzie ustawiony na cdrom gość automatycznie się z niego zbootuje zamiast innych urządzeń określonych w tym polu
  • initrd - ścieżka do pliku initrd, pole może być puste jeśli jako gość uruchamiany będzie RouterOS
  • kernel - ścieżka do pliku z jądrem, pole może być puste jeśli jako gość uruchamiany będzie RouterOS
  • kernel-cmdline - parametry wysyłane do jądra podczas startu, spacja oddziela ciągi znaków
  • memory - ustawia ilość dostępnej pamięci dla gościa KVM
  • name - nazwa gościa KVM, który będzie dostępny przez system
  • snapshot - spróbuje uruchomić wirtualną maszynę z obrazem systemu plików w trybie tylko-do-odczytu
  • vnc-server - umożliwia połączenie się z wirtualną maszyną przez klienta vnc. Wartości pola to <adres IP><numer ekranu> gdzie adres IP - adres IP z którym vnc się łączy, domyślnie jest to 0.0.0.0 - nasłuchiwanie na wszystkich interfejsach, numer ekranu - wartość całkowita dodatnia, jeśli numer wynosi 0, nie umożliwia łączenia się z maszyną wirtualną za pomocą vnc. Inne wartości umożliwiają łączenie się przez vnc z maszyną wirtualną. Jeśli włączone, port łączenia się przez vnc wynosi 5900 + <numer ekranu>. Na przykład, jeśli <numer ekranu> =5 to port będzie 5905. Jeśli port jest zajęty, nie uda się uruchomienie gościa.
  • copy-from - użyj konfiguracji z innego, istniejącego gościa KVM

Jeśli pola jądra i initrd będą puste, KVM użyje jądra i initrd hosta. Jest to niebezpieczne jeśli chcesz uruchomić inną wersję RouterOS na hoście i gościu i może uszkodzić Twój system. Raczej zostanie uszkodzony gość niż host jeśli zostawisz te wartości puste.

Przykład #1:

 /kvm add comment="example kvm guest" cpu-count=2 disabled=no disk-images=hda:ros.img initrd=/boot/initrd.rgz \ 
 kernel=/boot/vmlinuz kernel-cmdline="console=ttyS0" memory=128MiB name=ROS1

Przykład #2:

 /kvm add comment="example kvm guest" cpu-count=2 disabled=no disk-images=hda:ros.img initrd="" \ 
 kernel="" kernel-cmdline="console=ttyS0" memory=128MiB name=ROS1

W przykładzie pierwszym gość zostanie uruchomiony z jądrem nie wspierającym SMP, podczas gdy w przykładzie drugim wyszuka jądro w ros.img, wypakuje jądro SMP i załaduje je. Jako wynik, gość utworzony w przykładzie pierwszym wskaże jeden procesor w /system resources podczas gdy przykład drugi pokaże dwa.

Interfejsy gościa KVM

Aby dodać interfejs do gościa KVM musisz przejść do menu /kvm interface i użyć polecenia 'add z parametrami:

  • comment - opis interfejsu
  • disabled - stan interfejsu po utworzeniu
  • host-mac-address - adres MAC wirtualnego interfejsu widziany przez hosta
  • model - typ interfejsu wirtualnego. Dostępne opcje to:
    • virtio - wartość default.Najszybsza dostępna opcja, powinna być zostawiona, gdy nie napotykamy żadnych problemów
    • e1000 - emuluje karty używające sterownika e1000. Ta opcja została dodana w celu kompatybilności z niektórymi systemami operacyjnymi, nie mogące się komunikować z hostem RouterOS jeśli używany był model interfejsu virtio.
    • pcnet - emuluje karty używające sterownika pcnet. Ta opcja została dodana w celu kompatybilności z niektórymi systemami operacyjnymi, nie mogące się komunikować z hostem RouterOS jeśli używany był model interfejsu virtio.
  • vm-mac-address - adres MAC wirtualnego interfejsu widzianego po stronie gościa
  • copy-from - użyj konfiguracji z innego interfejsu wirutalnego
  • dynamic-bridge - jeśli włączone, interfejs dynamiczny zostanie automatycznie dodany do interfejsu mostkowego.
  • interface - jeśli ustawione na static, tworzy interfejs wirtualny skonfigurowany wcześniej w /interface virtual-ethernet.
  • type - typ interfejsu. Przyjmuje wartości static lub dynamic. Dynamiczny interfejs doda automatycznie wpis do /interface virtual-ethernet podczas startu wirtualnej maszyny. Statyczny interfejs musi mieć wcześniej utworzony wpis w /interface virtual-ethernet przed tworzeniem interfejsu
  • virtual-machine - nazwa wirtualnej maszyny, do której będzie przydzielony interfejs


Jeśli dodawany jest statyczny interfejs bez ustawiania adresu mac, zostanie automatycznie wygenerowany. Dla interfejsów statycznych ten adres nie będzie się zmieniał podczas używania gościa. Adres MAC interfejsu dynamicznego będzie się zmieniał za każdym razem, gdy będzie tworzony dynamiczny interfejs. Automatycznie wygenerowany adres MAC będzie mieć formę 02:XX:XX:XX:XX:XX

Dodawaj i usuwaj interfejsy tylko wtedy, gdy wyłączony lub zatrzymany jest gość KVM. Zmiany podczas gdy gość jest uruchomiony mogą doprowadzić do zawieszenia się systemu.

Stany gościa KVM

Pole jest tylko-do-odczytu i ustawiane jest przez RouterOS. Możliwe wartości:

  • stopped - gość KVM nie jest włączony, poprzez poprawne zamknięcie systemu lub wyłączenie
  • stopping - gość KVM jest zamykany
  • starting - gość KVM jest uruchamiany
  • running - gość KVM został włączony i uruchomiony jest system operacyjny
  • restarting - gość KVM restartuje system operacyjny
  • failed - gość KVM napotkał błąd i nie jest włączony
  • image-busy - plik obrazu ustawiony w konfiguracji jest w użyciu przez inny wpis gościa KVM
  • no-kernel-or-initrd - nie znaleziono pliku jądra lub initrd wskazane w konfiguracji, plików nie można zlokalizować lub nie ustawiono wartości tych pól
  • no-disk-image - nie znaleziono pliku z obrazem dysku lub obraz dysku nie został wskazany przez parametr
  • kernel-extract-failed - gdy pole konfiguracji kernel jest puste lub KVM nie może rozpakować jądra ze wskazane pliku

Odnośniki

Wikipedia about virtualization support on x86 CPUs