Nuevas funciones y cambios UEK 8

Nuevas funciones, mejoras y otros cambios notables que se introducen en UEK 8.

Resumen de cambios notables en UEK 8

A continuación, se muestra un resumen de las funciones, los cambios y las mejoras que se introducen en UEK 8, en relación con UEK R7:

  • Base de núcleo estable de Linux 6.12

    La versión de núcleo mainline 6.12 que se utiliza como núcleo base para UEK 8 incluye muchas funciones y mejoras de núcleo ascendente con respecto a las versiones anteriores de UEK y con respecto a RHCK en Oracle Linux 9.

  • Se ha actualizado el empaquetado del módulo de núcleo

    Los módulos de núcleo se distribuyen en más paquetes atómicos para reducir la superficie de ataque en el núcleo, mejorar el mantenimiento del módulo de núcleo y también mejorar la visibilidad del desuso del módulo. Consulte Changes to UEK Content Distribution and Packaging para obtener una vista completa de los paquetes de núcleo en UEK 8.

  • Tamaño de página base de 64 k en el brazo

    En esta versión, una versión del núcleo con un tamaño de página base de 64 k está disponible solo para unidades de computación basadas en Ampere Arm en Oracle Cloud Infrastructure. El tamaño de página base de 64 k mejora la forma en que las plataformas Arm procesan cargas de trabajo con juegos de datos de memoria grandes y contiguos. Consulte (aarch64) 64k Base Page Size on Arm para obtener más información.

  • Otras actualizaciones de la plataforma

    Se incluyen varias actualizaciones genéricas de la plataforma. Consulte Generic Platform Updates. Algunas otras actualizaciones de la plataforma específicas de Intel están disponibles, incluidas las funciones de seguridad como las extensiones Intel Software Guard y el nuevo soporte de hardware para la tecnología Intel Quick Assist (QAT). Consulte Actualizaciones de plataformas Intel.

  • Programador completamente justo (CFS) reemplazado por la primera fecha límite virtual elegible (EEVDF)

    El CFS es reemplazado por el programador EEVDF para mejorar el comportamiento de programación y reducir la complejidad de la configuración. Consulte EEVDF Scheduler Replaces CFS.

  • Gestión de memoria mejorada

    Muchas mejoras en la gestión de memoria aparecen en UEK 8, incluidas varias optimizaciones de asignación de memoria, mejoras en el rendimiento a través de la introducción de estructuras de folio y algunas mejoras en el manejo de páginas enormes. Consulte Gestión de memoria.

  • Actualizaciones de sistemas de archivos

    La compatibilidad con los sistemas de archivos Btrfs y OCFS2 está activada en UEK 8. En esta versión, hay mejoras significativas disponibles para los sistemas de archivos Btrfs, XFS y NFS. Para obtener más información sobre las nuevas funciones de sistemas de archivos que se presentan en UEK 8, consulte Sistemas de archivos.

  • ASMLib v3 y io_uring

    En esta versión de UEK, que también admite ASMLib v3, se incluyen varias mejoras de io_uring. ASMLib v3 utiliza io_uring para la función Gestión Automática de Almacenamiento de Oracle Database. Consulte io_uring Enhancements y ASMLib v3.

  • Actualizaciones de redes

    En UEK 8 se incluyen varias mejoras generales de redes. Consulte Mejoras de redes generales.

  • Actualizaciones relacionadas con la seguridad

    Algunas otras actualizaciones relacionadas con la seguridad se incluyen en esta versión de UEK, incluidas algunas actualizaciones del generador de números aleatorios que ayudan a mejorar el rendimiento y la seguridad. Consulte Mejoras en el generador de números aleatorios. La utilidad de descarga de TLS del núcleo está activada en UEK 8. Consulte KTLS.

  • Filtro de paquetes de Berkeley

    Hay varias mejoras disponibles en el filtro de paquetes de Berkeley (BPF) utilizado para el rastreo, incluido un asignador de memoria dedicado, un nuevo buffer de anillo de usuario y el uso de módulos resilientes de formato de tipo BPF (BTF) para usar BTF para módulos fuera de árbol. Consulte Mejoras del filtro de paquetes de Berkeley (BPF).

  • DTrace v2.0

    Dtrace v2.0 sigue estando disponible en UEK 8 y aprovecha las funciones de rastreo del núcleo, como eBPF. Puede encontrar información detallada sobre las versiones de DTrace y otros cambios notables en las Notas de la versión de Oracle Linux: DTrace.

    .

Cambios en la distribución y empaquetado de contenido UEK

En la siguiente tabla, se proporcionan detalles sobre cómo se distribuye y empaqueta el contenido de UEK 8, y se incluye información sobre las dependencias de paquetes y otros requisitos importantes.

Nota

El empaquetado del núcleo se actualiza en UEK 8 y difiere de las versiones anteriores de UEK. En particular, los módulos de núcleo ahora se envían en una recopilación de paquetes separados. La separación de módulos de los paquetes del núcleo central ayuda a reducir la sobrecarga, proporciona un mecanismo para minimizar la superficie de ataque y mejora el mantenimiento del módulo del núcleo.

Los archivos de configuración para identificar los módulos a los que se deniega la carga se renombran de "lista negra" a "lista de denegación" como parte de la iniciativa de Oracle para utilizar un lenguaje más inclusivo en sus productos.

Además, algunas herramientas de la utilidad de núcleo que se agruparon en el paquete kernel-uek-core en versiones anteriores se mueven a un paquete independiente, kernel-uek-tools.

Puede mostrar los módulos disponibles en cada paquete ejecutando:

rpm -q -l kernel-uek-modules-<ext>

Para buscar el paquete al que pertenece un módulo que está disponible en el sistema, puede ejecutar:

rpm -q -f /lib/modules/$(uname -r)/<path to module>

Si ejecuta el comando modprobe para un módulo y el paquete al que pertenece el módulo no está instalado, la salida le notifica y proporciona el nombre del paquete que debe instalar. Tenga en cuenta que puede que necesite actualizar el paquete kmod a la última versión para que esta funcionalidad funcione.

sudo modprobe wl1251_sdio
modprobe: FATAL: Module wl1251_sdio not found in directory /lib/modules/6.12.0-0.20.20.el9uek.x86_64, 
ensure the following package is installed: kernel-uek-modules-wireless-6.12.0-0.20.20.el9uek.x86_64
      

Un archivo de asignación de paquetes se incluye en /lib/modules/$(uname -r)/modules.packages y se envía en el paquete kernel-uek-core para UEK 8 y posteriores. También puede utilizar este archivo para identificar el paquete de módulo que contiene un controlador determinado.

Paquete

Descripción

kernel-uek

Este es un metapaquete que no contiene ningún archivo.

En Oracle Linux 9, el paquete tiene las siguientes dependencias:

  • kernel-uek-core
  • kernel-uek-modules-core
  • kernel-uek-modules
  • kernel-uek-modules-desktop
  • kernel-uek-modules-extra-netfilter
  • kernel-uek-modules-usb
  • kernel-uek-modules-wireless

La instalación de este paquete es igual a la instalación del núcleo UEK completo. La instalación de este paquete mantiene la compatibilidad con las versiones anteriores.

kernel-uek-core

Este paquete contiene los archivos binarios y de soporte del núcleo UEK, que se copian en /boot. El paquete se instala junto con el paquete kernel-uek-modules-core y el paquete kernel-uek-modules. Tenga en cuenta que este paquete requiere que también se instale el paquete linux-firmware-core.

kernel-uek-modules-core

Este paquete contiene un número mínimo de módulos del núcleo central y archivos de soporte utilizados para los sistemas de ingeniería de Oracle. El paquete es una dependencia de kernel-uek-core y se instala por defecto.

kernel-uek-modules

Este paquete contiene varios módulos que se utilizan normalmente en la mayoría de las configuraciones del servidor. Tenga en cuenta que este paquete requiere que también se instale el paquete linux-firmware.

kernel-uek-modules-desktop

Este paquete contiene módulos para hardware de tipo escritorio.

Este paquete se puede extraer para endurecer el sistema en muchas plataformas de servidor si no se utiliza ninguno de los módulos.

kernel-uek-modules-usb

Este paquete contiene controladores USB.

Este paquete se puede extraer para endurecer el sistema en muchas plataformas de servidor si no se utiliza ninguno de los módulos.

kernel-uek-modules-wireless

Este paquete contiene controladores inalámbricos.

Este paquete se puede extraer para endurecer el sistema en muchas plataformas de servidor si no se utiliza ninguno de los módulos.

kernel-uek-modules-extra-netfilter

Este paquete contiene módulos netfilter poco comunes.

Este paquete se puede extraer para endurecer el sistema en muchas plataformas de servidor si no se utiliza ninguno de los módulos.

kernel-uek-modules-deprecated

Este paquete contiene módulos que planeamos eliminar en futuras versiones.

Este paquete es opcional y puede instalar el paquete manualmente desde el repositorio de yum o el canal ULN.

Los módulos incluidos en este paquete están en desuso y es posible que se eliminen en futuras versiones.

kernel-uek-modules-extra

Este paquete contiene módulos adicionales para configuraciones de servidor, pero que no se suelen utilizar.

Este paquete es opcional y puede instalar el paquete manualmente desde el repositorio de yum o el canal ULN.

kernel-uek-tools

Este paquete contiene herramientas que son necesarias para satisfacer otras dependencias de generación y tiempo de ejecución en la base de código tools/perf y que se pueden utilizar después del inicio para interactuar con el núcleo. Por ejemplo, la herramienta perf utilizada para el análisis de rendimiento del sistema se incluye en este paquete.

linux-firmware-core

Este paquete contiene componentes de firmware principales y es una dependencia para el paquete kernel-uek-core.

linux-firmware

Este paquete contiene componentes de firmware que no se proporcionan en el paquete linux-firmware-core y es una dependencia para el paquete kernel-uek-modules.

Tenga en cuenta que este paquete requiere que también se instale el paquete linux-firmware-core.

Para el endurecimiento de la seguridad, le recomendamos que elimine cualquiera de los paquetes kernel-uek-modules-* que no sean necesarios para el sistema. Para eliminar paquetes:

  1. Marque los paquetes de módulos principales que necesita en el sistema para evitar que se eliminen. Por ejemplo:

    sudo dnf mark install kernel-uek-core kernel-uek-modules
  2. Elimine los paquetes de módulos no utilizados y el metapaquete kernel-uek del sistema:

    sudo dnf erase kernel-uek-modules-desktop kernel-uek

(aarch64) Tamaño de página base de 64k en el brazo

Además de la creación estándar de UEK para Arm (aarch64), que define un tamaño de página base de 4k, un paquete kernel-uek64k que define un tamaño de página base de 64k solo está disponible para unidades de computación basadas en Ampere Arm en Oracle Cloud Infrastructure. Para casos de uso distintos de OCI, el paquete kernel-uek64 solo está disponible como vista previa técnica. El paquete kernel-uek64k está disponible para Oracle Linux 9 y versiones posteriores.

El núcleo de tamaño de página de 64 k es una opción útil para plataformas Ampere (basadas en Arm) que procesan cargas de trabajo con juegos de datos de memoria grandes y contiguos, y pueden lograr un mejor rendimiento para algunos tipos de operaciones que requieren mucha memoria y CPU.

El núcleo de tamaño de página 4k es útil para entornos más pequeños, donde minimizar el uso de memoria física del sistema es una prioridad.

Tenga en cuenta que el núcleo de tamaño de página de 4 k y el núcleo de tamaño de página de 64 k no difieren en la experiencia del usuario, ya que el espacio de usuario es el mismo.

Después de instalar un sistema con kernel-uek64k, no se admite el cambio a un tamaño de página del núcleo de 4 k.

Instalación de kernel-uek64k

Nota

El único tamaño de página de las unidades de computación NVIDIA Grace está definido en 64 k por defecto. Opcionalmente, puede cambiar del tamaño de página por defecto de 4 k al tamaño de página de 64 k en las unidades Ampere.
Nota

La instalación de kernel-uek64k en sistemas fuera de Oracle Cloud Infrastructure (OCI) solo está disponible como vista previa técnica. No instale este núcleo en sistemas de producción fuera de OCI.

Para instalar kernel-uek64k en un sistema instalado con el tamaño de página 4k estándar kernel-uek:

  1. Instale el paquete kernel-uek64k.
    sudo dnf install -y kernel-uek64k
  2. Defina el núcleo de tamaño de página de 64 k como núcleo predeterminado.
    sudo grubby --set-default=$(echo /boot/vmlinuz*64k)

    Tenga en cuenta que si tiene instalado más de un núcleo de página de 64 k, debe declarar explícitamente el núcleo que desea que sea el predeterminado. Por ejemplo:

    sudo grubby --set-default=/boot/vmlinuz-6.12.0-0.20.20.el9uek.aarch64.64k
  3. Reinicio del sistema.
    sudo reboot
  4. Después de reiniciar el sistema, verifique que el tamaño de la página sea de 64 k.
    getconf PAGESIZE

    Si PAGESIZE devuelve 65536, se carga el núcleo de 64 k. Si PAGESIZE devuelve 4096, el núcleo 4k se carga y debe comprobar que el núcleo predeterminado esté configurado correctamente.

    También puede comprobar que el núcleo en ejecución contiene la cadena 64k, por ejemplo:

    uname -a|grep 64k
  5. Si el sistema está ejecutando el núcleo de 64 k, continúe con la eliminación de los paquetes del núcleo de tamaño de página de 4 k para evitar futuros conflictos.
    sudo dnf erase kernel-uek-core

Actualizaciones genéricas de la plataforma

Algunas actualizaciones genéricas de la plataforma están disponibles en UEK 8. Las actualizaciones incluyen:

  • Detección de bloqueo dividido para operaciones en memoria que abarcan dos líneas de caché, como el acceso a memoria desalineada. Consulte también https://docs.kernel.org/arch/x86/buslock.html

  • Shadow Stacks para el espacio de usuario, utilizando la tecnología de aplicación de flujo de control (CET) de x86 para proporcionar protección contra ataques de programación orientados al retorno. Esta implementación funciona mediante el mantenimiento de una pila secundaria mediante un tipo de memoria especial que tiene protecciones contra la modificación. Consulte también https://docs.kernel.org/arch/x86/shstk.html.

  • El seguimiento de la profundidad de llamadas se implementa para mejorar el rendimiento en el código de mitigación de vulnerabilidades de seguridad Retbleed.

  • La activación de CPU x86 se actualiza para que los núcleos de CPU secundarios se inicien en paralelo a fin de mejorar los tiempos de inicio del núcleo en sistemas con un alto recuento de núcleos.

  • Emulación de 32 bits en núcleos x86_64 con el parámetro de línea de comandos ia32_emulation. Cuando se establece en true, puede cargar programas de 32 bits y ejecutar llamadas del sistema de 32 bits.

Actualizaciones de la plataforma Intel

Algunas actualizaciones de la plataforma Intel se incluyen en UEK 8. Entre los elementos notables se incluyen:

  • Intel Software Guard Extensions (SGX2), una implementación basada en hardware de Enclave Dynamic Memory Management (EDMM), es una versión mejorada de una tecnología de seguridad que puede proteger datos confidenciales y código aislándolos en regiones de memoria privada llamadas enclaves. SGX2 presenta nuevas funciones, como la gestión de memoria dinámica, para que los enclaves puedan cambiar el tamaño y gestionar su memoria durante el tiempo de ejecución. Esta actualización es importante para las aplicaciones con cargas de trabajo dinámicas o requisitos de memoria más grandes, que requieren una arquitectura más escalable. SGX2 proporciona una sólida confidencialidad e integridad para cargas de trabajo confidenciales tanto en entornos locales como en la nube. Consulte https://www.intel.com/content/www/us/en/support/articles/000058764/software/intel-security-products.html.
  • Interrupciones flexibles de espacio de usuario de devolución y entrega de eventos (FRED). Consulte también https://docs.kernel.org/arch/x86/x86_64/fred.html.

  • Exploración en campo para ayudar a probar el estado de la CPU mediante la detección de problemas que no se detectan mediante comprobaciones de paridad o ECC. Consulte también https://docs.kernel.org/arch/x86/ifs.html.

  • La funcionalidad de la tecnología de asistencia rápida (QAT) se actualiza para admitir procesadores Intel Xeon de 4ª generación.

  • Enmascaramiento de direcciones lineales (modo LAM_U57) para cambiar la comprobación que se aplica a las direcciones lineales de 64 bits, de modo que el software pueda utilizar bits de direcciones no traducidos para almacenar metadatos. LAM_U57 puede utilizar 6 bits de metadatos en los bits 62 a 57.

El programador EEVDF sustituye el CFS

La primera fecha límite virtual elegible (EEVDF) es un nuevo programador de núcleo que reemplaza al programador completamente justo (CFS). EEVDF proporciona una mejor política de programación para el núcleo y reduce la complejidad de la configuración y mejora el comportamiento de programación.

Gestión de Memoria

Hay varias actualizaciones importantes de gestión de memoria disponibles en UEK 8 con cambios ascendentes que se incluyen de v5.15 a v6.12.

  • La estructura de datos de folios reemplaza la página de estructura para proporcionar una mejor abstracción para la gestión de páginas. Folios es una nueva estructura de datos que representa una o más páginas de memoria. La nueva estructura reduce la confusión de tipos y la sobrecarga de memoria.
  • Las páginas de gran tamaño se mejoran con varias actualizaciones útiles, que incluyen:
    • Actualización para manejar fallos de TLB enormes cuando se utiliza el bloqueo por VMA. Las operaciones de gestión de memoria, como los fallos de página y la asignación de memoria, se pueden manejar de forma más detallada y eficaz, lo que reduce la contención y mejora la simultaneidad.
    • THP multitamaño para memoria anónima, que permite la asignación de folios mayores que el tamaño de página base pero menores que el tamaño de PMD.
    • Dividir los THP infrautilizados y mejorar el THP = siempre política. Estos cambios mejoran el sobreaprovisionamiento de THP en áreas de memoria a las que se accede escasamente.
    • El indicador madvise() de MADV_DONTNEED funciona en páginas hugetlb y puede ser útil para desasignar y liberar páginas hugetlb asignadas privadas.
    • El indicador madvise() de MADV_COLLAPSE reduce las páginas en una página enorme y transparente.
  • Mejoras continuas en el código de grupos de control de memoria, memcg, para desacoplar los campos v1 en el código de la base de código v2.
  • Una nueva interfaz sysfs, /proc/sys/vm/enable_soft_offline, está disponible para que pueda desactivar la desconexión automática de páginas. Esta función puede ser útil para gestionar la desvinculación de páginas del espacio de usuario.
  • Optimizaciones de asignación de memoria:

    • Maple Tree reemplazó a Red-Black Trees (RB Trees) por la gestión de áreas de memoria virtual (VMA) para un mejor rendimiento con consultas, inserciones y eliminaciones más rápidas.
    • Introdujo un mecanismo para nombrar los VMA anónimos para mejorar la depuración y la creación de perfiles.
    • Bloqueo de mmap por VMA para mejorar la simultaneidad y reducir la contención en aplicaciones multithread con muchos VMA.
    • Introducción de la estructura de datos ptdesc para optimizar la gestión de tablas de páginas mediante la desvinculación de los metadatos de página de la estructura de datos page.

Sistemas de archivos

Las siguientes funciones y mejoras de sistemas de archivos se introducen en UEK 8:

Btrfs

Los siguientes cambios notables en el sistema de archivos Btrfs se introducen en UEK 8:

  • Los datos comprimidos se pueden enviar o recibir sin transformación, y los fragmentos de datos de más de 64 K ahora se gestionan para las escrituras.

  • Un nuevo árbol de grupo de bloques de árbol mejora los tiempos de montaje y las mejoras en el código de grupo de bloques reducen la fragmentación.

  • La contabilidad de cuotas se simplifica. Se pueden utilizar cuotas simples en lugar de grupos de cuotas para realizar un seguimiento sencillo del uso del espacio mediante el enlace de extensiones a sus subvolúmenes. Este enfoque puede mejorar el rendimiento, pero las cuotas simples no pueden realizar un seguimiento de los datos compartidos, por lo que se adaptan mejor a los entornos en los que las extensiones son inmutables y persisten más tiempo que cualquier copia.

  • La introducción de un FSID temporal permite montar dispositivos clonados. El sistema de archivos obtiene un UUID generado aleatoriamente en el montaje.

  • Las comprobaciones de escritura de NOCOW mejoradas mejoran el rendimiento en un 9 %.

  • Una nueva opción de montaje discard=async está activada de manera predeterminada para los dispositivos que admiten recortar/desechar, aplicando desecho asíncrono para todo el sistema de archivos.

  • La opción de montaje ignoremetacsums ignora los totales de control de metadatos no válidos y la opción de montaje ignoresuperflags se puede definir para ignorar los indicadores de superbloque que rastrean el progreso de conversión.

  • Las tareas de envío y reubicación, como balance, eliminación de dispositivos, reducción y reclamación de grupos de bloques, se ejecutan en paralelo.

  • Los dispositivos se pueden agregar durante un balance en pausa.

XFS

Los siguientes cambios notables del sistema de archivos XFS se introducen en UEK 8:

  • Ahora puede montar un sistema de archivos con un tamaño de bloque mayor que el tamaño de página.

  • Hay recuentos de extensiones grandes disponibles para imágenes de disco virtual grandes.

  • Las confirmaciones de contenido de archivos atómicos ya están disponibles.

  • La reparación y el fsck en línea totalmente autónomos están disponibles como vista previa técnica.

  • Una actualización del comando mkfs.xfs establece un tamaño mínimo del sistema de archivos XFS en 300 MB para evitar la creación de sistemas de archivos pequeños que causaron problemas de rendimiento y redundancia. Este cambio difiere del comando incluido en el paquete xfsprogs anterior disponible en el repositorio ol9_baseos_latest en los sistemas Oracle Linux 9.

NFS

Los siguientes cambios notables en el sistema de archivos NFS se introducen en UEK 8:

  • La función READ_PLUS de NFSv4.2 está activada por defecto en el núcleo para mejorar el manejo de archivos dispersos mediante la inclusión de una descripción de agujeros o bloques de datos que no se inicializan.

  • Varias funciones de protocolo antiguas para NFS se eliminan en UEK 8. Consulte Funciones en desuso y eliminadas.

Mejoras en el filtro de paquetes de Berkeley (BPF)

Hay varias actualizaciones importantes disponibles en UEK 8 para el filtro de paquetes de Berkeley (BPF), que incluyen:

  • Se añade la introducción de un asignador de memoria BPF dedicado para mejorar la fiabilidad de las asignaciones realizadas dentro de los programas BPF, que pueden ejecutarse en una amplia variedad de contextos.

  • Adición de un nuevo tipo de mapa BPF de buffer de anillo de usuario para la transferencia asíncrona de mensajes y una transferencia de datos más rápida entre un programa BPF y el espacio de usuario.

  • Los programas BPF ahora pueden llamar a las funciones del núcleo desde un módulo cargable, pueden acceder y almacenar objetos task_struct y pueden usar valores de tiempo absolutos.

  • Se incluyen funciones auxiliares más amigables, como bpf_trace_vprintk, y también auxiliares destructivos, como crash_kexec.

  • Los programas BPF pueden adjuntar funciones de filtro a kfuncs. El filtro puede limitar los contextos desde los que se puede llamar al kfunc.

  • La información de formato de tipo BPF (BTF) resistente para módulos se incluye de modo que los módulos fuera de árbol puedan definir BTF que funcione durante la vida útil de una versión UEK.

  • El trampolín BPF ahora está disponible para las plataformas aarch64 para proporcionar una ejecución más rápida del programa de rastreo BPF utilizando los programas Fentry y Fexit.
  • Enganches BPF:

    • Para ver y filtrar paquetes completos.

    • Para cambiar el protocolo solicitado para un nuevo socket, principalmente para provocar que los programas que solicitan conexiones TCP utilicen TCP de rutas múltiples en su lugar de forma transparente.

Mejoras de io_uring

io_uring es una interfaz de llamada del sistema para gestionar operaciones de E/S asíncronas de dispositivos de almacenamiento. Se proporcionan varias funciones y mejoras en la implementación que está disponible en UEK 8 y es posible que algunas de ellas se hayan devuelto a versiones anteriores de UEK. Las actualizaciones incluyen muchas optimizaciones para la seguridad y el rendimiento. Las nuevas características y cambios significativos incluyen:

  • io_uring ahora soporta el envío y la recepción de información de protección T10 junto con el buffer de datos.

  • Operaciones para getsockopt(), setsockopt(), bind(), listen() y waitid().

  • Mecanismo para omitir las llamadas del sistema con IORING_SETUP_SQPOLL en el momento de la configuración. Una llamada a io_uring_enter() inicia un thread de núcleo que ocasionalmente sondea la cola de envío y envía automáticamente las solicitudes encontradas allí.

  • Solicitud por lotes para llamadas recv() y para reads().

  • IORING_OP_SENDZC para realizar escrituras de copia cero.

  • Varias optimizaciones de código Ring:

    • Los anillos y la cola de envío pueden estar en la memoria del espacio del usuario, como grandes páginas.

    • Un anillo ahora es capaz de señalar a otro para acelerar las solicitudes de mensajes.

    • El trabajo relacionado con Ring se puede diferir hasta que una aplicación lo solicite.

  • Mejoras de io_uring en escrituras en buffer, en XFS.

  • La optimización de io_uring en XFS y Ext4 puede manejar varias escrituras de E/S directa en un archivo en paralelo.

  • Los tiempos de espera absolutos, junto con los tiempos de espera relativos que ya estaban disponibles, ahora son posibles.

ASMLib v3

ASMLib es una biblioteca para la función Gestión Automática de Almacenamiento de Oracle Database. ASMLib v3 aprovecha las funciones io_uring incluidas en el núcleo para ofrecer un alto rendimiento. UEK 8 se prueba y es totalmente compatible con Oracle ASMLib v3.

Tenga en cuenta que con esta actualización, el módulo de núcleo oracleasm ya no se incluye, ya que Oracle ASMLib v3 ya no necesita que este módulo funcione.

ASMLIB versión 3.1 aprovecha las mejoras de transferencia de información de protección agregadas a io_uring en UEK 8. A través de esta interfaz, los totales de control CRC se pueden conectar a cada E/S, lo que proporciona una capa adicional de protección contra la corrupción de datos.

Para utilizar esta función, los discos de ASM se deben aprovisionar en el hardware de almacenamiento que implementa la información de protección T10 (controlador SCSI compatible con DIX o NVMe).

Consulte Oracle Linux: Instalación y configuración de Oracle ASMLIB v3.

RDMA

UEK 8 incluye funciones de acceso directo a memoria remoto (RDMA) que se proporcionan en el núcleo ascendente, con la adición de la funcionalidad Ksplice y DTrace. RDMA permite el acceso directo a la memoria entre dos sistemas que están conectados por una red InfiniBand o RoCE. RDMA facilita la creación de redes de alto rendimiento y baja latencia en clusters.

Los paquetes de Oracle RDMA están disponibles en los siguientes canales ULN y repositorios de yum:

  • Oracle Linux 10

    • Canal ULN: ol10_x86_64_RDMA

    • Repositorio de servidores yum de Oracle Linux: ol10_RDMA

  • Oracle Linux 9

    • Canal ULN: ol9_x86_64_RDMA

    • Repositorio de servidores yum de Oracle Linux: ol9_RDMA

Consulte Upgrading Oracle RDMA Packages on Oracle Linux si está actualizando un sistema que tiene instalado el paquete oracle-rdma-release o oracle-rdma-release-guest.

Mejoras generales de redes

Algunas mejoras generales de redes están disponibles en UEK 8 con cambios ascendentes que se incluyen de v5.15 a v6.12.

  • BIG TCP, que utiliza paquetes TSO/GRO de mayor tamaño para el tráfico IPv6, se incluye para mejorar el rendimiento al enviar paquetes TCP IPv6 de gran tamaño en redes de centros de datos. Tenga en cuenta que esta función no está activada de forma predeterminada porque puede afectar a los programas eBPF que pueden asumir el encabezado TCP inmediatamente después del encabezado IPv6. BIG TCP se activa mediante la configuración de gro_ipv6_max_size y gso_ipv6_max_size en un dispositivo de enlace.

  • Una nueva opción de socket SO_RESERVE_MEM está disponible para proporcionar un mecanismo para que los usuarios reserven una cierta cantidad de memoria para el socket. Con esta opción de socket configurada, la pila de red pasa menos ciclos realizando la asignación y la recuperación hacia adelante, lo que puede conducir a un mejor rendimiento del sistema, con el costo de una cantidad de memoria preasignada e irreclamable, incluso bajo presión de memoria.

  • El programador de paquetes de cola justa ha obtenido varias mejoras de rendimiento, incluido un aumento del 5% en el rendimiento de la carga de trabajo intensiva de solicitud/respuesta TCP (TCP_RR) y un aumento del 13% para los paquetes UDP sin una tasa de estimulación establecida en el socket.

  • Se reorganizan varias estructuras de datos de red principales para mejorar la eficiencia de la caché, lo que puede resultar en una mejora del rendimiento de TCP, donde hay muchas conexiones simultáneas.

KTLS

KTLS maneja los registros TLS mediante el cifrado simétrico o los algoritmos de descifrado del núcleo para el cifrado AES-GCM. KTLS se activó en UEK R7U3 para conexiones cifradas TLS para NFS. KTLS sigue estando disponible en UEK 8.

Conexiones cifradas TLS para NFS

RPC-Con-TLS está activado en el servidor y el cliente NFS de Linux. Esta actualización proporciona un mecanismo de autenticación de pares basado en estándares mediante una conexión cifrada mediante TLS. El protocolo de registro TLS lo maneja completamente kTLS.

Tenga en cuenta que tanto el sistema cliente como el servidor deben ejecutar UEK R7U3 o una versión posterior, o deben ejecutar un cliente de espacio de usuario y núcleo que admita RFC 9289 para usar esta funcionalidad. El paquete de espacio de usuario, ktls-utils, también es necesario y se debe instalar en los sistemas cliente y servidor. También asegúrese de haber instalado la versión más reciente del paquete nfs-utils o de haber realizado una actualización completa del sistema.

Oracle contribuye con RPC-With-TLS de forma ascendente y se describe en RFC 9289.

Mejoras en el Generador de números aleatorios

Algunas mejoras en el generador de números aleatorios (RNG) están disponibles en UEK 8 con cambios ascendentes que se incluyen de v5.15 a v6.12. En particular, RNG ha cambiado del algoritmo hash SHA1 al algoritmo BLAKE2s más rápido y seguro.

Además, la llamada del sistema getrandom() ahora se implementa en el área de objeto compartido dinámico virtual (vDSO) del núcleo. Esta implementación mejora el rendimiento al obtener datos de números aleatorios al eliminar la necesidad de cambiar de un contexto de espacio de usuario al contexto del núcleo.

KVM y virtualización

Los siguientes cambios de KVM y virtualización se incluyen en esta versión de UEK 8:

  • El soporte de MMU de paginación bidimensional (TDP) se agrega para mejorar significativamente el rendimiento de fallos de página en máquinas virtuales con muchas VCPU. Esta funcionalidad está activada por defecto.

  • La configuración del núcleo UEK 8 para las VCPU se aumenta hasta un límite teórico de 4096. Tenga en cuenta que el límite de VCPU real es específico del caso de uso y depende de muchos factores, incluida la configuración del sistema y de la QEMU.

Controladores actualizados

Los controladores de dispositivos incluidos en UEK 8 están alineados con los controladores del núcleo mainline de Linux 6.12 ascendente. Se incluyen algunas actualizaciones notables en las que los controladores incluyen funcionalidades o correcciones disponibles en versiones posteriores del núcleo ascendente.

Muchos módulos de controladores ya no realizan un seguimiento de la información de la versión. Oracle colabora con los proveedores para alinear los controladores de dispositivos incluidos en UEK 8 con el código disponible en las versiones de núcleo ascendente.

Las actualizaciones de controladores notables se presentan en la siguiente tabla:

Alineación de conductores
Módulo del Controlador Descripción del Controlador Versión de núcleo alineada Actualizaciones notables

fnic

Controlador HBA Cisco FCoE

6,14

Las actualizaciones de la versión 6.14 se volvieron a admitir en esta versión. Tenga en cuenta que este controlador incluye una cadena de versión: 1.8.0.0.

lpfc

Controlador de HBA de canal de fibra Emulex Broadcom

6,14

Las actualizaciones de la versión 6.14 se volvieron a admitir en esta versión. Tenga en cuenta que este controlador incluye una cadena de versión: 0:14.4.0.8.

mlx5

Adaptadores de red de 5ª generación NVIDIA (serie NVIDIA ConnectX) Core Driver

6,12

Varias correcciones y mejoras de la versión 6.14 fueron retroportadas en esta versión.

Funciones en desuso y eliminadas

Las siguientes funciones están en desuso, se eliminaron o ya no se admiten en UEK 8:

Funciones Anticuadas

  • Algoritmo SHA-1

    El algoritmo SHA-1 está en desuso en UEK 8 mientras está en modo FIPS y se eliminará en futuras versiones de UEK. El algoritmo SHA-1 ha sido retirado por el Instituto Nacional de Estándares y Tecnología (NIST) porque el algoritmo hash SHA-1 ya no se considera seguro. Consulte las notas de la versión de Oracle Linux para obtener más información sobre el uso de SHA-1 y el desuso.

  • Los módulos de núcleo movidos al paquete kernel-uek-modules-deprecated ahora están en desuso.

    Es posible que estos módulos se eliminen en futuras versiones de UEK.

    Consulte UEK 8 Module Deprecations (x86_64) y UEK 8 Module Deprecations (aarch64) para obtener una lista detallada.

  • cgroupsv1 está en desuso

    cgroupsv1 está en desuso en Oracle Linux 9 y se eliminará en futuras versiones de Oracle Linux.

  • XFS_SUPPORT_V4 está en desuso

    El formato del sistema de archivos V4 contiene debilidades conocidas en el formato del disco. Por lo tanto, la opción está en desuso en UEK 8 y se eliminará en futuras versiones de UEK.

    Puede comprobar si el sistema de archivos tiene formato para utilizar V4 ejecutando el comando xfs_db -r -c version <device>.

    Si la función está activada, debe realizar una copia de seguridad de los datos, cambiar el formato del dispositivo y restaurar los datos.

  • XFS_SUPPORT_ASCII_CI está en desuso

    La función de nombres no sensibles a mayúsculas/minúsculas de XFS ASCII está en desuso en UEK 8 y se eliminará en futuras versiones de UEK. La función proporcionó una opción para dar formato a un sistema de archivos XFS con la opción ascii-ci activada para desactivar la sensibilidad a mayúsculas/minúsculas.

    Puede comprobar si la función está activada mediante el comando xfs_info.

    Si la función está activada, debe realizar una copia de seguridad de los datos, cambiar el formato del dispositivo con la opción desactivada y restaurar los datos.

  • Las opciones CONFIG_SECURITY_SELINUX_DISABLE y CONFIG_SECURITY_WRITABLE_HOOKS están desactivadas

    La opción para desactivar SELinux en tiempo de ejecución mediante la interfaz sysfs se elimina en esta versión de UEK.

    El método preferido para desactivar SELinux es mediante el parámetro de inicio selinux=0

Funciones eliminadas

  • La opción CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_DES para los tipos de cifrado 3DES/DES3 RPCSEC GSS está desactivada

    Los tipos de cifrado DES y Triple-DES (3DES/DES3) de RPCSEC GSS se eliminan en esta versión de UEK.

    Estos tipos de cifrado fueron obsoletos por los RFC 6649 y 8429 porque se sabe que son inseguros.

  • Las opciones CONFIG_NFS_V2 y CONFIG_NFSD_V2 para el cliente y el servidor NFSv2 están desactivadas

    La compatibilidad con clientes NFSv2 y servidores NFSv2 se elimina en esta versión de UEK.

    NFSv2 ha sido reemplazado durante mucho tiempo por NFSv3 y NFSv4, que ofrecen una funcionalidad, un rendimiento y una seguridad mejorados.

  • La opción CONFIG_NFS_DISABLE_UDP_SUPPORT para NFSv3 mediante UDP está activada

    La compatibilidad con NFS versión 3 mediante el protocolo de red UDP se elimina en esta versión de UEK.

    Las implementaciones modernas de NFS/RPC sobre TCP y RDMA proporcionan un mejor rendimiento que el UDP, y proporcionan una entrega ordenada confiable de datos combinada con control de congestión.

    Tenga en cuenta que NFSv4 ya no se admite en UDP, por los mismos motivos.
  • La opción CONFIG_STAGING está desactivada

    La opción de configuración del núcleo CONFIG_STAGING está desactivada en UEK 8. La opción de núcleo puso a disposición controladores que no necesariamente cumplen con el nivel de calidad de núcleo más alto y que estaban disponibles para uso de prueba. La opción estaba en desuso en UEK R7 y se elimina en UEK 8.

  • La opción CONFIG_IXGB está desactivada

    El hardware CONFIG_IXGB para Intel PRO/10GbE se elimina en esta versión de UEK.

  • crashkernel=auto eliminado

    La opción crashkernel=auto estaba en desuso en UEK R7 y no se admitía para Oracle Linux 9. La opción de núcleo se elimina en UEK 8. Para obtener más información sobre la configuración de crashkernel en Oracle Linux, consulte Managing Kernels and System Boot on Oracle Linux.

  • La opción CONFIG_IP_NF_TARGET_CLUSTERIP está desactivada

    La opción CONFIG_IP_NF_TARGET_CLUSTERIP que le permitió crear clusters de equilibrio de carga de servidores de red sin un enrutador o conmutador de equilibrio de carga dedicado se elimina en favor de la funcionalidad que ya está en la coincidencia de cluster de Netfilter.

  • Opción CONFIG_EFI_VARS desactivada

    La opción CONFIG_EFI_VARS que proporcionó la interfaz efivars sysfs para configurar variables UEFI se elimina de esta versión de UEK. La funcionalidad de sustitución ha estado presente en el núcleo desde 2012. Para obtener más información, consulte https://www.kernel.org/doc/html/latest/filesystems/efivarfs.html.

  • Se quitó el controlador Firewire

    La opción CONFIG_FIREWIRE está desactivada en esta versión de UEK.

  • Se han eliminado varios módulos del programador de red

    Los siguientes módulos del programador de red quedaron en desuso en UEK R7 y ahora se eliminan en UEK 8:

    • cls_tcindex
    • cls_rsvp
    • sch_dsmark
    • sch_atm
    • sch_cbq
  • Módulo resilient_rdmaip eliminado

    El módulo resilient_rdmaip estaba en desuso en UEK R7 y ahora se elimina.

  • oracleasm Módulo de núcleo eliminado

    El módulo de núcleo oracleasm se elimina en UEK 8. Tenga en cuenta que este módulo sigue siendo compatible con las versiones UEK R5 y UEK R6.

    Oracle ASMLib sigue siendo compatible con las interfaces io_uring. Consulte ASMLib v3 para obtener más información.

  • sundance Módulo de núcleo eliminado

    El controlador DLink Sundance (ST201), sundance, se elimina en UEK 8. El módulo se eliminó en el núcleo ascendente porque no se mantuvo.

  • cpu5_wdt Módulo de núcleo eliminado

    El controlador de vigilancia cpu5_wdt se elimina en UEK 8. El módulo se eliminó en el núcleo ascendente porque tenía varios problemas que no estaban resueltos y carecían de mantenimiento.

  • Módulos de núcleo i2c-amd756-s4882 y i2c-nforce2-s4985 eliminados

    Los controladores de muxing heredados i2c-amd756-s4882 y i2c-nforce2-s4985 se eliminan en UEK 8. El módulo se eliminó en el núcleo ascendente porque son antiguos y contienen código técnicamente inexacto.

  • Modos criptográficos CONFIG_CRYPTO_OFB y CONFIG_CRYPTO_CFB

    El modo CFB (Comentarios de cifrado) (NIST SP800-38A) utilizado para la criptografía TPM2 y el modo OFB (Comentarios de salida) (NIST SP800-38A) utilizado para convertir un cifrado de bloque en un cifrado de flujo síncrono se eliminan en UEK 8, para alinearse con los cambios ascendentes.