LXD

LXD-zelfstudie

LXD-zelfstudie

LXD Basis: wat is het?? En hoe het te gebruiken??

LXD-containerisatie heeft niet de aandacht gekregen die Docker deed, maar het komt in feite veel dichter bij het kernidee van virtualisatie van besturingssystemen. Maar voordat we daar zijn, laten we het hebben over de hedendaagse virtualisatie op hardwareniveau.

Hardwarevirtualisatie

De traditionele manier waarop VMware, VirtualBox, KVM en vergelijkbare technologieën werken is deze: je hebt een computer van serverkwaliteit, zeg maar een high-end Xeon-processor met 512 GB RAM, ook wel bekend als de bare metal. U installeert hierop een besturingssysteem, waarop vervolgens VMware, Virtualbox of KVM . draait.

Dit zijn verschillende hypervisors, en het besturingssysteem waarop ze worden uitgevoerd, is de host-besturingssysteem.

Wat de hypervisor biedt, is dit: het emuleert CPU, netwerkinterfaces, opslagschijven, geheugen, I/O en andere bronnen, zodat een nieuw besturingssysteem bovenop deze set van virtuele hardware. Dit nieuwe besturingssysteem is de gast besturingssysteem en het draait op virtuele hardware, zoals het zou zijn als het op een fysieke machine was geïnstalleerd, maar er is een addertje onder het gras.

Als u denkt: "Maar het emuleren van verschillende hardwareapparaten met de daadwerkelijke hardware klinkt inefficiënt en traag"."Je hebt helemaal gelijk. Virtualisatie op hardwareniveau is traag en inefficiënt.

Bovendien zijn besturingssystemen zelf control freaks. Als u een gast-besturingssysteem 1 GB RAM en 2 CPU-kernen toewijst, neemt het met plezier alle bronnen in beslag, zelfs als de applicaties die erin draaien slechts een fractie ervan gebruiken. Deze bronnen zijn niet beschikbaar voor de hypervisor om elders te gebruiken.

Dit beperkt het aantal VM's dat bovenop een hypervisor kan draaien ernstig. Als u een cloudhostingprovider bent, betekent dit dat uw bedrijfsresultaten zwaar zullen worden getroffen.


De containermanier om dingen te doen

Het idee van gevirtualiseerde hardware wordt uit het raam gegooid als we beginnen te praten over containers en specifiek LXD. In plaats van individuele hardwarebronnen te emuleren, proberen we het besturingssysteem te virtualiseren.

Wanneer een LX-container wordt gesponnen, biedt het besturingssysteem zichzelf (dat wil zeggen de kernel, de bibliotheken alle beschikbare bronnen) aan aan de applicaties die in de container draaien. Gebruikers en apps in deze container zullen niet op de hoogte zijn van applicaties en pakketten die daarbuiten worden uitgevoerd, en vice versa.

Wat de toewijzing van middelen betreft, kunt u eenvoudig een notitie maken dat een bepaalde container niet meer mag gebruiken dan bijvoorbeeld 2 GB RAM en 2 CPU's. Op deze manier kunnen, wanneer de apps die in een container draaien niets intensiefs doen, de bronnen elders in de hostomgeving worden toegewezen.

Wanneer de apps echter zwaar worden belast, krijgen ze de bare metal-prestaties!

De voor de hand liggende tekortkoming hiervan is dat je geen willekeurig besturingssysteem als gast kunt gebruiken. Omdat verschillende besturingssystemen totaal verschillende architecturen hebben. Gelukkig voor GNU/Linux-gebruikers biedt de Linux-kernel zo'n strakke ABI-compatibiliteit dat je verschillende distributies bovenop dezelfde kernel kunt emuleren. U kunt dus CentOS-binaire bestanden en Ubuntu-toepassingen op hetzelfde metaal uitvoeren, alleen in verschillende containers.


LXD init

LX-containerisatie is een goed geteste en robuuste technologie voor op Linux gebaseerde besturingssystemen. Het heeft twee belangrijke componenten, één is LXC, dat is wat containerconfiguraties, afbeeldingsbestanden, enz. beheert en dan is er LXD, de daemon die op uw host draait en ervoor zorgt dat al het beleid dat is ingesteld voor containerisatie wordt gevolgd.

Het wordt standaard geïnstalleerd op Ubuntu Server 16.04 LTS, als je de desktop-distro gebruikt, voer je uit:

$ apt install lxd lxd-client

Zodra dat is gebeurd, moet u verschillende parameters initialiseren. De volgende opdracht leidt u er doorheen:

$ lxd init

U kunt vanaf hier standaardopties selecteren select.  Het meest betrokken is het opzetten van netwerkinterfaces. Wanneer u wordt gevraagd om de LXD-netwerkconfiguratie, selecteert u de standaardoptie ja.

1 Antwoord ja, nogmaals, wanneer u wordt gevraagd om het netwerk in te stellen

Het volgende venster vraagt ​​om de naam van de netwerkinterface (zoals te zien op de host), laat deze op de standaardwaarde staan lxdbr0.

De IPv4-subnetinstelling zou hierna komen. Het zou verschillende LX-containers in staat stellen met elkaar te praten alsof het verschillende computers op een lokaal netwerk zijn. Selecteer hiervoor ja.

Vervolgens zullen er verschillende 10 . zijn.202.X.X adressen getoond met elk een andere rol op dit subnet. Je kunt op enter drukken zonder dat je de opties hoeft aan te passen. Wanneer u om NAT-configuratie wordt gevraagd, selecteert u Ja.

Hierdoor kunnen uw containers verbinding maken met internet, met behulp van het openbare IP-adres van de host, op dezelfde manier als uw laptop en andere apparaten via de thuisrouter (met port forwarding).

De laatste optie over het IPv6-subnet is volledig optioneel en ik raad u aan deze voorlopig weg te laten. Zeggen Nee, wanneer om IPv6-opties wordt gevraagd.


De containers opdraaien

Om een ​​nieuwe instantie van bijvoorbeeld Ubuntu 16 uit te voeren.04, voer de volgende opdracht uit:

$lxc start ubuntu:16.04 naam_van_uw_container

Aangezien dit de eerste keer is dat u een Ubuntu-server gebruikt, zal het enige tijd duren om de containerafbeelding op te halen uit de externe opslagplaatsen. Zodra dat is gebeurd, kunt u de details over de gelanceerde container zien door de opdracht uit te voeren:

$lxc lijst

In dit voorbeeld is de naam van de container vervolg1.

Als u in de container wilt komen, voert u de opdracht uit;

$lxc exec name_of_your_container bash

Dit zal je in de bash-shell laten vallen die in die container draait. Het zou ruiken en aanvoelen als een nieuwe installatie van Ubuntu 16.04 en je kunt er vrijelijk pakketten in installeren en verschillende experimenten doen waarbij je je hoofdinstallatie niet zou riskeren.

Nu u het afbeeldingsbestand lokaal op uw hostsysteem hebt opgeslagen, kunt u Ubuntu-containers heel snel laten draaien en gebruiken als wegwerpsystemen.

Om een ​​LX-container te stoppen en te verwijderen, voert u uit;

$lxc stop Containernaam $lxc verwijder containernaam 

Gebruik de lxc-startopdracht, zoals je de eerste keer deed om nieuwe containers te starten.


Waar te gaan vanaf hier?

Nu je weet wat de architectuur van LXD is, wil je misschien beginnen met het verkennen van onderwerpen als netwerken en opslag voor containers en hoe je ze kunt configureren om aan je werklast te voldoen.

Misschien wilt u ook meer te weten komen over de belangrijkste verschillen tussen Docker en LXD en wat eigenlijk beter bij uw behoeften past. Als u ZFS wilt gebruiken als uw opslag-backend (zoals u zou moeten)!) wil je misschien deze tutorial over de basis van ZFS bekijken.

Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...