Novos Recursos e Alterações no UEK R7

Novos recursos, aprimoramentos e outras alterações notáveis que foram introduzidas no UEK R7.

Resumo de Alterações Notáveis no UEK R7

A seguir, um resumo dos recursos, alterações e melhorias introduzidas no UEK R7, em relação ao UEK R6:

  • Base de kernel estável do Linux 5.15

    A versão do kernel principal da versão 5.15.0 que é usada como kernel base para o UEK R7 inclui muitos recursos de kernel upstream e melhorias em relação às versões anteriores do UEK e ao RHCK. Para obter uma lista dos novos recursos e aprimoramentos principais introduzidos nesse kernel, consulte Recursos e funcionalidade principais do Kernel.

  • Suporte a braço de 64 bits (aarch64)

    Esta versão fornece suporte aprimorado para a plataforma Arm de 64 bits (aarch64). Uma alteração significativa para a plataforma Arm é que o tamanho padrão da página foi alterado para 4 KB, em relação ao padrão anterior de 64 KB. O novo tamanho de 4 KB combina bem com as cargas de trabalho e quantidades de memória existentes na maioria dos sistemas baseados em Arm. Consulte Tamanho de Página Padrão na Plataforma Arm Alterado para 4 KB para obter informações mais detalhadas sobre essa alteração notável.

  • DTrace v2.0

    O Dtrace v2.0 continua disponível no UEK R7 e aproveita recursos de rastreamento de kernel, como o eBPF. Informações detalhadas sobre releases do DTrace e outras alterações notáveis estão disponíveis em Notas da Release do Oracle Linux: DTrace.

  • Suporte a sistemas de arquivos

    O suporte para os sistemas de arquivos Btrfs e OCFS2 está ativado no UEK R7. Os sistemas de arquivos XFS e NFS também foram aprimorados nesta versão. Para obter mais informações sobre novos recursos de sistemas de arquivos que foram introduzidos no UEK R7, consulte Sistemas de Arquivos.

Tamanho de página padrão na plataforma Arm alterado para 4 KB

O tamanho de página padrão na plataforma Arm (aarch64) de 64 bits foi alterado para 4 KB, em relação ao padrão anterior de 64 KB. O novo tamanho de 4 KB combina bem com as cargas de trabalho e quantidades de memória existentes na maioria dos sistemas baseados em Arm.

Esta alteração tem implicações importantes se você pretende fazer upgrade do kernel de uma release anterior do UEK. Consulte Sobre o Upgrade de uma Release Anterior do Oracle Linux ou UEK para o UEK R7 para obter mais informações.

Para obter informações sobre outros problemas conhecidos relacionados a essa alteração importante, consulte Known Issues for UEK R7.

Funcionalidades e Recursos Básicos do Kernel

Vários recursos principais do kernel foram implementados no kernel upstream, entre a versão 5.4 que foi usada como a versão base do kernel para o UEK R6 e a versão do kernel 5.15.0 que é usada como a versão base do kernel para o UEK R7. Embora alguns recursos tenham sido retroportados para o kernel do UEK R6 nas releases de atualização, estes são os novos recursos significativos que estão disponíveis no UEK R7:

  • Melhorias do BPF

    O UEK R7 apresenta muitas melhorias no Berkeley Packet Filter (BPF), incluindo as seguintes:

    • A introdução de Compile Once Run Everywhere no libbpf e em LLVM e BPF Type Format (BTF). Essa alteração permite que o verificador BPF use BTF no kernel para verificar o tipo do código de montagem BPF, o que permite um rastreamento BPF mais seguro e rápido.

    • O BPF trampoline, que é um recurso que permite que o código do kernel seja chamado para programas BPF com quase zero sobrecarga, está disponível para a arquitetura x86_64. O suporte ao mapa de array BPF de mapeamento de memória e outras melhorias também foram introduzidas nesta versão.

    • Suporte a BPF para chamar funções do kernel diretamente. Esse aprimoramento permite que programas BPF que chamam funções de kernel inicialmente reutilizem implementações de controle de congestionamento do TCP (Transmission Control Protocol).

    • Os programas BPF podem dormir durante a execução, simplificando o mecanismo para vincular um soquete a uma variedade de endereços ou números de porta. O novo tipo de programa BPF_PROG_TYPE_SK_LOOKUP é executado quando o kernel está procurando um soquete aberto para uma conexão de entrada. O mecanismo pode então decidir qual soquete deve receber a conexão. Este mecanismo foi adicionado como uma forma de ligar um soquete a uma variedade de endereços ou números de porta de uma forma mais simples. Atualmente, esse recurso está limitado a programas de rastreamento e de módulos de segurança.

  • Capacidade de agendamento principal incluída

    O Core Scheduling permite isolar grupos de processos que estão sendo executados no mesmo núcleo, garantindo a máxima proteção contra ataques de canais laterais. Você pode usar o agendamento principal como um método para evitar ataques de vulnerabilidade da classe Spectra, mantendo o SMT (Simultaneous Multithreading) ativado e evitando uma penalidade de desempenho para desativar o SMT.

  • Novo controlador de memória slab cgroup

    O UEK R7 apresenta um novo controlador de memória slab de grupo de controle (cgroup) que permite compartilhar memória slab entre cgroups de memória. Esta nova implementação do controlador de memória de laje visa alcançar uma utilização de laje muito melhor, compartilhando páginas de laje entre vários cgroups de memória. Além disso, a contabilidade é realizada por objeto em vez de por página. O novo recurso economiza uma quantidade significativa de memória, o que reduz bastante as ineficiências.

  • Aprimoramentos do io_uring

    A chamada do sistema io_uring, que é uma API Linux para E/S assíncrona, foi projetada para um desempenho mais alto do que a API Linux AIO anterior suportada pelo QEMU. Diversos aprimoramentos para o io_uring foram introduzidos no UEK R7, a maioria focada em E/S em rede.

    Uma melhoria de desempenho do io_uring relacionada a E/S é um novo mecanismo de reciclagem de BIO para remover algumas sobrecargas internas de gerenciamento de memória, que supostamente fornece um aumento de 10% no número de operações de E/S por segundo que o io_uring pode sustentar.

    Outras alterações notáveis para io_uring incluem Oracle ASMLib v3 + oracaleasm-support. Com esta versão, o Oracle ASMLib usa a chamada do sistema io_uring no lugar da interface do driver oracleasm legado, que foi removida no UEK R7.

  • Detecção de bloqueio de divisão

    Nesta versão, o recurso de CPU de detecção de bloqueio dividido é ativado por padrão em sistemas x86_64 que têm a capacidade para essa funcionalidade, como o processador Ice Lake. O comando de inicialização split_lock_detect permite avisar ou enviar SIGBUS (sinais de erro Bus) para aplicativos que usam bloqueios divididos. Um bloqueio de divisão ocorre quando uma instrução de CPU atômica opera em dados que abrangem duas linhas de cache. Esta operação é muito mais lenta do que uma operação atômica dentro de uma linha de cache e interrompe o desempenho em outros núcleos.

    Observe que você pode desativar esse recurso no kernel definindo split_lock_detect=off.

Alterações na Distribuição e Embalagem de Conteúdo UEK

A forma como o conteúdo é distribuído e empacotado na release do UEK mudou. A partir do UEK R7, o kernel é reempacotado e simplificado em vários RPMs separados para facilitar determinados requisitos de hardware. Um pacote meta RPM, denominado kernel-uek, continua sendo o pacote necessário para todas as instalações do UEK e mantém a compatibilidade com versões anteriores.

Por padrão, o pacote kernel-uek e suas dependências são instalados. A instalação deste pacote é igual à instalação do kernel UEK completo.

A tabela a seguir fornece mais detalhes sobre como o conteúdo do UEK R7 é distribuído e empacotado e inclui informações sobre dependências de pacotes e quaisquer outros requisitos notáveis.

Pacote

Descrição

kernel-uek

Este é um meta pacote que não contém arquivos. O pacote tem uma dependência de kernel-uek-core e kernel-uek-modules.

A instalação deste pacote é equivalente à instalação do kernel UEK completo. Este é o pacote necessário para todas as instalações do UEK e mantém a compatibilidade com as versões anteriores.

kernel-uek-core

Este pacote contém o kernel UEK e um número mínimo de módulos do kernel e é instalado junto com o pacote kernel-uek-modules. Observe que este pacote requer que o pacote linux-firmware-core também seja instalado.

kernel-uek-modules

Este pacote contém os módulos Kernel restantes necessários para a maioria das configurações do servidor. Observe que este pacote requer que o pacote linux-firmware também seja instalado.

kernel-uek-modules-extra

Este é um pacote opcional que contém módulos para hardware e subsistemas que são incomuns para servidores e suporte para determinados dispositivos, como Bluetooth, Wi-Fi e placas de captura de vídeo. Se for necessário suporte para qualquer um desses componentes, instale o pacote manualmente a partir do repositório yum.

Você pode listar os módulos explicitamente fornecidos por este pacote executando:

rpm -q -l kernel-uek-modules-extra

linux-firmware-core

Esse pacote contém componentes de firmware de núcleo e é uma dependência para o pacote kernel-uek-core.

linux-firmware

Esse pacote contém componentes de firmware que não são fornecidos no pacote linux-firmware-core e é uma dependência para o pacote kernel-uek-modules.

Observe que este pacote requer que o pacote linux-firmware-core também seja instalado.

Sistemas de Arquivos

Os seguintes recursos e aprimoramentos de sistemas de arquivos foram introduzidos no UEK 7:

Btrfs

Observação

O tamanho de página padrão na plataforma Arm de 64 bits foi alterado para 4 KB, em relação ao padrão anterior de 64 KB. Se você estiver executando o Oracle Linux 8 em um sistema baseado em Arm com uma versão UEK anterior, essa alteração afetará os sistemas de arquivos Btrfs, por exemplo, sistemas que estão executando o Raspberry Pi em uma imagem do desenvolvedor do Oracle Linux 8. Antes de atualizar para o UEK R7, você deve migrar dados e se preparar para reformatar os sistemas de arquivos para evitar qualquer perda de dados e garantir que o sistema não se torne não inicializável. Consulte Tamanho de Página Padrão na Plataforma Arm Alterado para 4 KB.

Esta versão apresenta vários aprimoramentos de desempenho e recuperação de dados do Btrfs, bem como alguns aprimoramentos do RAID 1, suporte para semáforos de leitura e gravação do Linux e suporte a soma de verificação. Outras alterações notáveis para Btrfs incluem o seguinte:

  • Nova opção de montagem de resgate adicionada

    Uma nova opção de montagem de resgate para agrupar todas as opções de montagem existentes para recuperação. usebackuproot é agora um alias para rescue=usebackuproot; nologreplay é um alias para rescue=nologreplay.

  • Corte de SSD assíncrono disponível

    O corte assíncrono do SSD está disponível em Btrfs. Por motivos de desempenho e desgaste, as unidades de armazenamento de estado sólido se beneficiam do recebimento de notificações quando um bloco de disco não é usado. Esta operação é referida como discard ou trim e é executada automaticamente por Btrfs. Quando um arquivo é excluído, o Btrfs notifica a unidade de que os blocos pertencentes ao arquivo não estão mais sendo usados. Anteriormente, essas notificações ocorriam de forma síncrona, o que significa que as notificações de corte foram enviadas antes de encerrar a operação de exclusão, o que pode prejudicar o desempenho. Essas notificações agora são enviadas de forma assíncrona.

  • melhorias de desempenho fsync()

    Os seguintes aprimoramentos do fsync() foram introduzidos:

    • Melhor desempenho do fsync() (diminuição de 12% na latência máxima relatada pelo dbench).

    • Aceleração substancial do fsync paralelo, reduzindo o número de pesquisas e contenção da árvore de soma de verificação.

    • Aceleração substancial do fsync paralelo para arquivos com extensões reflinked/deduped. Para os empregos de 16 a 1024, em média, o rendimento é melhorado em cerca de 50%; o tempo de execução é diminuído em cerca de 30%.

  • Pré-buscar folhas de tronco no suporte de montagem

    Pré-buscar folhas de tronco na montagem, o que melhora a velocidade de montagem em sistemas de arquivos com vários TB.

  • suporte ao mapeamento de fs-verity e ID

    O suporte para o mapeamento de ID e fs-verity e o DAMON para melhorar o recurso de monitoramento de padrões de acesso à memória de processos específicos está incluído nesta versão. A camada genérica fs-verity, que já está disponível nos sistemas de arquivos ext4 e F2FS, fornece proteção transparente de integridade e autenticidade de arquivos somente leitura. O recurso também inclui o recurso para pontos de montagem mapeados por ID, que permite mapear os IDs de usuário e grupo de uma montagem para outra.

ext4

O sistema de arquivos ext4 continua sendo suportado nas releases do UEK.

OCFS2

O OCFS2 continua sendo suportado nas releases do UEK. Para o Oracle Linux 9, os pacotes de espaço do usuário são atualizados para ativar o suporte ao OCFS2 nesta versão.

XFS

Observação

O tamanho de página padrão na plataforma Arm de 64 bits foi alterado para 4 KB, em relação ao padrão anterior de 64 KB. Como resultado, se você estiver executando o Oracle Linux 8 em um sistema baseado em Arm com uma versão UEK anterior e tiver alterado manualmente um sistema de arquivos XFS para um tamanho de bloco maior que 4 KB, deverá migrar dados e se preparar para reformatar os sistemas de arquivos antes de fazer upgrade para o UEK R7. Os sistemas com sistemas de arquivos XFS configurados para usar um tamanho de bloco de 4 KB não são afetados. Consulte Tamanho de Página Padrão na Plataforma Arm Alterado para 4 KB.

As seguintes alterações notáveis do sistema de arquivos XFS foram introduzidas no UEK R7:

  • Aprimoramentos para operações XFS 2038+ e DAX e redução de metadados DAX.

    A capacidade para operações DAX XFS 2038+, por arquivo e por diretório e a redução de metadados DAX foram adicionadas nesta versão.

  • O sistema de arquivos XFS inclui novos recursos

    O sistema de arquivos XFS suporta duas novas opções: bigtime e inobtcount. A opção bigtime fornece suporte para carimbos de data/hora além do ano de 2038. A opção inobtcount reduz o tempo de montagem em sistemas de arquivos grandes. Por padrão, essas opções são desativadas. Para ativar estas opções ao criar um sistema de arquivos XFS, use o comando mkfs.xfs da seguinte forma:

    sudo mkfs.xfs -m bigtime=1,inobtcount=1
    CUIDADO

    A ativação dessas opções mkfs.xfs cria um sistema de arquivos que é desmontável pelos kernels mais antigos, nos quais essas opções não são suportadas.

Protocolo de Comunicação WireGuard

O protocolo de comunicação WireGuard está disponível no UEK R7 para redes IPv4 e IPv6. O WireGuard usa redes privadas virtuais criptografadas (VPNs) passando o tráfego pelo UDP (User Datagram Protocol).

Observação

O WireGuard foi anteriormente ativado como um recurso de visualização de tecnologia no UEK R6U1, com suporte total introduzido no UEK R6U3.

O WireGuard usa criptografia de chave pública para identificação e criptografia, enquanto o OpenVPN usa certificados para essas tarefas. Com o WireGuard, a geração e o gerenciamento seguros de chaves são tratados em segundo plano. Embora a IPsec ainda seja o padrão para comunicação de rede segura, o WireGuard está ganhando popularidade porque é mais fácil de configurar e implantar.

Para obter mais informações e instruções passo a passo, consulte Oracle Linux: Configuring Virtual Private Networks.

RDMA

O UEK R7 inclui recursos RDMA (Remote Direct Memory Access) que são fornecidos no kernel upstream, com a adição da funcionalidade Ksplice e DTrace. O RDMA permite o acesso direto à memória entre dois sistemas conectados por uma rede. O RDMA facilita a rede de alto rendimento e baixa latência em clusters.

A partir do Oracle Linux 9, o processo de instalação de pacotes RDMA suportados pela Oracle foi simplificado usando novos pacotes de espaço do usuário, um canal ULN dedicado e um repositório yum para pacotes relacionados a RDMA. Para obter mais informações, consulte Instalando e Fazendo Upgrade de Pacotes RDMA Suportados pela Oracle no Oracle Linux.

Se você estiver executando o Oracle Linux 8, o processo de instalação de pacotes RDMA suportados pela Oracle permanecerá o mesmo das versões anteriores.

Segurança

Os seguintes recursos de segurança foram introduzidos no UEK 7:

Novo Kernel Keyring .machine introduzido

O keyring do kernel .machine foi introduzido no UEK R7. Você pode usar esse keyring como uma âncora de confiança no nível do kernel para qualquer operação que use chaves assimétricas. O keyring .machine tem o mesmo nível de confiança no kernel que os keyrings .builtin_trusted_keys e .secondary_trusted_keys. Semelhante aos keyrings incorporados e secundários, você pode usar chaves no keyring .machine para fazer o seguinte:

  • Realize a validação da assinatura do módulo kernel.

  • Adicione mais chaves ao keyring .secondary_trusted_keys.

  • Servir como uma CA para chaves de avaliação IMA.

Observe que as chaves contidas no keyring .machine devem ser um certificado de CA raiz. Para se qualificar como um certificado da CA raiz, os dois requisitos a seguir devem ser atendidos:

  • O certificado X.509 deve ser autoassinado.

  • O certificado X.509 deve conter extensões X509v3 com basicConstraints=critical,CA:TRUE

Também é altamente recomendável que o campo keyUsage seja definido com keyCertSign.

Diferentemente das releases anteriores do UEK, as chaves contidas no keyring .platform no UEK R7 só podem ser usadas para kexec. Além disso, você não pode usar as chaves .platform para qualquer outra finalidade; enquanto, em releases UEK anteriores, você poderia usar o keyring .platform para validação de assinatura do módulo kernel, mas elas não poderiam ser usadas para nenhuma outra operação de chave do kernel.

A maneira mais fácil de adicionar chaves ao keyring .machine é inscrevê-las com o utilitário mokutil. Observe que este método requer que você primeiro crie um par de chaves X.509.

SGX ativado na arquitetura Intel

O Unbreakable Enterprise Kernel Release 7 habilita a tecnologia Intel Software Guard Extensions (SGX) no processador Intel Xeon Scalable de terceira geração (nome de código Ice Lake).

Os aplicativos podem usar essa funcionalidade de hardware para preencher regiões protegidas de código de usuário e dados, chamadas enclaves. Quando ativado, o novo hardware protege o código e os dados do enclave contra acesso e modificação externos. Enclaves fornecem um local para armazenar segredos e, em seguida, processar dados com esses segredos, como o software DRM. A SGX auxilia no fornecimento de proteção contra muitas ameaças conhecidas de segurança cibernética, reduzindo assim a superfície de ataque dos servidores usando enclaves seguros, que protegem as informações de processos executados com um privilégio maior.

Zonefs para Dispositivos de Bloco Zonado

O recurso zonefs (sistema de arquivos de zona) é um sistema de arquivos simples que expõe cada zona de um dispositivo de bloco zoneado como um arquivo. Ao contrário de um sistema de arquivos compatível com POSIX com suporte ao dispositivo de bloco zoneado nativo, por exemplo, f2fs, zonefs não oculta a restrição de gravação sequencial de dispositivos de bloco zoneado para o usuário. Os arquivos que representam zonas de gravação sequenciais do dispositivo devem ser gravados sequencialmente, a partir do final do arquivo (anexar apenas gravações).

Recursos Obsoletos e Removidos

Os seguintes recursos estão obsoletos, removidos ou não são mais suportados no UEK R7:

  • /dev/raw Dispositivo Removido

    O driver /dev/raw, que foi marcado como obsoleto no ano de 2005, foi removido nesta versão. Nas versões anteriores, os nós do dispositivo em /dev/raw forneciam uma interface para direcionar a semântica de E/S para aplicativos que foram gravados antes da introdução do flag de arquivo O_DIRECT no Linux. Essa alteração também torna o comando raw que faz parte do pacote util-linux não funcional.

    Para obter semântica de arquivo de E/S direta, use a configuração apropriada para o arquivo de E/S, da seguinte forma:

    • Para C, use o flag O_DIRECT como parte da chamada do sistema open().

    • Para Java, use o modo RandomAccessFile, "rwd", (Aberto para leitura e gravação).

    • No shell, você pode usar os sinalizadores dd, iflag=direct (para leitura) e oflag=direct (para gravação).

  • Módulo resilient_rdmaip Obsoleto

    O módulo resilient_rdmaip está obsoleto no UEK R7. Este módulo pode ser removido em uma versão UEK posterior.

  • Driver Cisco fnic 1.6 não suportado

    A Cisco não suporta mais o Driver HBA Cisco FCoE (fnic 1.6) proveniente do kernel upstream e que está disponível na maioria dos kernels, incluindo UEK R5, UEK R6 e UEK R7. A Cisco fornece um driver UCS Linux totalmente suportado (versão 2.0.0.83 e posterior) que é testado e compatível com o Oracle Linux, com o UEK R5 e versões UEK posteriores, na página de download do software Cisco. O pacote de drivers inclui recursos que não estão disponíveis no módulo de driver incluído no momento, como suporte a NVMe e suporte a várias filas.

    Os clientes que estão executando o Oracle Linux em servidores Cisco devem instalar o pacote de driver Cisco para receber correções de driver, atualizações de driver, novo suporte a hardware e novo suporte a recursos. Entre em contato com a Cisco para obter mais informações sobre soluções de driver no Oracle Linux.

  • Módulo Kernel oracleasm Removido

    O módulo kernel oracleasm é removido no UEK R7. Observe que este módulo continua a ser suportado nas releases UEK R5 e UEK R6.

    Observe que o Oracle ASMLib continua a ser suportado usando interfaces io_uring. Para obter mais informações, consulte Recursos e Funcionalidades Principais do Kernel.

  • Módulo Kernel DRBD Removido

    O módulo do kernel DRBD (Distributed Replicated Block Device) e o pacote drbd-utils são removidos no UEK R7. Observe que o módulo do kernel DRBD e seu pacote associado, que foi introduzido como uma visualização de tecnologia no UEK R4 e obsoleto no UEK R6U3, continua a ser ativado no UEK R5 e no UEK R6.