LXC

LXC
programvare
SjangerVirtualisering  (ikke  oppført )
Utvikler
  • Kjerne: Parallels , IBM , Google Inc. , Eric Biederman og andre
  • Brukerområde: Daniel Lezcano, Serge Hallyn, Stéphane Graber og andre
Dato for første versjon6. august 2008
Siste versjon5.0.1 (29. juli 2022)
OperativsystemLinux
SpråkLua
Python
C
Bourne-skall
TillatelseGNU LGPL v.2.1 (noen komponenter under GNU GPL v.2 og BSD-lisens )
( gratis lisens )
Nettstedlinuxcontainers.org og linuxcontainers.org/lxc

LXC (forkortelse for Linux Containers ) er et containerisert virtualiseringsmiljø , som operereroperativsystemnivå og lar deg kjøre flere isolerte virtuelle Linux- miljøer ( containere ) på en enkelt ekte maskin med Linux-kjernen .

Oversikt

Det ligner på andre virtualiseringssystemer på OS-nivå som finnes i Linux, for eksempel OpenVZ og Linux-VServer , og andre veletablerte Unix - operativsystemer : FreeBSD - jails , AIX - arbeidsbelastningspartisjoner og Solaris - beholdere .

Det er derfor ikke et ekte virtualiseringssystem, som emulerer maskinvare basert på en hypervisor , og kun støtter virtualisering av Linux-systemer. Beholdere utfører instruksjoner direkte på CPU-en uten behov for just-in-time kompilering eller emuleringsmekanismer , noe som resulterer i overhead ("ekstra belastning") og høyere ressursbruk. I tillegg til å emulere et helt system, kan LXC også brukes til å kjøre en enkelt applikasjon isolert fra resten av systemet, og skille "system" type containere fra "application" type containere. Flere av ressursene som brukes av containere er faktisk delt, siden de alle bruker samme kjerne, for eksempel systembiblioteker. [1]

LXC og Linux-kjernen

Linux -kjernen gir to grunnleggende funksjoner for LXC

  1. cgroups , som lar deg administrere ressursbruksgrenser og prioriteringer (CPU, minne, minnetilgang, disktilgang, nettverk) uten å måtte bruke en ekte virtuell maskin;
  2. namespace (eller namespace) isolation , som lar deg isolere grupper av prosesser fra hverandre, slik at de ikke er synlige ressurser som brukes av andre grupper av prosesser, for eksempel prosesstrær , nettverksressurser, bruker-IDer og monterte filsystemer . [2]

Disse funksjonene leveres av vaniljekjernen ; for eksempel er cgroups-funksjonaliteten implementert av versjon 2.6.24. Dette gjør at LXC kan brukes uten å måtte modifisere den patchede kjernen , slik tilfellet er med lignende løsninger (f.eks. OpenVZ).

PaaS og Docker

Containere er mye brukt i Platform as a Service ( PaaS ) cloud computing -tjenester. Et av verktøyene som lar deg pakke og distribuere en applikasjon og dens avhengigheter via containere og bruker LXC er gratisprogramvaren Docker .

Sikkerhetsproblemer

Opprinnelig var LXC synlig mindre sikker enn andre lignende løsninger som OpenVZ. Faktisk, opp til Linux-kjerne 3.8 kunne rotbrukeren av et gjestesystem kjøre hvilken som helst kode direkte på vertssystemet med maksimale privilegier, på samme måte som det som skjer med chroot . [3] Siden versjon 1.0 kan containere kjøres med vanlige brukerrettigheter på verten. [4] Slike beholdere har begrensninger, siden de ikke kan få direkte tilgang til maskinvaren. I alle fall økes også sikkerhetsnivået til beholderne som kjøres med root-privilegier, i nærvær av en adekvat konfigurasjon. [4]

Merknader

  1. ^ Matt Helsley, LXC: Linux container tools , ibm.com , IBM developerworks, 3. februar 2009. Hentet 28. mars 2015 .
  2. ^ Rami Rosen, Resource management: Linux kernel namespaces and cgroups ( PDF ), på cs.ucsb.edu , mai 2013. Hentet 28. mars 2015 (arkivert fra originalen 11. februar 2015) .
  3. ^ Marco d'Itri, Evading from linux containers , på blog.bofh.it , 2011. Hentet 28. mars 2015 (arkivert fra originalen 9. januar 2014) .
  4. ^ a b Stéphane Graber, LXC 1.0: Security features [6/10] , på stgraber.org , 1. januar 2014. Hentet 28. mars 2015 .

Relaterte elementer

Eksterne lenker