A Canonical lançou a versão da ferramenta para organizar o funcionamento de contêineres isolados LXC 5.0, que fornece um runtime adequado tanto para a execução de contêineres com um ambiente de sistema completo, próximos a máquinas virtuais, quanto para a execução de contêineres de aplicações individuais sem privilégios (OCI). O LXC é uma ferramenta de baixo nível que opera no nível de contêineres individuais. Para o gerenciamento centralizado de contêineres implantados em um cluster de vários servidores, está sendo desenvolvida uma sistema LXD baseado no LXC. A versão LXC 5.0 é classificada como uma versão de suporte prolongado, cujas atualizações são realizadas por 5 anos. O código LXC é escrito em C e distribuído sob a licença GPLv2.
O LXC inclui a biblioteca liblxc, um conjunto de utilitários (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), templates para construção de contêineres e um conjunto de bindings para várias linguagens de programação. A isolação é realizada através dos mecanismos nativos do núcleo Linux. Para a isolação de processos, pilha de rede ipc, uts, identificadores de usuários e pontos de montagem, é utilizado o mecanismo de namespaces. Para limitar recursos, são utilizados cgroups. Para reduzir privilégios e limitar acesso, são usadas funcionalidades do núcleo como perfis Apparmor e SELinux, políticas Seccomp, Chroots (pivot_root) e capabilities.
Principais mudanças:
- A transição de autotools para o sistema de construção Meson foi realizada, que também é utilizado para compilar projetos como X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK.
- Novas opções foram adicionadas para configuração de cgroup — lxc.cgroup.dir.container, lxc.cgroup.dir.monitor, lxc.cgroup.dir.monitor.pivot e lxc.cgroup.dir.container.inner, que permitem definir explicitamente os caminhos do cgroup para o contêiner, o processo de monitoramento e hierarquias internas do cgroup.
- O suporte para namespaces de tempo foi adicionado, permitindo que um estado separado dos relógios do sistema seja vinculado ao contêiner, possibilitando ao contêiner usar seu próprio horário, diferente do sistema. Para configuração, as opções lxc.time.offset.boot e lxc.time.offset.monotonic foram propostas, permitindo definir para o contêiner o deslocamento em relação aos principais relógios do sistema.
- Para adaptadores ethernet virtuais (Veth), foi implementado suporte a VLAN. As opções para gerenciamento de VLAN incluem: veth.vlan.id para definir a VLAN principal e veth.vlan.tagged.id para associar VLANs etiquetadas adicionais.
- Para adaptadores ethernet virtuais, foi adicionada a possibilidade de configurar o tamanho das filas de recepção e transmissão usando as novas opções veth.n_rxqueues e veth.n_txqueues.
Fonte: opennet.ru
