LXD

LXD opplæring

LXD opplæring

Grunnleggende om LXD: Hva er det?? Og hvordan du bruker den?

LXD-containerisering har ikke fått rampelyset som Docker gjorde, men det er faktisk mye nærmere kjerneideen til operativsystemvirtualisering. Men før vi kommer dit, la oss snakke om moderne hardware-virtualisering.

Maskinvarevirtualisering

Den tradisjonelle måten som VMware, VirtualBox, KVM og lignende teknologier fungerer på, er dette - Du har en datamaskin av serverklasse, si en avansert Xeon-prosessor med 512 GB RAM, kjent som bare metal. Du installerer et operativsystem på dette, som deretter vil kjøre enten VMware, Virtualbox eller KVM.

Disse er forskjellige hypervisorer, og operativsystemet som kjører dem er vertsoperativsystem.

Nå, hva hypervisoren tilbyr er dette - Den emulerer CPU, nettverksgrensesnitt, lagringsdisker, minne, I / O og andre ressurser slik at et nytt operativsystem kan installeres på toppen av dette settet med virtuell maskinvare. Dette nye operativsystemet er gjestes operativsystem og den kjører på virtuell maskinvare, som om den ble installert på en fysisk maskin, men det er en fangst.

Hvis du tenker, “Men å emulere forskjellige maskinvareenheter som bruker den faktiske maskinvaren, høres ineffektiv og treg ut.”Du har helt rett. Virtualisering på maskinvarenivå er treg og ineffektiv.

Videre er operativsystemene i seg selv kontrollfreaker. Hvis du tildeler et gjest OS 1 GB RAM og 2 CPU-kjerner, vil det gjerne ta alle ressursene, selv om applikasjonene som kjører inne i den bare bruker en brøkdel av den. Disse ressursene vil ikke være tilgjengelige for hypervisoren å bruke andre steder.

Dette begrenser sterkt antall virtuelle maskiner som kan kjøres på toppen av en hypervisor. Hvis du er en cloud hosting-leverandør, betyr dette at bunnlinjen din vil bli rammet dårlig.


Containermåten å gjøre ting på

Ideen om virtualisert maskinvare blir kastet ut av vinduet når vi begynner å snakke om containere og spesielt LXD. I stedet for å etterligne individuelle maskinvareressurser, er det vi prøver å gjøre å virtualisere operativsystemet.

Når en LX-container spinnes opp, tilbyr OS seg selv (det vil si kjernen, bibliotekene alle tilgjengelige ressurser) til applikasjonene som kjører inne i containeren. Brukere og apper i denne beholderen vil ikke være klar over applikasjoner og pakker som kjører utenfor den, og omvendt.

Når det gjelder ressurstildelingen, kan du ganske enkelt lage et notat for å ikke tillate at en bestemt container bruker mer enn for eksempel 2 GB RAM og 2 CPUer. På denne måten, når appene som kjører i en container ikke gjør noe intensivt, kan ressursene tildeles andre steder i vertsmiljøet.

Imidlertid, når appene kjører under tung belastning, får de bare metallytelse!

Den åpenbare mangelen på dette er at du ikke kan kjøre noe vilkårlig operativsystem som gjest. Fordi forskjellige operativsystemer har forskjellige arkitekturer helt. Heldigvis for GNU / Linux-brukere tilbyr Linux-kjernen en så stram ABI-kompatibilitet at du kan etterligne forskjellige distribusjoner på toppen av samme kjerne. Så du kan kjøre CentOS-binærfiler og Ubuntu-applikasjoner på samme metall bare i forskjellige beholdere.


LXD init

LX containerization er en velprøvd og robust teknologi for Linux-baserte operativsystemer. Den har to hovedkomponenter, den ene er LXC, som er det som administrerer containerkonfigurasjoner, bildefiler osv., Og så er det LXD som er demonen som kjører på verten din, og sørger for at alle retningslinjene som er satt for containerisering følges.

Den installeres som standard på Ubuntu Server 16.04 LTS, hvis du bruker desktop distro, kjør:

$ apt install lxd lxd-client

Når det er gjort, må du initialisere forskjellige parametere. Følgende kommando vil kjøre deg gjennom dem:

$ lxd init

Du kan velge standardalternativer herfra.  Det mest involverte ville være å sette opp nettverksgrensesnitt. Når du blir bedt om LXD-nettverksoppsett, velger du standardalternativet ja.

1 Svar ja, igjen når du blir bedt om å stille inn nettverk

Neste vindu vil be om nettverksgrensesnittnavnet (sett på verten), la det være på standardverdien lxdbr0.

IPv4-delnettinnstillingen vil komme etter dette. Det ville tillate forskjellige LX-containere å snakke med hverandre som om de er forskjellige datamaskiner i et lokalt nettverk. Velg ja for dette.

Neste vil det være flere 10.202.X.X-adresser vist hver med en annen rolle på dette undernettet. Du kan trykke Enter uten å måtte justere alternativene. Når du blir bedt om NAT-konfigurasjon, velger du ja.

Dette gjør at containerne dine får tilkobling til internett ved hjelp av vertsens offentlige IP, omtrent på samme måte som den bærbare datamaskinen din og andre enheter gjør via hjemmeruten (med portvideresending).

Det siste alternativet om IPv6-delnett er helt valgfritt, og jeg vil anbefale deg å utelate det for nå. Si Nei, når du blir bedt om IPv6-alternativer.


Snurre opp containerne

Å kjøre en ny forekomst av for eksempel Ubuntu 16.04, kjør følgende kommando:

$ lxc lansering ubuntu: 16.04 navn_av_din_beholder

Siden dette er første gang du kjører en Ubuntu-server, vil det ta tid å hente containerbildet fra de eksterne lagringene. Når det er gjort, kan du se detaljene om den lanserte containeren ved å kjøre kommandoen:

$ lxc-liste

I dette eksemplet er navnet på containeren forts.

Hvis du vil komme inn i containeren, kjører du kommandoen;

$ lxc exec name_of_your_container bash

Dette vil slippe deg inn i bash-skallet som kjører inne i beholderen. Det ville lukte og føles som en ny installasjon av Ubuntu 16.04, og du kan fritt installere pakker i den og gjøre forskjellige eksperimenter som du ikke risikerer din viktigste installasjon.

Nå som du har bildefilen lokalt lagret på vertssystemet ditt, kan du spinne opp Ubuntu-containere veldig raskt og bruke dem som engangssystemer.

For å stoppe og slette en LX-container, kjør;

$ lxc stopp Container_name $ lxc slett container_name 

Bruk lxc startkommando, slik du gjorde første gang for å spinne opp nye containere.


Hvor du kan dra herfra

Nå som du vet hva arkitekturen til LXD er, kan det være lurt å begynne å utforske emner som nettverk og lagring for containere og hvordan du konfigurerer dem slik at de passer til arbeidsmengden din.

Det kan også være lurt å lære om de viktigste forskjellene mellom Docker og LXD og hva som faktisk kan passe dine behov bedre. Hvis du vil bruke ZFS som lagringsbakgrunn (som du burde!) vil du kanskje sjekke ut denne veiledningen om grunnleggende om ZFS.

Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...