Container Linux (LXC) su Red Hat / CentOS EL6 - lxc-create contro libvirt?


13

È complicato cercare di rimanere nelle grazie di Red Hat e pianificare ancora la longevità del sistema ...

Sono stato un sostenitore di Linux Containers (LXC) per oltre un anno. Le mie installazioni iniziali erano basate su informazioni raccolte da tutorial online, come questo e questo . Questo era incentrato su lxc-create, lxc-start|stope lxc-destroycomandi e modifica dei modelli OpenVZ esistenti .

Funziona bene ed è felicemente in produzione. Tuttavia, sto presentando alcuni sistemi aggiuntivi e ho deciso di controllare l'attuale documentazione di Red Hat relativa ai container in EL6. Sono stato sorpreso di vedere la loro posizione ufficiale su questo.

Nel fa RHEL 6 forniscono strumenti LXC necessario per usare Linux Containers? , Red Hat descrive LXC come un'anteprima della tecnologia e suggerisce di usare libvirt per gestire la creazione e la gestione dei container .

Tuttavia Oracle sostiene una tecnica di containerizzazione completamente diversa nel suo Unbreakable Linux.

Sembra esserci qualche funzionalità mancante nel metodo libvirt, ma il mio approccio iniziale con i comandi lxc- * era un po 'un processo manuale ... Non riesco a dire esattamente cosa sia giusto o il modo "accettato" di gestire i contenitori su EL6 .

  • Qual è la saggezza convenzionale riguardo ai sistemi simili a LXC e RHEL oggi?
  • Come li stai implementando nella tua organizzazione?
  • Ci sono dei vantaggi in un approccio rispetto agli altri?
  • Possono coesistere?

1
libvirt ha un driver contenitore LXC e lo controlla solo, non è di per sé una soluzione di virtualizzazione / containerizzazione.
Cristian Ciupitu,

Risposte:


7

Qual è la saggezza convenzionale riguardo ai sistemi simili a LXC e RHEL oggi?

Personalmente trovo che la configurazione attuale sia un po 'carente. LXC sembra più all'avanguardia, sicuramente più mantenuto.

Come li stai implementando?

In termini di offerta come opzione di virtualizzazione non lo sono. Trovo che l'attuale configurazione tecnologica manchi.

  • Nessuno spazio dei nomi utente.
  • Alcuni mountpoint non sono compatibili con lo spazio dei nomi (cgroups, selinux)
  • I valori in / proc sono globali di sistema fuorvianti che non tengono conto del partizionamento delle risorse negli spazi dei nomi.
  • Audit interruzioni.

Lo trovo davvero un ottimo strumento per il contenimento a livello di applicazione. Utilizziamo direttamente spazi dei nomi e cgroup per contenere risorse di rete e IPC per determinate applicazioni Web gestite dall'utente. Forniamo la nostra interfaccia per controllarla. In RHEL7 sto considerando di spostare questa funzionalità libvirt-lxccome le più recenti revisioni del libvirtsupporto al concetto di ACL dell'utente.

Per la virtualizzazione in termini di un sistema completamente inizializzato, sto aspettando di vedere cosa viene offerto in RHEL7, ma in tutta onestà, penso che potremmo vedere una soluzione abbastanza valida solo dopo una versione minore di RHEL7 e quindi forse solo su uno stato di anteprima della tecnologia.

Tieni d'occhio systemd-nspawnqualcosa che mi dice nei prossimi 18 mesi o così potrebbe prendere il suo posto è lo strumento migliore per fare la virtualizzazione completamente linux, sia che gli autori di sistema chiariscano che non è sicuro in questo momento! Non sarei sorpreso se alla fine libvirtcade libvirt-lxce offre solo un involucro systemd-nspawncon fette di systemd definite.

Inoltre, attenzione, negli ultimi 6 mesi si è parlato molto riguardo alla reimplementazione dei cgroup come interfaccia del programmatore del kernel piuttosto che come interfaccia del filesystem (forse usando netlink o qualcosa del genere, non ho controllato) quindi systemd dovrebbe essere molto caldo sulla coda di farlo molto rapidamente.

Ci sono dei vantaggi in un approccio rispetto all'altro?

Penso che l'opzione LXC (non libvirt-lxc) sia meglio mantenuta. Dopo aver letto il libvirt-lxccodice sorgente, si sente affrettato. LXC tradizionale ha sicuramente nuove funzionalità che sono state testate meglio. Entrambi richiedono un certo grado di compatibilità da parte del sistema init in esecuzione in essi, ma ho il sospetto che troverai LXC leggermente più "chiavi in ​​mano" rispetto libvirt-lxcall'opzione in particolare per quanto riguarda far funzionare le distro al loro interno.

Possono coesistere?

Certo, ricorda che a tutti gli effetti, entrambi stanno facendo la stessa cosa. Organizzazione di spazi dei nomi, cgroups e punti di montaggio. Tutti i primitivi sono gestiti dal kernel stesso. Entrambe le lxcimplementazioni offrono solo un meccanismo per l'interfaccia con le opzioni del kernel disponibili.


9

Red Hat sta facendo un'enorme spinta alla containerizzazione. Stanno costruendo un intero nuovo prodotto, Red Hat Enterprise Linux Atomic Host , attorno ad esso.

Per un approccio meno radicale, dai un'occhiata alla loro RHEL7 beta Resource Management e Linux Containers Guide ; noterai che spinge libvirt-lxc e non fa menzione degli strumenti lxc.


1
Grazie per questo. L'host atomico RHEL sembra fare molto affidamento su Docker.io . Ciò indica che Docker e gli strumenti correlati sono la strada giusta da percorrere?
ewwhite,

Red Hat sta sicuramente investendo molto in docker, ma sono anche i principali sviluppatori di libvirt-lxc. Esaminerei le capacità che ognuna di esse fornisce e vedrei quale si adatta meglio alle tue esigenze.
sciurus,

1
Sì @ewwhite Il seguente documento Redhat menziona esattamente questo: access.redhat.com/articles/1365153
Susinthiran,

1

Gli eseguibili lxc- * sono confezionati nel lxc pacchetto EPEL . Tuttavia è la vecchia versione "supporto a lungo termine". Non hai nemmeno l'opzione "-f" in lxc-ls. Installerei semplicemente Ubuntu per i miei host LXC.

Il modo RHEL per gestire LXC sembra essere tramite libvirt-lxc ma è apparentemente deprecato .

Ho notato che Ubuntu supporta molti dei nuovi sviluppi lxc / lxd mentre Redhat si sta concentrando su KVM e docker.


La domanda è relativa a RHEL 6, la deprecazione sta per RHEL 7 «I seguenti pacchetti libvirt-lxc sono deprecati a partire da Red Hat Enterprise Linux 7.1:» quindi può essere usato
taharqa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.