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-lxc
come le più recenti revisioni del libvirt
supporto 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-nspawn
qualcosa 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 libvirt
cade libvirt-lxc
e offre solo un involucro systemd-nspawn
con 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-lxc
codice 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-lxc
all'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 lxc
implementazioni offrono solo un meccanismo per l'interfaccia con le opzioni del kernel disponibili.