Witaj w laboratorium z virtualizacji pod systemem Red Hat Enterprise Linux. Przed Tobą osiem ćwiczeń podczas których będziesz konfigurował maszyny wirtualne (Windows i Linux) oraz dodatkowe mechanizmy z nimi związane (konfiguracja sieci, konfiguracja pamięci dyskowej, tryb rescue umożliwiający zreanimowanie uszkodzonej maszyny wirtualnej).
Komunikacja w laboratorium odbywa się za pomocą IPv4 (podsieć 10.255.255.0) oraz IPv6 (2001:db8:1::/64).
Każde z ćwiczeń opatrzone jest komentarzem, screenami oraz krótkim filmem obrazujacym proces konfiguracji. Krótki przewodnik do laba znajduje się tutaj.
Domyślne hasło dla konta roota: virtlab
Miłej pracy

0. Instalacja serwera hosta za pomocą PXE oraz plików KICKSTART

Pierwszym punktem laboratorium będzie przygotowanie serwera-hosta, który będzie gospodarzem dla maszyn wirtualnych instalowanych w kolejnych punktach. Serwer ten zostanie zainstalowany za pomocą PXE oraz kickstart.

PXE (Preboot Execution Environment) – mechanizm umożliwiający uruchomienie i/lub instalacje systemu operacyjnego za pomocą plików dostępnych na zdalnym zasobie udostępnianych za pomocą protokołu TFTP. Pobranie to jest możliwe dzięki funkcjonalności karty sieciowej, która po uruchomieniu komputera pobiera adres IP przydzielany jej za pomocą serwera DHCP.

 

 

Kickstart – plik tekstowy, zawierający definicje konfiguracji mowo instalowanej maszyny. W pliku kickstart znajduje się min. konfiguracja interfejsów sieciowych, podział przestrzeni dyskowej na partycje, pakiety, które mają być automatycznie doinstalowane po instalacji maszyny itp itd. Plik kickstart można edytować ręcznie, lub za pomocą narzędzia system-config-kickstart.

 

 

Uruchom komputer i poczekaj, aż pojawi się ekran powitalny instalatora. Wybierz opcję “LAB virt – instalacja hosta – zadanie1 a następnie obserwuj instalacje systemu. Instalacja będzie przeprowadzona w sposób nienadzorowany dzięki definicji maszyny, która została umieszczona w pliku kickstart. Po poprawnej instalacji, maszyna zresetuje się a następnie uruchomi system w trybie graficznym. Teraz możesz zalogować się do systemu – zapytaj prowadzącego o login i hasło.

 

1. Konfiguracja interfejsu bridge

W drugim ćwiczeniu należy skonfigurować interfejs typu bridge. Aby skonfigurować interfejsy sieciowe, należy wyedytować i/lub stworzyć nowe pliki konfiguracyjne w katalogu /etc/sysconfig/network-scripts. Pierwszym plikiem, którego należy wyedytować jest plik ifcfg-eth0. Wszystkie elementy, które należy z niego usunać, przekreślono. Elementy nowe zaznaczono kolorem niebieskim:

 

DEVICE="eth0"
HWADDR="00:0E:0C:A9:FD:07"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=dhcp
BRIDGE=br0

 

Interfejs typu bridge tworzy wirtualnego switcha, do którego można podłączyć większą ilość interfejsów sieciowych. W wirtualizacji wykorzystuje się go na maszynie-hoście tak, aby współdzielić jeden fizyczny interfejs pomiędzy wieloma interfejsami wirtualnymi.

 

Kolejnym plikiem, jaki należy stworzyć jest plik ifcfg-br0, o następującej składni:

DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0

Po wprowadzeniu powyższych zmian, należy zrestartować serwis odpowiedzialny za konfigurację sieci. Można to wykonać za pomocą polecenia service network restart

2. Instalacja maszyny wirtualnej RHEL za pomocą pxe oraz kickstart z wykorzystaniem interfejsu sieciowego br0

W pierwszym kroku należy skonfigurować maszynę wirtualną za pomocą aplikacji Menedżer Maszyn Wirtualnych (virt-manager).

 

Konfiguracja maszyny wirtualnej odbywa się w pięciu krokach:

Krok 1: Definicja nazwy maszyny wirtualnej oraz sposobu  instalacji:

 

 

Krok 2: Zdefiniowanie typu oraz wesji instalowanego systemu operacyjnego:

 

 

Krok 3: Definicja ilości pamięci oraz wirtualnych procesorów używanych przez maszynę wirtualną:

 

 

Krok 4: Zdefiniowanie pamięci masowej używanej przez maszynę wirtualną:

 

 

Krok 5: Zdefiniowanie sieci używanej przez instalowaną maszynę wirtualną

 

 

Proces przygotowania instalacji maszyny wirtualnej przedstawia poniższy film:

 

3. Konfiguracja storage pool “instalki” dostępnej za pomocą NFS

W sieci znajduje się serwer o nazwie storage, który udostępnia obrazy instalacyjne ISO za pomocą protokołu NFS. W tym ćwiczeniu należy zdefiniować tą pulę tak, aby możliwa była instalacja systemu Windows w punkcie kolejnym.

NFS – Network File System: standardowy protokół udostępniania systemu plików w systemie Linux. NFS umożliwia współdzielenie zasobów za pomocą sieci. NFS został opracowany przez Sun Microsystems.

W tym ćwiczeniu należy skonfigurować nową pulę, wg następujących parametrów:

  • Nazwa puli: instalki
  • Typ: netfs - katalog wyeksportowany przez sieć
  • Ścieżka docelowa: /var/lib/libvirt/images/instalki
  • Format: auto
  • Nazwa gospodarza: storage.virtlab.pl
  • Ścieżka źródłowa: /nfs-iso

 

Konfiguracja puli NFSowej odbywa się w dwóch krokach. W pierwszym należy podać nazwę puli oraz jej typ:

 

W drugim kroku należy podać nazwę (lub adres IP) serwera oraz ścieżke w systemie docelowym, gdzie w/w zasób powinien zostać zamontowany:

 

Całość konfiguracji przedstawia poniższy film:

 

4. Instalacja systemu Windows z wykorzystaniem obrazu iso dostępnego w storage-pool “instalki” oraz sieci  typu NAT

 

Wirtualizacja RHEL używa koncepcji wirtualnego switcha, za pomocą którego istnieje możliwość zdefiniowania sieci, wykorzystywanych później przez maszyny wirtualne. Domyślnie wirtualny switch widziany jest z pozycji systemu jako interfejs virbr0.

 

Można go podejrzeć za pomocą polecenia ip:

[root@rhel6 ~]# ifconfig virbr0
virbr0 Link encap:Ethernet HWaddr 52:54:00:89:AA:97
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:3996 (3.9 KiB)

[root@rhel6 ~]# ip a s virbr0
14: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 52:54:00:89:aa:97 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

Wirtualny switch może działać w trzech trybach:

 

  • Tryb NAT (tryb ten jest domyślny). Wirtualny switch wykonuje mechanizmy maskowania (NATu) puli adresowej  jaka została zdefiniowana podczas tworzenia sieci.
  • Tryb routera: wirtualny switch zachowuje się jak L3, routując ruch pomiędzy siecia zdefiniowaną do obsługi maszyn wirtualnych a sieciami skonfigurowanymi na rzeczywistych interfejsach
  • Tryb sieci izolowanej: komunikacja może odbywać się tylko w obrębie maszyn wirtualnych podłączonych do wirtualnego switcha. Nie ma możliwości komunikacji z rzeczywistymi interfejsami.
Aplikacja virt-manager pozwala na tworzenie sieci należących do jednej z trzech powyższych grup. Każda nowa sieć zdefiniowana jest w oparciu o kolejny interfejs virbrX (virbr1, virbr2, virbr3)

 

 

 

W tym ćwiczeniu należy zainstalować maszynę wirtualną Windows XP wg następujących parametrów:

Nazwa: XP
Sposób instalacji: Lokalny nośnik instalacji
Położenie nośnika instalacji: Użycie obrazu ISO znajdującego się w puli instalki
Typ systemu operacyjnego: Windows
Wersja: XP
Pamięć: 1024M
Ilość procesorów: 1
Pamięć masowa: Utworzenie obrazu dysku na dysku twardym komputera
Pojemność 8GB
Przydzielenie całego dysku: TAK
Typ wirtualizacji: KVM
Architektura: i686
Sieć: Sieć wirtualna 'defaut': NAT

 

 

5. Instalacja systemu Windows z wykorzystaniem sterownika virtio do obsługi pamięci masowej

W tym ćwiczeniu należy zainstalować drugą instancję systemu Windows XP, tym razem jednak wykorzystując sterownik virtio do obsługi wirtualnego dysku twardego oraz interfejsu sieciowego. Używając virt-managera, należy przygotować instalację maszyny wirtualnej zgodnie z poniższymi parametrami:

Nazwa: XP2
Sposób instalacji: Lokalny nośnik instalacji
Położenie nośnika instalacji: Użycie obrazu ISO znajdującego się w puli instalki
Typ systemu operacyjnego: Windows
Wersja: XP
Pamięć: 1024M
Ilość procesorów: 1
Pamięć masowa: Utworzenie obrazu dysku na dysku twardym komputera
Pojemność 8GB
Przydzielenie całego dysku: TAK
Typ wirtualizacji: KVM
Architektura: i686
Sieć: Sieć wirtualna 'defaut': NAT

 

W ostatnim kroku tworzenia maszyny wirtualnej należy zaznaczyć opcję (dostosowanie konfiguracji przed instalacją) i kliknąć Ukończ.

 

 

 

W następnym kroku należy zaznaczyć dysk twardy nowotworzonej maszyny wirtualnej i zmienić jego typ na virtio. Koniecznie należy potwierdzić zmianę przyciskiem “Zastosuj”

 

Analogiczną zmianę należy wykonać w konfiguracji interfejsu sieciowego. Tak jak poprzednio należy potwierdzić w/w zmianę przyciskiem “Zastosuj”

 

Windows XP nie posiada sterowników do obsługi urządzeń typu virtio. Niezbędne więc jest wskazanie w/w sterowników podczas instalacji systemu. Aby tego dokonać, należy dodać do konfiguracji maszyny wirtualnej dodatkowy napęd CD/DVD zawierający obraz sterowników virtio (obraz ten znajduje się w puli instalki). Dodany napęd przedstawia poniższy screen:

 

 

Jeśli system nie umożliwia wczytania sterowników z nośnika CD/DVD, można wykorzystać wirtualną stację dyskietek. Poniższy screen pokazuje dodanie interfejsu floppy (obraz vsd dyskietki instalacyjnej znajduje się na zasobie instalki):

 

Ostatnim krokiem przygotowania do instalacji jest uruchomienie boot-menu, umożliwiającego wskazanie urządzenia, z którego zostanie uruchomiona instalacja:

 

 

Powyższą konfigurację przedstawia poniższy film:

 

 

 

 

Po poprawnej konfiguracji należy zacząć instalować system XP. Podczas uruchomienia instalatora, należy wybrać F6 a następnie wybrać sterownik dedykowany dla danego systemu i architektury. Po zainstalowaniu systemu należy doinstalować interfejs sieciowy, wybierając sterowniki z wirtualnego napędu CD/DVD

 

6. Konfiguracja storage-pool “systemy” dostępnej za pomocą iSCSI oraz instalacja na niej maszyny wirtualnej.

Host maszyn wirtualnych posiada zainstalowane oprogramowanie tgtd, za pomocą którego można uruchomić serwer iSCSI. Konfiguracja odbywa się w następujących krokach:

 

– stworzenie pliku na dysku lokalnym, pełniącego role urządzenia udostępnionego za pomocą iscsi:

mkdir /opt/iscsi
dd if=/dev/zero of=/opt/iscsi/disk.img bs=1M count=4000 seek=4000

 

W wyniku powyższych operacji na dysku lokalnym zostanie stworzony katalog /opt/iscsi a w nim plik wypełniony zerami o pojemności 8GB.

 

– konfiguracja demona tgtd poprzez dodanie na końcu pliku /etc/tgt/targets.conf następującego wpisu:

<target iqn.2012-01.com.example.storage>
backing-store /opt/iscsi/disk.img  #LUN 1
write-cache off
</target>

 

– uruchomienie serwera tgtd (service tgtd start) oraz sprawdzenie poprawności konfiguracji za pomocą polecenia tgt-admin -s

 

iSCSI (ang. Internet SCSI) – technika umożliwiająca wykonywanie operacji wejścia-wyjścia na dysku twardym odległej maszyny za pomocą protokołu TCP/IP. Protokół iSCSI umożliwia budowę systemów pamięci masowych SAN (ang. Storage Area Network) przy zastosowaniu macierzy dyskowych SCSI i sieci Ethernet (protokół TCP/IP). Głównymi elementami systemu jest target (serwer) oraz initiator (klient).

 

Po uruchomieniu targetu iscsi należy zdefiniować go w formie puli tak, aby jego zosoby były dostęþne dla maszyn wirtualnych. Definicja ta odbywa się w dwóch krokach (wszystko wykonywane za pomocą wirt-managera, własciwości hosta, zakładka ).

 

– Wskazanie nazwy i typu nowej puli:

 

Wskazanie nazwy (lub adresu IP) gospodarza oraz ścieżki źródłowej:

 

Po wykonaniu powyższych czynności, w zakładce pamięć masowa pojawi się nowa pula z pojedynczym wolumenem o pojemności ~8GB

 

Omawiana konfiguracja puli iscsi została pokazana poniżej:

 

 

7. Instalacja systemu RHEL na zasobie pulaiscsi.

W tym ćwiczeniu należy zainstalować system RHEL, wykorzystując wolumen wchodzący w skład puli pulaiscsi. Instalacje należy przeprowadzić za pomocą PXE (wybierając konfiguracje zadanie_7). Podczas konfiguracji maszyny wirtualnej, w punkcie 3 należy wskazać skonfigurowany poprzednio wolumen chodzący w skład puli pulaiscsi:

 

 

Proces przygotowania maszyny wirtualnej przedstawia poniższy film:

 

 

8. Uruchomienie maszyny wirtualnej w trybie ratunkowym (rescue mode)

W ostatnim zadaniu należy zainstalować maszynę wirtualną za pomocą PXE i kickstart’u. Po uruchomieniu w/w maszyny okaże się, że ktoś błędnie wskazał domyślny poziom pracy na zero “0”. Należy uruchomić maszynę wirtualną w środowiku rescue, następnie wyedytować plik /etc/inittab, w którym zmienić domyślny poziom prazy z “0” na “3”.

RHEL posiada narzędzie, umożliwiające uruchomienie niebotowalnej maszyny wirtualnej w środowisku ratunkowym. Środowisko to jest odrębną instalacją linuxa, umożliwiającą operację na maszynie wirtualnej (w szczególności zamontowanie i prace na jej pamięci masowej). Polecenie to jako swój główny parametr wymaga nazwy maszyny wirtualnej lub ścieżki do obrazu dyskowego.

 

W pierwszym kroku należy uruchomić polecenie virt-rescue z parametrem -d <nazwa_maszyny>. Spowoduje to uruchomienie środowiska ratunkowego.

 

W kolejnym kroku należy sprawdzić listę wolumenów logicznych, wykorzystywanych przez maszyne wirtualną. Można tego dokonać za pomocą polecenia lvs:

 

 

Następnie należy stworzyć nowy katalog oraz zamontować w nim partycje root maszyny wirtualnej. czynności te należy wykonac za pomoca poleceń mkdir oraz mount

 

 

 

Tryb rescue posiada edytor vi, za pomocą którego można edytować pliki konfiguracyjne. Błędny wpis znajduje się w pliku /etc/inittab maszyny wirtualnej. Katalog głółny zamontowany jest w /sysroot/root, więc pełna ścieżka do pliku będzie wyglądać następująco: /sysroot/root/etc/inittab. Należy ją podać jako parametr polecenia vi:

 

 

W ostatnim kroku należy zmodyfikowac zawartośc pliku, zmieniając domyślny poziom z “0” na “3”.

 

Edytor vi jest jednym z najbardziej popularnych edytorów w srodowisku UNIX/LINUX. Jego autorem jest Bill Joy, późniejszy współtwórca Sun Microsystems. Po uruchomieniu edytora, przejście w tryb edycji możliwe jest po wybraniu klawisza i. Wyjście z edycji po wybraniu Esc a następnie :q. Wyjście z zapisem zmian: Esc a następnie :wq

 

 

Zadanie 8 przedstawia poniższy film: