Pagina 1 di 1

lxc e snapshot

Inviato: mar ott 30, 2018 17:12
da conraid
Attualmente uso chroot per compilare pacchetti e qemu per prove varie.
Però mi è sorta una necessità. A volte sbaglio, e per esempio mi installa senza creare il pacchetto e mi ritrovo tutto in giro per il filesystem. A volte basta un make uninstall, altre no. Per fortuna al 90% sono n /usr/local e trovi tutto a mano.
Ma stavo pensando, con lxc posso fare degli snapshot per tornare ogni volta al punto di partenza? Credo l'ambiente base e poi tornare a quel punto. Ho letto un po' in rete ma ci ho capito poco. Se sì, occupa tanto spazio? Cioè se deve avere stessa dimensione non ne vale la pena. Se tiene solo le modifiche sì.

Re: lxc e snapshot

Inviato: mar ott 30, 2018 17:38
da ponce
i container lxc sono dei sistemi operativi che girano da delle directory nel filesystem: di per se lxc non gestisce snapshot, ma li puoi fare tramite strumenti di gestione del filesystem (per esempio se usi xfs, lvm o cosi' via).
il metodo piu' semplice e' spegnere il container, copiare la directory col sistema operativo altrove e poi gestire altri eventuali backup del container come gestiresti qualunque altro genere di backup incrementale (di questo mi sembra di averti fatto un esempio poco tempo fa).

Re: lxc e snapshot

Inviato: mar ott 30, 2018 17:52
da conraid
Sì, ok, allora poco utile, nel senso che sarebbe uguale come con chroot. Però forse imparare meglio lxc mi serve anche per altro.

Andando OT, Docker lo hai mai utilizzato? Mi sembra di capire che è un container a livello applicazione.

Re: lxc e snapshot

Inviato: mar ott 30, 2018 18:28
da ponce
Docker e' uno strumento alternativo ai tool LXC il cui scopo principale e' diventato quello di creare architetture con microservizi per far girare le proprie applicazioni, anche se tanti sviluppatori brodi lo usano invece per fare dei container a se stanti con fotografie di versioni obsolete di software per far girare la loro applicazione e senza toccare nulla per paura che si rompa: i container cosi' fatti si trasformano tempo poco in qualcosa di molto simile alle fogne di Calcutta.
Comunque fornisce una API per la gestione dei suoi container e permette di fare il deployment di nuovi nodi/istanze a richiesta, per questo si parla di Platform as a Service (PaaS).
Si punta sulla redistribuzione delle immagini ma uno si puo' anche generare delle immagini da zero, a layer, tramite template yaml, con docker compose.
per l'orchestration delle immagini lo standard e' docker swarm.

per dirtela tutta io mi trovo meglio a gestire i container lxc come se fossero macchine virtuali nel filesystem e con gli script shell che mi sembrano necessari, ma capisco che in grosse realta' tanti preferiscano docker, pero', il piu' delle volte, a quello che vedo, lo usano davvero male pensando che scegliere quello li sollevi dal peso di dover amministrare un sistema linux (che invece e' imprescindibile).

Re: lxc e snapshot

Inviato: mar ott 30, 2018 18:43
da conraid
Capito, devo approfondire lxc e docker.

A proposito del link, IBM ha preso RedHat, chissà che fine fa.

Re: lxc e snapshot

Inviato: mar gen 08, 2019 0:21
da 414N
Al lavoro ormai uso docker in pianta stabile da un paio d'anni e devo ammettere che come ausilio per lo sviluppo oppure per le build in continuous integration oppure ancore per lanciare al volo ambienti di test è fenomenale:

  • si possono creare immagini personalizzate per diverse esigenze di build;
  • ogni build parte da uno stato dell'immagine base sempre identico, quindi l'ambiente di esecuzione della build è sempre "statico" finché non si aggiorna l'immagine base;
  • è addirittura possibile, tramite l'uso di qemu-user-static (che va installato nel PATH all'interno dell'immagine del caso), l'esecuzione di software per architetture diverse (armhf/arm64) all'interno di container in esecuzione su x86/x86_64, a patto di configurare a modo il supporto binfmt_misc nel kernel della macchina host;
  • docker è ormai integrato in parecchi sistemi di CI (tipo Jenkins, Gitlab CI, Travis ecc.) e risulta piuttosto semplice impostare job che eseguano da un'immagine preconfezionata da prelevare da Docker Hub oppure da un proprio registry interno privato, piuttosto che da un Dockerfile presente nei sorgenti del progetto stesso

Ovviamente anche lui ha i suoi contro:

  • le immagini, se non progettate ad hoc, fanno presto a diventare mastodontiche, tra un layer e l'altro (ogni istruzione in un Dockerfile, salvo alcune eccezioni, causa la creazione di un nuovo layer nell'immagine);
  • la gestione dei volumi non è proprio banale, nell'ambito della creazione di ambienti "production-ready";
  • se alcuni comandi (ad esempio aggiornamenti pacchetti con apt) si aspettano di avere, per esempio, systemd in esecuzione per configurare alcuni servizi, all'interno di un container necessiteranno di vari workaround, poiché non è normalmente prevista l'esecuzioni di systemd o processi init all'interno di un container (poi un modo lo si trova, ma non è proprio il massimo...)

Purtroppo conosco poco lxc ma penso che abbia forti affinità con docker, solo che magari non ha goduto della stessa attenzione a livello di tooling/integrazioni.

Re: lxc e snapshot

Inviato: gio gen 17, 2019 14:14
da conraid
Purtroppo son tornato a "occuparmi" di front-end, e le poche energie che ho le dedico a quello, quindi ho rimandato tutte le prove con lxc e/o docker.