Zoeken op website

Virtuele gastmachines maken en installeren in XenServer - Deel 5


Als we verdergaan met de XenServer-serie, zal dit artikel de creatie van de daadwerkelijke gasten zelf benaderen (vaak virtuele machines genoemd).

Update: In mei 2016 bracht Citrix de nieuwe versie van het XenServer 7-platform uit. Voor installatie volgt u: Nieuwe installatie van XenServer 7.

In dit artikel wordt ervan uitgegaan dat alle voorgaande artikelen over netwerken, patchen en opslag zijn voltooid. Gelukkig hoeft er eigenlijk niet meer over nieuwe terminologie te worden gediscussieerd en kan het aanmaken van de gasten beginnen!

Systeembeoordeling

Op dit moment is er veel geconfigureerd op deze XenServer-host. Dit zal dienen als een snel overzicht van wat er is geconfigureerd en in welk artikel het onderwerp is besproken.

  1. XenServer 6.5 is op de server geïnstalleerd
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Alle XenServer 6.5-patches zijn toegepast
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Er werden netwerkinterfaceteaming en VLAN's gecreëerd
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. iSCSI- en ISO-opslagbronnen zijn gemaakt om installatiebestanden van het besturingssysteem en de virtuele harde schijven te bewaren die door de gasten worden gebruikt
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Creatie van virtuele gasten in XenServer

Dit gedeelte van de handleiding vertrouwt op ISO-installatieprogramma's om de nieuw gemaakte gastmachine daadwerkelijk op te starten en een besturingssysteem te installeren. Zorg ervoor dat u het vierde artikel leest voor informatie over het maken van een ISO-repository.

XenServer wordt geleverd met een reeks sjablonen die kunnen worden gebruikt om snel een virtuele gast in te richten. Deze sjablonen bieden algemene opties voor het gekozen besturingssysteem. Opties omvatten onder meer zaken als ruimte op de harde schijf, CPU-architectuur en de hoeveelheid beschikbare RAM.

Deze opties kunnen later handmatig worden gewijzigd, maar voorlopig wordt een eenvoudig sjabloon gebruikt om het gebruik ervan te illustreren. Om de lijst met beschikbare sjablonen te verkrijgen, kan aan het traditionele 'xe' commando verschillende argumenten worden doorgegeven om het systeem te vragen de beschikbare sjablonen terug te sturen.


xe template-list

Deze opdracht zal waarschijnlijk veel uitvoer retourneren. Om de uitvoer makkelijker leesbaar te maken, wordt voorgesteld om de uitvoer als volgt naar 'less' te sturen:


xe template-list | less

Hierdoor kunnen de beschikbare sjablonen eenvoudiger worden geparseerd om de benodigde UUID-informatie te vinden. Dit artikel gaat werken met Debian 8 Jessie, maar vereist het gebruik van de oudere Debian 7 Wheezy-sjabloon totdat Citrix de nieuwe sjabloon uitbrengt .

Het selecteren van Debian 7 heeft geen invloed op de werking van het daadwerkelijke besturingssysteem. (In de onderstaande schermafbeelding werd de UUID in de opdracht gebruikt om een deel van de normale uitvoer weg te snijden).


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

Met deze UUID is alle initiële informatie voor het instellen van deze gast verkregen. Zoals met bijna alles in XenServer, zal een ander ‘xe’ commando worden gebruikt om de nieuwe gast in te richten.


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

De gemarkeerde UUID is de UUID van de nieuw ingerichte gast. Er zijn een aantal huishoudelijke stappen die het in de toekomst mogelijk gemakkelijker kunnen maken. De eerste is het geven van een naamlabel aan de nieuw gemaakte VDI en de tweede is het wijzigen van de standaardhardwarespecificaties die door de sjabloon worden geleverd.

Om te zien waarom het belangrijk zou zijn om de VDI een naam te geven, kijk eens naar wat het systeem automatisch aan de VDI zal toewijzen wanneer het wordt ingericht met behulp van de volgende 'xe' commando's:


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]

Een andere beschikbare optie is om beide stukjes informatie te verzamelen met de volgende opdracht:


xe vm-disk-list vm=TecmintVM

Het gele gedeelte is de zorg. Voor veel mensen is dit een klein probleem, maar voor huishoudelijke doeleinden is een meer beschrijvende naam gewenst om het doel van deze specifieke VDI bij te houden. Om deze specifieke VDI te hernoemen, is de UUID in de bovenstaande uitvoer nodig en moet er nog een 'xe'-opdracht worden gemaakt.


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

Dit lijkt misschien triviaal om in te stellen, maar uit ervaring heeft dit een ernstig probleem voorkomen bij het loskoppelen van een opslagplaats van de ene XenServer en het proberen deze aan een andere XenServer te koppelen. Dit specifieke scenario, een metagegevensback-up van alle gastinformatie, kon niet worden hersteld op de nieuwe XenServer en gelukkig kon door het benoemen van de VDI op elk van de gasten de juiste toewijzing van de gast aan zijn VDI eenvoudig worden gedaan door de naamlabel.

De volgende huishoudelijke stap voor dit artikel is om deze specifieke gast van meer middelen te voorzien. Zoals ingericht heeft deze gast slechts ongeveer 256 MiB (Mebibytes) aan geheugen. Voor de meeste gasten is dit niet genoeg, dus het is nuttig om te weten hoe u het beschikbare geheugen van een gast kunt vergroten. Zoals met alles in XenServer kan dit worden bereikt met 'xe' commando's.


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

Het vak in het groen hierboven geeft aan dat het meeste geheugen dat deze specifieke gast ooit zou kunnen hebben ongeveer 256 MiB bedraagt. Voor testdoeleinden zou dit in orde zijn, maar voor elk soort intensief gebruikt systeem zou dit onvoldoende blijken te zijn.

Om deze waarde te wijzigen en de gast toegang te geven tot meer RAM, kan een eenvoudige 'xe' opdracht worden gegeven terwijl de gast is uitgeschakeld. In dit voorbeeld wordt de hoeveelheid ram die aan deze machine moet worden gegeven, weergegeven in bytes, maar is gelijk aan 2 Gibibytes aan ram.


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

Merk dat hierdoor voortdurend twee GiB ram voor deze gast wordt gereserveerd.

Nu is deze specifieke gast klaar om een besturingssysteem te laten installeren. Uit het vorige artikel over Storage Repositories is aan deze XenServer een Samba-share toegevoegd om ISO-installatiebestanden op te slaan. Dit kan worden bevestigd met het volgende ‘xe’ commando:


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

Zorg ervoor dat u <servernaam> vervangt door de naam van de juiste Samba-server voor de omgeving waarin deze configuratie plaatsvindt. Zodra de XenServer de ISO-opslagrepository ziet, moet een virtuele CD-ROM aan de gast worden toegevoegd om het ISO-bestand op te starten. In deze handleiding wordt ervan uitgegaan dat de Debian Net Installer ISO aanwezig is in de ISO-opslagplaats.


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

De bovenstaande commando's vermelden eerst de naam voor de Debian ISO. Met het volgende commando wordt een virtueel CD-ROM-apparaat toegevoegd aan de TecmintVM-gast en wordt hieraan de apparaat-ID 3 toegewezen.

Het derde commando wordt gebruikt om de UUID voor de nieuw toegevoegde CD-ROM te bepalen, zodat het apparaat verder kan worden ingesteld om de Debian ISO op te starten.

De volgende stap is het opstartbaar maken van de CD-ROM en het instrueren van de gast om een besturingssysteem vanaf de CD-ROM te installeren.


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

Met het eerste commando hierboven wordt de CD-ROM opstartbaar gemaakt door gebruik te maken van de UUID die in de bovenstaande schermafbeelding groen is gemarkeerd. Het tweede commando instrueert de gast om de CD-ROM te gebruiken als methode voor het installeren van het besturingssysteem. De UUID voor de Tecmint gast is in de bovenstaande schermafbeelding geel gemarkeerd.

De laatste stap bij het instellen van de gast is het aansluiten van een virtuele netwerkinterface (VIF). Dit is vooral belangrijk voor deze installatiemethode omdat het Debian Network-installatieprogramma wordt gebruikt en pakketten uit de Debian-repository's moet ophalen.

Terugkijkend op het XenServer-netwerkartikel is er al een speciaal VLAN gemaakt voor deze gast en dit was VLAN 10. Met behulp van ‘xe’ kan de benodigde netwerkinterface worden aangemaakt en aan deze gast worden toegewezen.


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

Het eerste commando wordt gebruikt om de UUID te verkrijgen van het netwerk dat voor deze gast is gemaakt. De volgende opdracht wordt gebruikt om een netwerkadapter voor de gast te maken en de netwerkadapter aan het juiste netwerk te koppelen.

Gefeliciteerd! Op dit punt is de virtuele machine klaar om op te starten en te installeren! Om de gast te starten, geeft u het volgende ‘xe’ commando uit.


xe vm-start name-label=TecmintVM

Als de terminal geen fouten produceert, is de gast succesvol gestart. Het correct starten van de gast kan worden bevestigd met het volgende 'xe' commando:


xe vm-list name-label=TecmintVM

Nu de grote vraag. Hoe toegang krijgen tot het installatieprogramma? Dit is een geldige vraag. De door Citrix goedgekeurde methode is het gebruik van XenCenter. Het probleem hier is dat XenCenter niet op Linux draait! Er bestaat dus een oplossing zodat gebruikers geen speciaal Windows-station hoeven te maken om eenvoudig toegang te krijgen tot de console van een actieve gast.

Dit proces omvat het maken van een SSH-tunnel van de Linux-computer naar de XenServer-host en vervolgens het doorsturen van een VNC-verbinding via die tunnel. Het is heel slim en werkt wonderwel, maar deze methode gaat er wel van uit dat de gebruiker via SSH toegang heeft tot de XenServer.

De eerste stap is het bepalen van het domeinnummer van de gast op de XenServer. Dit wordt gedaan door het gebruik van verschillende commando's.


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

De volgorde van deze opdrachten is belangrijk! De eerste opdracht retourneert een getal dat nodig is voor de tweede opdracht.

De uitvoer van beide opdrachten is belangrijk. De eerste uitvoer vermeldt de domein-ID waarin de gast actief is; 1 in dit geval. De volgende opdracht vereist dat nummer om de VNC-poort voor de gastconsolesessie te bepalen. De uitvoer van deze opdracht levert de VNC-poort die kan worden gebruikt om verbinding te maken met de video-uitvoer van deze specifieke gast.

Nu de bovenstaande informatie is verkregen, is het tijd om over te schakelen naar een Linux-station en verbinding te maken met de XenServer om de consolesessie van deze gast te bekijken. Hiervoor wordt een SSH-tunnel gemaakt en port forwarding ingesteld om een lokale VNC-verbinding door de SSH-tunnel te leiden. Deze verbinding wordt tot stand gebracht vanaf een Linux Mint 17.2 werkstation, maar zou vergelijkbaar moeten zijn voor andere distributies.

De eerste stap is ervoor te zorgen dat OpenSSH-client en xtightnvcviewer op de Linux-host zijn geïnstalleerd. In Linux Mint kan dit worden bereikt met het volgende commando:


sudo apt-get install openssh-client xtightvncviewer

Met deze opdracht worden de benodigde hulpprogramma's geïnstalleerd. De volgende stap is het maken van een SSH-tunnel naar de XenServer-host en het instellen van port forwarding naar de VNC-poort die eerder is bepaald op de XenServer-host (5902).


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

De ‘-L’ optie vertelt ssh om naar voren te porten. De eerste poort kan elke poort boven 1024 zijn die niet in gebruik is op de Linux Mint-machine. De 'localhost:5902' geeft aan dat het verkeer moet worden doorgestuurd naar de externe localhost-poort 5902, in dit geval is dat de XenServer VNC-poort van de TecmintVM sterk>.

De ‘root@ zijn de inloggegevens voor SSH op de XenServer-host. Ten slotte vertelt de ‘-N’ SSH om eenvoudigweg een port forwarding-verbinding te openen. Met behulp van de opdracht ‘lsof’ kan de tunnel in de uitvoer worden bekeken.


sudo lsof -i | grep 5902

Hier wordt de tunnel opgezet en wordt geluisterd naar verbindingen. Nu is het tijd om een VNC-verbinding met de gast op de XenServer te openen. Het geïnstalleerde hulpprogramma is 'xvncviewer' en de ssh-verbinding om verkeer door te sturen naar de XenServer luistert naar 'localhost:5902' zodat de juiste opdracht kan worden gebouwd.


xvncviewer localhost:5902

Voila! Er is een consolesessie TecmintVM waarop de Debian Network Installer draait en die wacht tot het installatieproces begint. Op dit punt verloopt de installatie net als elke andere Debian-installatie.

Tot nu toe gebeurde alles met XenServer via de opdrachtregelinterface (CLI). Hoewel veel Linux-gebruikers genieten van de CLI, zijn er hulpprogramma's die het proces van het beheren van XenServer-hosts en -pools vereenvoudigen. Het volgende artikel in deze serie behandelt de installatie van deze tools voor gebruikers die grafische systemen willen gebruiken in plaats van CLI.