È stato rilasciato il secondo aggiornamento del progetto Incus, in cui la comunità dei Linux Containers sviluppa un fork del sistema di gestione dei container LXD, creato dal vecchio team di sviluppatori che ha originariamente creato LXD. Il codice di Incus è scritto in Go ed è distribuito sotto licenza Apache 2.0.
Ricordiamo che la comunità Linux Containers ha supervisionato lo sviluppo di LXD fino a quando Canonical ha deciso di sviluppare LXD separatamente come progetto aziendale. L'obiettivo del fork è fornire un'alternativa gestita da una comunità indipendente al progetto LXD, che è sotto il controllo dell'azienda Canonical. All'interno del progetto Incus si prevede anche di correggere alcuni errori concettuali che erano stati commessi nello sviluppo di LXD, i quali in precedenza non potevano essere corretti senza compromettere la retrocompatibilità.
Incus offre strumenti per la gestione centralizzata di contenitori e macchine virtuali, distribuiti sia su un singolo host che in un cluster di più host. server. Il progetto è realizzato come un processo in background che riceve richieste tramite REST API e supporta diversi backend di archiviazione (albero delle directory, ZFS, Btrfs, LVM), snapshot dello stato, migrazione live di contenitori attivi da una macchina all'altra e strumenti per la memorizzazione delle immagini dei contenitori. Per l'esecuzione dei contenitori, viene utilizzato il toolkit LXC, che include la libreria liblxc, un insieme di utility (lxc-create, lxc-start, lxc-stop, lxc-ls, ecc.), modelli per la creazione di contenitori e un set di binding per diversi linguaggi di programmazione. L'isolamento è garantito tramite i meccanismi standard del kernel Linux (namespace, cgroups, AppArmor, SELinux, Seccomp).
Le modifiche più significative:
- Nell'utilità lxd-to-incus, che automatizza la migrazione da LXD a Incus, è stata aggiunta la compatibilità con il rilascio di LXD 5.19 e ora è possibile migrare non solo singoli host, ma anche cluster LXD.
- Nelle macchine virtuali è stata aggiunta la possibilità di creare archivi basati su tecnologia NVME. È stato introdotto un nuovo parametro di configurazione, "io.bus", per specificare il tipo di disco, che per impostazione predefinita è impostato su "virtio-scsi". Se il valore viene cambiato in "nvme", l'unità nella macchina virtuale sarà visibile come NVME SSD.
- Per le immagini dei container è stato implementato il parametro "requirements.privileged", che può essere impostato su "false" per vietare l'uso dell'immagine in container privilegiati. Questa configurazione può essere applicata, ad esempio, per le immagini con la distribuzione NixOS, che attualmente non sono compatibili con i container privilegiati.
- È stata trasferita da LXD l'implementazione della modalità di creazione di copie delle partizioni sul lato, serverche accelera significativamente le operazioni di copia delle partizioni, grazie all'esclusione del reindirizzamento dei dati attraverso il client.
- Sono state fornite build staticamente collegate per sistemi ARM64.
Fonte: opennet.ru
