Novos Recursos e Alterações no UEK R6U1

A seguir estão os principais novos recursos do Unbreakable Enterprise Kernel Release 6 Update 1 (UEK R6U1).

Versão de Kernel

O UEK R6U1 usa a versão 5.4.17-2036 e a compilação do kernel UEK R6, que inclui correções de bugs e segurança, bem como atualizações de drivers.

Funcionalidade Básica do Kernel

O UEK R6U1 fornece funcionalidade de núcleo equivalente ao UEK R6, fazendo uso da mesma versão de kernel principal upstream e correções de bugs LTS upstream, com patches adicionais para aprimorar a funcionalidade existente e fornecer algumas pequenas correções de bugs e melhorias de segurança. As principais alterações são específicas à funcionalidade necessária para o Oracle Database e outros softwares Oracle.

O Padata substitui o ktask

O Padata é um framework para paralelizar o trabalho intensivo de CPU no kernel. No UEK R6, a Oracle lançou o framework ktask para o trabalho de kernel com uso intensivo de CPU multithreading, mas contribuiu para a convergência e o desenvolvimento contínuo da implementação de padata no kernel upstream. No UEK R6U1, a ktask é substituída por uma funcionalidade equivalente no padata para alinhar com o upstream. As alterações não devem ser visíveis para o usuário, e a inicialização da página de estruturação e a inicialização do convidado KVM habilitada para VFIO continuam a ser multithreaded para reduzir os tempos de inicialização.

A documentação para padata é fornecida em /usr/share/doc/kernel-uek-doc-5.4/core-api/padata.rst.

Sistemas de Arquivos

As seguintes alterações notáveis do sistema de arquivos são implementadas no UEK R6U1:

  • Btrfs

    Patches upstream para aprimoramentos de segurança e correções de bug foram aplicados. Isso inclui uma correção para a CVE-2019-19448.

  • CIFS

    Patches gerais de correção de bugs upstream foram aplicados.

  • Ext4

    Correções de bugs upstream foram aplicadas, incluindo várias correções para condições de corrida que resultaram em comportamento indesejável ou travamentos do sistema.

  • NFS

    Correções de bug e aprimoramentos de desempenho foram aplicados a NFS. Significativamente, uma correção está incluída para um problema no cliente NFSv3 que paralisou o comando ls -lrt se o diretório estava sendo modificado quando o comando foi emitido.

  • OCFS2

    As alterações upstream do OCFS2 do kernel upstream 5.7 são back-ported para esta release do kernel. Uma correção de bug também foi aplicada para resolver um problema que acionou uma falha de proteção geral quando um servidor NFS foi hospedado em um sistema de arquivos OCFS2.

  • XFS

    Várias correções de bugs e aprimoramentos de desempenho foram aplicados. Significativamente, o nivelamento do inodo multi-threaded é melhorado para fornecer o melhor desempenho e para evitar a pequena possibilidade do comportamento indesejável resultante de uma condição da corrida. Além disso, uma correção é incluída para um bug que poderia causar uma falha no desbloqueio de um bloqueio de congelamento, fazendo com que o sistema de arquivos parasse. Também foram aplicados aprimoramentos de segurança, incluindo uma correção para CVE-2020-12655.

Recursos de Visualização Técnica

Vários recursos estão sendo investigados e em desenvolvimento para lançamento dentro do UEK R6. Os seguintes recursos estão disponíveis no UEK R6U1 como uma prévia técnica.

Programação principal

O Core Scheduling é um recurso ativado no kernel para limitar tarefas confiáveis a serem executadas simultaneamente em núcleos de CPU que compartilham recursos de computação para ajudar a mitigar determinadas categorias de bugs do processador 'core shared cache' que podem causar vazamento de dados e outras vulnerabilidades relacionadas.

Esse recurso é implementado na forma de um cgroup, em que as tarefas em um cgroup ativado por programação principal têm um grupo exclusivo "cookie". Essas tarefas não podem compartilhar um núcleo com tarefas que têm um cookie diferente nem com tarefas que não estão em um cgroup de programação principal ativado.

O agendamento de núcleo foi projetado para operar em um sistema configurado com Multithreading Simultâneo ativado. No entanto, o agendamento principal não elimina a necessidade de outras mitigações de segurança do processador que possam ser necessárias em um sistema. Para usar esse recurso, certifique-se de que o SMT=on esteja configurado e execute as seguintes operações como usuário raiz:

  1. Crie um grupo regular de controladores de CPU versão 1. Por exemplo, para criar um grupo chamado cpu_sched_0:

    # mkdir /sys/fs/cgroup/cpu/cpu_sched_0
                               
  2. Adicione tarefas ao cgroup. As tarefas são adicionadas gravando seu ID de processo (PID) no arquivo tasks no grupo:

    # echo PID > /sys/fs/cgroup/cpu/core_sched_0/tasks
                               
  3. Para ativar a programação de núcleo para o grupo de controladores de cpu, grave um valor de 1 no arquivo cpu.tag:

    # echo 1 > /sys/fs/cgroup/cpu/core_sched_0/cpu.tag
                               

    Uma vez que o arquivo cpu.tag é atualizado, as tarefas dentro do cgroup nunca compartilham um núcleo com tarefas de um cgroup diferente ou tarefas não atribuídas a um cgroup.

Este recurso é habilitado como uma visualização técnica e está em desenvolvimento. As interfaces estão sujeitas à alteração. As CPUs de hot plugging em um sistema com cgroups de programação de núcleo não são recomendadas. O uso da programação principal em processadores AMD pode exibir uma variação de desempenho mais ampla e também não é recomendado.

WireGuard

O WireGuard é um substituto mais rápido e seguro para IPsec e OpenVPN. Novas redes estão sendo construídas com criptografia moderna do WireGuard, em vez de tecnologias legadas como IPsec e OpenVPN. O WireGuard está ativado como uma prévia técnica no UEK R6U1 e apresenta o módulo kernel wireguard na versão 1.0.20200712.

Observe que o pacote wireguard-tools do repositório ol7_developer_UEKR6 não suportado é necessário para configurar o WireGuard. Para acessar esse repositório yum, instale o pacote oraclelinux-developer-release-el7 ou oraclelinux-developer-release-el8 apropriado para o seu ambiente operacional. Uma vez instalado, restrinja o uso do repositório para o pacote wireguard-tools, para evitar a instalação acidental de atualizações UEK de pré-lançamento.

Para instalar o pacote wireguard-tools no Oracle Linux 7, execute:

# yum install oraclelinux-developer-release-el7
# yum-config-manager --disable ol7_developer
# yum-config-manager --enable ol7_developer_UEKR6
# yum-config-manager --save --setopt=ol7_developer_UEKR6.includepkgs='wireguard-tools*'
# yum install wireguard-tools
                     

Para instalar este pacote no Oracle Linux 8, execute:

# dnf install oraclelinux-developer-release-el8
# dnf config-manager --disable ol8_developer
# dnf config-manager --enable ol8_developer_UEKR6
# dnf config-manager --save --setopt=ol8_developer_UEKR6.includepkgs='wireguard-tools*'
# dnf install wireguard-tools
                     

Cópia Lateral do Servidor NFS v4.2

A funcionalidade Cópia Lateral do Servidor NFS v4.2 é back-portada do kernel upstream e está disponível no UEK R6U1 como uma visualização técnica. Os recursos de cópia no servidor fornecem mecanismos que permitem que um cliente NFS copie dados de arquivo em um servidor ou entre dois servidores sem que os dados sejam transmitidos para frente e para trás pela rede por meio do cliente NFS. Observe que a funcionalidade intra-servidor está ativada; enquanto a funcionalidade inter-servidor está desativada por padrão. Para ativar essa funcionalidade, defina o parâmetro inter_copy_offload_enable do módulo nfsd e reinicie o serviço NFS. Você pode fazer isso temporariamente executando:

# echo y > /sys/module/nfsd/parameters/inter_copy_offload_enable
                     

Como alternativa, para tornar essa alteração permanente, edite /etc/modprobe.d/nfsd.conf para adicionar a linha:

options nfsd inter_copy_offload_enable=Y

Observe que a capacidade de fazer uma cópia do servidor depende em grande parte dos recursos do sistema de arquivos do servidor. Por exemplo, para fazer uma cópia eficiente intra-servidor de um arquivo, o sistema de arquivos de destino subjacente precisa de um instantâneo ou capacidade de clonagem para arquivos individuais.

O teste inicial indicou alguns problemas com este recurso e é amplamente considerado experimental nesta versão.

Atualizações do driver

O Unbreakable Enterprise Kernel Release 6 suporta um grande número de hardware e dispositivos. Em estreita cooperação com os fornecedores de hardware e armazenamento, a Oracle atualizou vários drivers de dispositivos das versões no Linux 5.4 principal.

Uma lista completa dos módulos de driver incluídos na atualização mais recente do UEK R6, juntamente com informações de versão, é fornecida no apêndice em Driver Modules in Unbreakable Enterprise Kernel Release 6 (x86_64).

Recursos e atualizações de driver notáveis

Os seguintes novos recursos são observados nos drivers enviados com o UEK R6U1:

  • Drivers AMD-TEE

    Os drivers AMD-TEE, amdtee e tee, são novas adições nesta versão e estão incluídos na versão 1.0, como parte de uma iniciativa mais ampla para incluir atualizações do kernel principal para a família de CPUs AMD Milan.

  • Driver de placa LAN sem fio Atheros 802.11n HTC

    O driver de placa LAN sem fio Atheros 802.11n HTC, ath9k_htc, foi corrigido e atualizado para correções de segurança, incluindo CVE-2019-19073 .

  • Driver de rede Broadcom BCM573xx

    O driver de rede Broadcom BCM573xx, bnxt_en, está disponível na versão 1.10.1 e inclui patches e atualizações fornecidas pelo fornecedor. Um patch para lidar melhor com a coleta de estatísticas em firmware mais antigo também é incluído a pedido do fornecedor. Significativamente, a manutenção de contadores de rede através de redefinições também é melhorada para que o acúmulo de contadores durante uma redefinição só ocorra quando o parâmetro irq_re_init for definido. Observe que uma alteração de upstream resulta em uma alteração no nome do dispositivo para interfaces de rede Broadcom que usam esse driver. Por exemplo, um dispositivo que pode ter sido previamente identificado como eno3d1 é agora identificado como eno3. Essa alteração resulta porque as portas no dispositivo de rede podem pertencer a diferentes funções e uma correção foi aplicada para melhorar a nomeação do dispositivo, evitando suposições sobre a funcionalidade da porta em um dispositivo.

  • Driver da série Intel Ethernet Connection E800

    O driver Linux Intel Ethernet Connection E800 Series, ice, é totalmente atualizado para a versão 0.8.2-k com patches e atualizações fornecidas pelo fornecedor para permitir o suporte a controladores e placas PCIe Ethernet Intel 800-Series mais recentes, usando o nome de código Columbiaville.

  • Driver SCSI Broadcom Emulex LightPulse Fibre Channel

    O driver SCSI Broadcom Emulex LightPulse Fibre Channel, lpfc, é atualizado para a versão 12.8.0.3 com patches e correções de bugs fornecidos pelo fornecedor.

  • Driver Broadcom MegaRAID SAS

    O driver SAS do Broadcom MegaRAID, megaraid_sas, foi atualizado para a versão 07.714.04.00-rc1. Esta atualização inclui patches fornecidos pelo fornecedor que alinham a versão do driver com a versão do kernel upstream.

  • Driver do dispositivo LSI MPT Fusion SAS 3.0

    O driver de Dispositivo LSI MPT Fusion SAS 3.0, mpt3sas, é atualizado para a versão 34.100.00.00 para incluir patches fornecidos pelo fornecedor que alinham a versão do driver à versão do kernel upstream.

  • Driver HBA QLogic Fibre Channel

    O driver HBA QLogic Fibre Channel, qla2xxx é atualizado para a versão 10.01.00.25-k e inclui um grande número de patches fornecidos pelo fornecedor para alinhar a versão do driver com a versão do kernel upstream.

  • Driver do adaptador Ethernet USB baseado em Realtek RTL8152/RTL8153

    O driver do Adaptador Ethernet USB baseado em Realtek RTL8152/RTL8153, r8152, foi atualizado para a versão 1.10.11 com patches de kernel upstream.

  • Driver do dispositivo de gerenciamento de volume Intel

    O driver Intel VMD (Volume Management Device), vmd, versão 0.6, é adicionado a essa versão do kernel e permite a manutenção de dispositivos NVMe, aproveitando a lógica de hardware fornecida pelo processador Intel Xeon. O driver agrega SSDs PCIe NVMe e se comporta de maneira semelhante a uma HBA para SATA e SAS.