Lançamento do sistema de gerenciamento de contêineres LXD 5.0

A Canonical publicou o lançamento do gerenciador de contêineres LXD 5.0 ​​​​e do sistema de arquivos virtual LXCFS 5.0. O código LXD é escrito em Go e distribuído sob a licença Apache 2.0. A versão 5.0 é classificada como uma versão de suporte de longo prazo – as atualizações serão geradas até junho de 2027.

Como tempo de execução para lançar contêineres, é utilizado o kit de ferramentas LXC, que inclui a biblioteca liblxc, um conjunto de utilitários (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), modelos para construção de contêineres e um conjunto de ligações para várias linguagens de programação. O isolamento é realizado usando mecanismos padrão do kernel Linux. Para isolar processos, pilha de rede ipc, uts, IDs de usuário e pontos de montagem, o mecanismo de namespaces é usado. cgroups são usados ​​para limitar recursos. Para diminuir privilégios e limitar o acesso, são usados ​​recursos do kernel como perfis Apparmor e SELinux, políticas Seccomp, Chroots (pivot_root) e capacidades.

Além do LXC, o LXD também utiliza componentes dos projetos CRIU e QEMU. Se o LXC é um kit de ferramentas de baixo nível para manipulação de contêineres individuais, o LXD fornece ferramentas para gerenciamento centralizado de contêineres implantados em um cluster de vários servidores. O LXD é implementado como um processo em segundo plano que aceita solicitações pela rede por meio da API REST e suporta vários back-ends de armazenamento (árvore de diretórios, ZFS, Btrfs, LVM), instantâneos com uma fatia de estado, migração ao vivo de contêineres em execução de uma máquina para outra, e ferramentas para armazenar contêineres de imagens. LXCFS é usado para simular o pseudo-FS /proc e /sys em contêineres, e a representação virtualizada cgroupfs para dar aos contêineres a aparência de um sistema independente regular.

Principais melhorias:

  • Possibilidade de conexão e desconexão a quente de unidades e dispositivos USB. Em uma máquina virtual, um novo disco é detectado pelo aparecimento de um novo dispositivo no barramento SCSI, e um dispositivo USB é detectado pela geração de um evento USB hotplug.
  • É possível iniciar o LXD mesmo quando é impossível estabelecer uma conexão de rede, por exemplo, devido à ausência do dispositivo de rede necessário. Em vez de exibir um erro na inicialização, o LXD agora inicia o número máximo de ambientes possíveis nas condições atuais, e os ambientes restantes são iniciados após a conexão de rede ser estabelecida.
  • Uma nova função de membro de cluster foi adicionada - ovn-chassis, destinada a clusters que usam OVN (Open Virtual Network) para comunicação de rede (atribuindo a função ovn-chassis, você pode selecionar servidores para executar as funções de roteadores OVN).
  • Foi proposto um modo otimizado para atualizar o conteúdo das partições de armazenamento. Nas versões anteriores, a atualização consistia primeiro em copiar uma instância ou partição de contêiner, por exemplo, usando a funcionalidade de envio/recebimento em zfs ou btrfs, após o que a cópia criada era sincronizada executando o programa rsync. Para melhorar a eficiência da atualização de máquinas virtuais, a nova versão utiliza lógica de migração avançada, na qual, se os servidores de origem e destino usarem o mesmo pool de armazenamento, instantâneos e operações de envio/recebimento serão usados ​​automaticamente em vez de rsync.
  • A lógica de identificação de ambientes no cloud-init foi reformulada: em vez de nomes de ambientes, o UUID agora é usado como instance-id.
  • Adicionado suporte para conectar a chamada do sistema sched_setscheduler, permitindo que contêineres sem privilégios alterem as prioridades do processo.
  • A opção lvm.thinpool_metadata_size foi implementada para controlar o tamanho dos metadados no thinpool.
  • O formato do arquivo com informações de rede para lxc foi redesenhado. Adicionado suporte para dados em ligação de interface, pontes de rede, VLAN e rede OVN.
  • Os requisitos para versões mínimas dos componentes foram aumentados: kernel Linux 5.4, Go 1.18, LXC 4.0.x e QEMU 6.0.
  • O LXCFS 5 adicionou suporte para a hierarquia unificada de cgroups (cgroup2), implementou /proc/slabinfo e /sys/devices/system/cpu e usou o kit de ferramentas meson para montagem.

Fonte: opennet.ru

Adicionar um comentário