Wyszukiwanie w witrynie

Jak tworzyć i instalować maszyny wirtualne gościa w XenServer — część 5


Kontynuując prace nad serią XenServer, w tym artykule omówimy tworzenie samych gości (często nazywanych maszynami wirtualnymi).

Aktualizacja: W maju 2016 r. firma Citrix wypuściła nową wersję platformy XenServer 7. W celu instalacji wykonaj następujące czynności: Nowa instalacja XenServer 7.

W tym artykule założono, że wszystkie poprzednie artykuły dotyczące sieci, instalowania poprawek i przechowywania zostały ukończone. Na szczęście nie trzeba już omawiać nowej terminologii i można rozpocząć tworzenie gości!

Przegląd systemu

W tym momencie wiele zostało skonfigurowanych na tym hoście XenServer. Będzie to służyć jako szybki przegląd tego, co zostało skonfigurowane i w którym artykule ten temat był omawiany.

  1. Na serwerze został zainstalowany XenServer 6.5
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Zastosowano wszystkie poprawki XenServer 6.5
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Utworzono zespoły interfejsów sieciowych i sieci VLAN
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. Utworzono repozytoria iSCSI i ISO do przechowywania plików instalacyjnych systemu operacyjnego i wirtualnych dysków twardych używanych przez gości
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Tworzenie wirtualnych gości w XenServer

W tej części przewodnika instalatorzy ISO faktycznie uruchomią nowo utworzoną maszynę-gościa i zainstalują system operacyjny. Zapoznaj się z czwartym artykułem, aby uzyskać informacje na temat tworzenia repozytorium ISO.

XenServer jest dostarczany z szeregiem szablonów, których można użyć do szybkiego udostępnienia wirtualnego gościa. Szablony te zapewniają wspólne opcje dla wybranego systemu operacyjnego. Opcje obejmują między innymi miejsce na dysku twardym, architekturę procesora i ilość dostępnej pamięci RAM.

Opcje te można później modyfikować ręcznie, ale na razie do zilustrowania ich użycia posłuży prosty szablon. Aby uzyskać listę dostępnych szablonów, do tradycyjnego polecenia 'xe' można przekazać różne argumenty, aby poprosić system o zwrócenie dostępnych szablonów.


xe template-list

To polecenie prawdopodobnie zwróci dużo danych wyjściowych. Aby ułatwić odczytanie danych wyjściowych, sugeruje się, aby dane wyjściowe zostały przesłane do „mniej” w następujący sposób:


xe template-list | less

Umożliwi to łatwiejsze analizowanie dostępnych szablonów w celu zlokalizowania niezbędnych informacji UUID. Ten artykuł będzie działał z Debian 8 Jessie, ale będzie wymagał użycia starszego szablonu Debian 7 Wheezy do czasu wydania nowego szablonu przez Citrix .

Wybranie Debian 7 nie będzie miało żadnego wpływu na działanie rzeczywistego systemu operacyjnego. (Na zrzucie ekranu poniżej użyto UUID w poleceniu, aby obciąć część normalnego wyniku).


xe sr-list name-label=”Tecmint iSCSI Storage”

Za pomocą tego identyfikatora UUID uzyskano wszystkie wstępne informacje potrzebne do skonfigurowania tego gościa. Podobnie jak w przypadku prawie wszystkiego w XenServerze, do obsługi nowego gościa zostanie użyte kolejne polecenie „xe”.


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

Podświetlony UUID to UUID nowo udostępnionego gościa. Jest kilka kroków w prowadzeniu domu, które mogą potencjalnie ułatwić życie w przyszłości. Pierwszy polega na dostarczeniu etykiety z nazwą do nowo utworzonego VDI, a drugi polega na modyfikacji dowolnej domyślnej specyfikacji sprzętu dostarczonej przez szablon.

Aby przekonać się, dlaczego nadanie nazwy VDI byłoby ważne, spójrz, co system automatycznie przypisze do VDI po udostępnieniu za pomocą następujących poleceń „xe”:


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

Inną dostępną opcją jest zebranie obu informacji za pomocą następującego polecenia:


xe vm-disk-list vm=TecmintVM

Problemem jest część zaznaczona na żółto. Dla wielu osób ten problem jest drugorzędny, ale do celów domowych pożądana jest bardziej opisowa nazwa, aby śledzić cel tego konkretnego VDI. Aby zmienić nazwę tego konkretnego VDI, potrzebny jest UUID w powyższym wyjściu i należy utworzyć kolejne polecenie „xe”.


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

Ustawienie tej opcji może wydawać się banalne, ale z doświadczenia wynika, że zapobiegło to poważnym problemom podczas odłączania repozytorium pamięci masowej od jednego serwera XenServer i próby podłączenia go do innego serwera XenServer. W tym konkretnym scenariuszu nie udało się przywrócić kopii zapasowej metadanych wszystkich informacji o gościu na nowym XenServerze i na szczęście dzięki nadaniu nazwy VDI każdemu z gości właściwe mapowanie gościa na jego VDI było możliwe po prostu przez nazwa-etykieta.

Następnym krokiem w prowadzeniu domu w tym artykule jest zapewnienie temu konkretnemu gościowi większej ilości zasobów. Zgodnie z postanowieniami, ten gość będzie miał tylko około 256 MiB (mebibajtów) pamięci. W przypadku większości gości to nie wystarczy, dlatego warto wiedzieć, jak zwiększyć dostępną pamięć gościa. Jak wszystko w XenServerze, można to osiągnąć za pomocą poleceń „xe”.


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

Zielone pole powyżej wskazuje, że największa ilość pamięci, jaką kiedykolwiek mógł posiadać ten konkretny gość, wynosi około 256 MiB. Do celów testowych byłoby to w porządku, ale w przypadku każdego rodzaju intensywnie użytkowanego systemu okazałoby się to niewystarczające.

Aby zmodyfikować tę wartość, aby zapewnić gościowi dostęp do większej ilości pamięci RAM, można wydać proste polecenie „xe”, gdy gość jest wyłączony. W tym przykładzie ilość pamięci RAM przydzielonej tej maszynie będzie wyrażona w bajtach, ale będzie równa 2 Gibibajtom pamięci RAM.


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

Zauważ, że spowoduje to zarezerwowanie dla tego gościa przez cały czas dwóch GiB pamięci RAM.

Teraz ten konkretny gość jest gotowy do zainstalowania systemu operacyjnego. Z poprzedniego artykułu o repozytoriach pamięci masowej dodano udział Samby do tego XenServera w celu przechowywania plików instalacyjnych ISO. Można to potwierdzić za pomocą następującego polecenia „xe”:


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

Pamiętaj, aby zastąpić <servername> nazwą odpowiedniego serwera Samby dla środowiska, w którym odbywa się ta konfiguracja. Po potwierdzeniu, że XenServer widzi repozytorium pamięci ISO, należy dodać wirtualną płytę CD-ROM do gościa, aby uruchomić plik ISO. W tym przewodniku założono, że ISO Instalatora sieci Debian istnieje w repozytorium pamięci ISO.


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

Powyższe polecenia najpierw wyświetlają nazwę ISO Debiana. Następne polecenie doda wirtualne urządzenie CD-ROM do gościa TecmintVM i przypisze mu identyfikator urządzenia 3.

Trzecie polecenie służy do określenia UUID dla nowo dodanego dysku CD-ROM, aby kontynuować konfigurowanie urządzenia w celu uruchomienia obrazu ISO Debiana.

Następnym krokiem jest uruchomienie dysku CD-ROM i poinstruowanie gościa, aby zainstalował system operacyjny z dysku CD-ROM.


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

Pierwsze polecenie powyżej ustawia CD-ROM tak, aby można było go uruchomić przy użyciu jego UUID zaznaczonego na zielono na powyższym zrzucie ekranu. Drugie polecenie instruuje gościa, aby użył dysku CD-ROM jako metody instalacji systemu operacyjnego. UUID gościa Tecmint jest podświetlony na żółto na powyższym zrzucie ekranu.

Ostatnim krokiem konfiguracji gościa jest podłączenie wirtualnego interfejsu sieciowego (VIF). Jest to szczególnie ważne w przypadku tej metody instalacji, ponieważ używany jest instalator Sieć Debiana i konieczne będzie pobranie pakietów z repozytoriów Debiana.

Wracając do artykułu o sieci XenServer, dla tego gościa utworzono już specjalną VLAN i była to VLAN 10. Za pomocą „xe” można utworzyć niezbędny interfejs sieciowy i przypisać go do tego gościa.


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

Pierwsze polecenie służy do uzyskania UUID sieci utworzonej dla tego gościa. Następne polecenie służy do utworzenia karty sieciowej dla gościa i podłączenia karty sieciowej do właściwej sieci.

Gratulacje! W tym momencie maszyna wirtualna jest gotowa do uruchomienia i instalacji! Aby uruchomić gościa, wydaj następujące polecenie „xe”.


xe vm-start name-label=TecmintVM

Jeśli terminal nie generuje żadnych błędów, oznacza to, że gość uruchomił się pomyślnie. Prawidłowe uruchomienie gościa można potwierdzić komendą „xe”:


xe vm-list name-label=TecmintVM

Teraz najważniejsze pytanie. Jak uzyskać dostęp do instalatora? To jest ważne pytanie. Zatwierdzoną metodą Citrix jest użycie XenCenter. Problem polega na tym, że XenCenter nie działa na Linuksie! Istnieje zatem obejście, dzięki któremu użytkownicy nie muszą tworzyć specjalnej stacji Windows, aby uzyskać dostęp do konsoli działającego gościa.

Proces ten obejmuje utworzenie tunelu SSH z komputera z systemem Linux do hosta XenServer, a następnie przekierowanie połączenia VNC przez ten tunel. Jest to bardzo sprytne i działa wspaniale, ale ta metoda zakłada, że użytkownik może uzyskać dostęp do XenServer przez SSH.

Pierwszym krokiem jest określenie numeru domeny gościa na XenServerze. Odbywa się to za pomocą kilku różnych poleceń.


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

Kolejność tych poleceń jest ważna! Pierwsze polecenie zwróci liczbę potrzebną do wykonania drugiego polecenia.

Dane wyjściowe obu poleceń są ważne. Pierwsze wyjście podaje identyfikator domeny, w którym działa gość; 1 w tym przypadku. Następne polecenie wymaga podania tego numeru w celu określenia portu VNC dla sesji konsoli gościa. Dane wyjściowe tego polecenia udostępniają port VNC, którego można użyć do połączenia z wideo wychodzącym z tego konkretnego gościa.

Po uzyskaniu powyższych informacji czas przełączyć się na stację Linux i połączyć się z XenServerem, aby wyświetlić sesję konsoli tego gościa. W tym celu zostanie utworzony tunel SSH i skonfigurowane zostanie przekierowanie portów w celu kierowania lokalnego połączenia VNC przez tunel SSH. To połączenie zostanie wykonane ze stacji roboczej Linux Mint 17.2, ale powinno być podobne w przypadku innych dystrybucji.

Pierwszym krokiem jest upewnienie się, że klient OpenSSH i xtightnvcviewer są zainstalowane na hoście z systemem Linux. W Linux Mint można to osiągnąć za pomocą następującego polecenia:


sudo apt-get install openssh-client xtightvncviewer

To polecenie zainstaluje niezbędne narzędzia. Następnym krokiem jest utworzenie tunelu SSH do hosta XenServer i skonfigurowanie przekierowania portu do portu VNC określonego wcześniej na hoście XenServer (5902).


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

Opcja „-L” nakazuje ssh przekierowanie portu. Pierwszym portem może być dowolny port powyżej 1024, który nie jest używany na komputerze z systemem Linux Mint. Wartość 'localhost:5902' wskazuje, że ruch powinien być przekazywany do zdalnego portu hosta lokalnego 5902 w tym przypadku, którym jest port XenServer VNC maszyny TecmintVM.

„root@ to dane logowania do SSH na hoście XenServer. Na koniec „-N” mówi SSH, aby po prostu otworzył połączenie przekierowania portów. Za pomocą polecenia „lsof” tunel można wyświetlić na wyjściu.


sudo lsof -i | grep 5902

Tutaj tunel jest konfigurowany i nasłuchuje połączeń. Teraz nadszedł czas na otwarcie połączenia VNC z gościem na XenServerze. Zainstalowane narzędzie to „xvncviewer”, a połączenie ssh do przekazywania ruchu do XenServer nasłuchuje na „localhost:5902”, dzięki czemu można zbudować odpowiednie polecenie.


xvncviewer localhost:5902

Voila! Sesja konsoli TecmintVM z uruchomionym Instalatorem sieciowym Debiana czeka na rozpoczęcie procesu instalacji. W tym momencie instalacja przebiega tak samo, jak każda inna instalacja Debiana.

Do tego momentu wszystko w XenServerze odbywało się poprzez interfejs wiersza poleceń (CLI). Chociaż wielu użytkowników Linuksa lubi interfejs CLI, istnieją narzędzia upraszczające proces zarządzania hostami i pulami XenServer. Następny artykuł z tej serii poświęcony będzie instalacji tych narzędzi dla użytkowników, którzy chcą korzystać z systemów graficznych zamiast CLI.