LXC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LauBot (discussione | contributi)
m Sostituisco Collegamenti esterni ai vecchi template e rimuovo alcuni duplicati
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(6 versioni intermedie di 6 utenti non mostrate)
Riga 1:
{{Software
|Nome = LXC
|Logo = Linux Containers logo.png
|DimensioneLogo = 70px
|Screenshot =
Riga 7 ⟶ 6:
|Didascalia =
|Sviluppatore = {{Lista|Kernel: [[Parallels (azienda)|Parallels]], [[IBM]], [[Google Inc.]], Eric Biederman e altri|Userspace: Daniel Lezcano, Serge Hallyn, Stéphane Graber e altri}}
|UltimaVersione =
|UltimaVersione = 1.1.1<ref name=download>[http://linuxcontainers.org/downloads/ LXC download]</ref>
|DataUltimaVersione = {{Data|16|03|2015}}
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
Riga 27 ⟶ 26:
È simile ad altri sistemi di virtualizzazione ''OS-level'' presenti in Linux, come [[OpenVZ]] e [[Linux-VServer]], ed in altri sistemi operativi [[Unix]], esistenti da tempo: le ''jail'' di [[FreeBSD]], le ''workload partitions'' [[AIX (sistema operativo)|AIX]] e i ''container'' di [[Oracle Solaris (sistema operativo)|Solaris]].
 
Non si tratta perciò di un sistema di virtualizzazione vero e proprio, che emula un [[hardware]] basandosi su [[hypervisor]], e supporta solo la virtualizzazione di sistemi Linux. I ''container'' eseguono direttamente istruzioni sulla [[CPU]] senza necessitare di meccanismi di emulazione o compilazione ''[[Compilatore just-in-time|just in time]]'', il che comporta un ''[[overhead]]'' ("carico aggiuntivo") e un utilizzo di risorse moltopiù bassoelevato. LXC oltreOltre che aper emulare un intero sistema, LXC può essere utilizzato anche per far girare isolata dal resto del sistema una singola applicazione, differenziando i container di tipo "sistema" da quelli di tipo "applicazione". Diverse delle risorse utilizzate dai container restano in realtà condivise, visto che tutti utilizzano lo stesso kernel, ad esempio librerie di sistema.<ref>{{cita web|url = httphttps://www.ibm.com/developerworks/linux/library/l-lxc-containers/|titolo = LXC: Linux container tools|autore = Matt Helsley|data = 3 febbraio 2009|editore = IBM developerworks|accesso = 28 marzo 2015}}</ref>
 
== LXC e il kernel Linux ==
Il [[Linux (kernel)|kernel]] Linux fornisce due funzionalità fondamentali per LXC
#''cgroups'', che permette di gestire limiti e priorità di utilizzo delle risorse (CPU, memoria, accesso alla memoria, accessi ai dischi, rete) senza dover utilizzare una vera e propria macchina virtuale;
#l'isolamento dei ''namespace'' (o spazio dei nomi), che permette di isolare tra loro gruppi di processi, affinché non siano loro visibili risorse utilizzate da altri gruppi di processi, come alberi di [[Processo (informatica)|processi]], risorse di rete, [[User identifier|user ID]] e [[file system]] [[Montare|montati]].<ref>{{cita web|url = httphttps://www.cs.ucsb.edu/~rich/class/cs290-cloud/papers/lxc-namespace.pdf|titolo = Resource management: Linux kernel namespaces and cgroups|data = maggio 2013|accesso = 28 marzo 2015|formato=pdf|autore = Rami Rosen|urlmorto = sì|urlarchivio = https://web.archive.org/web/20150211151727/http://www.cs.ucsb.edu/~rich/class/cs290-cloud/papers/lxc-namespace.pdf|dataarchivio = 11 febbraio 2015}}</ref>
 
Tali funzionalità sono fornite dal kernel ''vanilla''; la funzionalità cgroups è ad esempio implementata dalla versione 2.6.24. Ciò permette a LXC di poter essere utilizzato senza dover modificare il kernel con [[Patch (informatica)|patch]], come invece accade per soluzioni simili (es. OpenVZ).
 
== PaaS e Docker ==
I container sono molto utilizzati nei servizi di [[cloud computing]] di tipo [[PaaS|Platform as a service]] (''Platform as a servicePaaS''). Uno degli strumenti che permette di pacchettizzare e distribuire un'applicazione e le sue dipendenze tramite container ed utilizza LXC è il software libero [[Docker]].
 
== Problemi di sicurezza ==
In origine LXC era visibilmente meno sicuro di altre soluzioni simili come OpenVZ. Infatti fino al kernel Linux 3.8 l'utente [[Root (utente)|root]] di un sistema guest poteva eseguire a piacere codice direttamente sul sistema host coi privilegi massimi, similmente a quanto accade con [[chroot]].<ref>{{cita web|autore = Marco d'Itri|titolo = Evading from linux containers|url = httphttps://blog.bofh.it/debian/id_413|anno = 2011|urlarchivio = https://web.archive.org/web/20140109184419/http://blog.bofh.it/debian/id_413|dataarchivio = 9 gennaio 2014|accesso = 28 marzo 2015|urlmorto = sì}}</ref> Dalla versione 1.0 i container possono venire eseguiti con i privilegi di utente normale sull'host.<ref name="lxc-1-0-security-features/">{{cita web|autore = Stéphane Graber|titolo = LXC 1.0: Security features [6/10]|url = https://www.stgraber.org/2014/01/01/lxc-1-0-security-features/|accesso = 28 marzo 2015|data = 1º gennaio 2014}}</ref> Tali container hanno dei limiti, in quanto non possono accedere direttamente all'hardware. In ogni caso anche il livello di sicurezza dei container che vengono fatti girare con i privilegi di root è aumentato, in presenza di una configurazione adeguata.<ref name="lxc-1-0-security-features/" />
 
== Note ==
Riga 48 ⟶ 47:
* [[Virtualizzazione]]
* [[Linux (kernel)]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==