LXD

LXD-handledning

LXD-handledning

LXD Basics: Vad är det?? Och hur man använder det?

LXD-containerisering har inte fått rampljuset som Docker gjorde, men det är faktiskt mycket närmare kärnidén med operativsystemvirtualisering. Men innan vi kommer dit, låt oss prata om samtida hårdvarunivå virtualisering.

Hårdvaruvirtualisering

Det traditionella sättet som VMware, VirtualBox, KVM och liknande teknologier fungerar på är detta - Du har en serverklassdator, säg en avancerad Xeon-processor med 512 GB RAM, känd som bare metal. Du installerar ett operativsystem på detta som sedan kör antingen VMware, Virtualbox eller KVM.

Dessa är olika hypervisorer, och operativsystemet som kör dem är värdoperativsystem.

Nu, vad hypervisor erbjuder är detta - det emulerar CPU, nätverksgränssnitt, lagringsdiskar, minne, I / O och andra resurser så att ett nytt operativsystem kan installeras ovanpå denna uppsättning virtuell hårdvara. Detta nya operativsystem är gästoperativsystem och den körs på virtuell hårdvara, som om den installerades på en fysisk maskin, men det finns en hake.

Om du tänker, ”Men att emulera olika hårdvaruenheter med den faktiska hårdvaran låter ineffektivt och långsamt.”Du har helt rätt. Virtualisering på hårdvarunivå är långsam och ineffektiv.

Dessutom är operativsystem själva kontrollfreakar. Om du tilldelar ett gäst-OS 1 GB RAM och 2 CPU-kärnor tar det gärna alla resurser även om applikationerna som körs inuti det bara använder en bråkdel av det. Dessa resurser är inte tillgängliga för hypervisor att använda någon annanstans.

Detta begränsar kraftigt antalet virtuella datorer som kan köras ovanpå en hypervisor. Om du är en leverantör av molnhosting betyder det att din slutresultat kommer att drabbas dåligt.


Behållarens sätt att göra saker

Idén om virtualiserad hårdvara kastas ut genom fönstret när vi börjar prata om containrar och speciellt LXD. Istället för att efterlikna enskilda maskinvareresurser är det vi försöker göra virtualisering av operativsystemet.

När en LX-container spunnas upp erbjuder operativsystemet sig (det vill säga kärnan, biblioteken alla resurser som är tillgängliga för den) till applikationer som körs i behållaren. Användare och appar i den här behållaren känner inte till applikationer och paket som körs utanför den, och vice versa.

När det gäller resurstilldelningen kan du helt enkelt göra en anteckning för att inte tillåta en viss behållare att använda mer än, säg, 2 GB RAM och 2 CPU: er. På det här sättet, när appar som körs i en container inte gör något intensivt, kan resurserna allokeras någon annanstans i värdmiljön.

Men när apparna körs under tung belastning får de bara metallprestanda!

Den uppenbara bristen på detta är att du inte kan köra något godtyckligt operativsystem som gäst. Eftersom olika operativsystem har olika arkitekturer helt och hållet. Lyckligtvis för GNU / Linux-användare erbjuder Linux-kärnan så tät ABI-kompatibilitet att du kan emulera olika distributioner ovanpå samma kärna. Så du kan köra CentOS-binärer och Ubuntu-applikationer på samma metall bara i olika behållare.


LXD init

LX containerization är en väl testad och robust teknik för Linux-baserade operativsystem. Den har två huvudkomponenter, den ena är LXC vilket är det som hanterar behållarkonfigurationer, bildfiler osv. Och sedan finns det LXD som är den demon som körs på din värd och ser till att alla policyer som är inställda för containerisering följs.

Den installeras som standard på Ubuntu Server 16.04 LTS, om du använder skrivbordsdistro, kör:

$ apt installera lxd lxd-klient

När det är klart måste du initiera olika parametrar. Följande kommando skulle köra igenom dem:

$ lxd init

Du kan välja standardalternativ härifrån.  Det mest involverade skulle vara att ställa in nätverksgränssnitt. När du blir ombedd att konfigurera LXD-nätverk väljer du standardalternativet ja.

1 Svara ja igen när du uppmanas att ställa in nätverk

Nästa fönster frågar efter nätverksgränssnittsnamn (som visas på värden), lämna det vid standardvärdet lxdbr0.

IPv4-undernätinställningen skulle komma efter detta. Det skulle göra det möjligt för olika LX-containrar att prata med varandra som om de är olika datorer i ett lokalt nätverk. Välj ja för detta.

Nästa kommer det att finnas flera 10.202.X.X-adresser visas var och en med en annan roll i detta undernät. Du kan trycka på enter utan att behöva justera alternativen. När du blir ombedd att konfigurera NAT väljer du ja.

Detta gör att dina behållare kan ansluta till internet med värdens offentliga IP, ungefär på samma sätt som din bärbara dator och andra enheter gör via hemroutern (med vidarebefordran av port).

Det sista alternativet om IPv6-undernät är helt valfritt och jag skulle rekommendera att du utelämnar det för tillfället. Säga Nej, när du uppmanas till IPv6-alternativ.


Snurra upp behållarna

Att köra en ny instans av, säg, Ubuntu 16.04, kör följande kommando:

$ lxc lanserar ubuntu: 16.04 namn_din_behållare

Eftersom det här är första gången du kör en Ubuntu-server tar det tid att hämta behållaravbildningen från fjärrförvaren. När det är klart kan du se detaljerna om den lanserade containern genom att köra kommandot:

$ lxc-lista

I det här exemplet är behållarens namn forts.

Om du vill komma in i behållaren, kör kommandot;

$ lxc exec name_of_your_container bash

Detta kommer att släppa dig in i bash-skalet som körs i den behållaren. Det skulle lukta och kännas som en ny installation av Ubuntu 16.04 och du kan fritt installera paket inuti den och göra olika experiment som du inte riskerar din huvudinstallation.

Nu när du har bildfilen lokalt lagrad på ditt värdsystem kan du snurra upp Ubuntu-behållare mycket snabbt och använda dem som engångssystem.

För att stoppa och ta bort en LX-behållare, kör;

$ lxc stopp Container_name $ lxc ta bort container_name 

Använd lxc startkommando, som du gjorde första gången för att snurra upp nya behållare.


Vart ska man åka härifrån?

Nu när du vet vad LXD-arkitekturen är kan du börja utforska ämnen som nätverk och lagring för containrar och hur du konfigurerar dem för att passa din arbetsbelastning.

Du kanske också vill lära dig mer om de viktigaste skillnaderna mellan Docker och LXD och vad som faktiskt kan passa dina behov bättre. Om du vill använda ZFS som din lagringsbackend (som du borde!) kanske du vill kolla in den här guiden om ZFS-grunderna.

Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...
Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...