Доступні Oracle Linux 9 та ядро ​​Unbreakable Enterprise Kernel 7

Компанія Oracle опублікувала стабільні випуски дистрибутива Oracle Linux 9 та ядра Unbreakable Enterprise Kernel 7 (UEK R7), що позиціонується для використання в дистрибутиві Oracle Linux як альтернатива штатному пакету з ядром з Red Hat Enterprise Linux. Дистрибутив Oracle Linux 9 створений на основі пакетної бази Red Hat Enterprise Linux 9 та повністю бінарно сумісний з нею.

Для завантаження без обмежень запропоновані настановні iso-образи, розміром 8.6 ГБ та 840 МБ, підготовлені для архітектур x86_64 та ARM64 (aarch64). Для Oracle Linux 9 відкрито необмежений та безкоштовний доступ до yum-репозиторію з бінарними оновленнями пакетів з усуненням помилок (errata) та проблем безпеки. Для завантаження також підготовлені репозиторії, що окремо підтримуються, з наборами пакетів Application Stream і CodeReady Builder.

Крім пакета з ядром зі складу RHEL (на базі ядра 5.14), у Oracle Linux запропоновано власне ядро ​​Unbreakable Enterprise Kernel 7, засноване на ядрі Linux 5.15 та оптимізоване для роботи з промисловим програмним забезпеченням та обладнанням Oracle. Вихідні тексти ядра, включаючи розбивку на окремі патчі, доступні у публічному Git-репозиторії Oracle. Ядро Unbreakable Enterprise Kernel встановлюється за умовчанням, позиціонується як альтернатива штатному пакету з ядром RHEL і надає ряд розширених можливостей, таких як інтеграція DTrace та покращена підтримка Btrfs. Окрім додаткового ядра за функціональністю випуски Oracle Linux 9 та RHEL 9 повністю ідентичні (список змін можна переглянути в анонсі RHEL9).

Ключові нововведення в ядрі Unbreakable Enterprise Kernel 7:

  • Поліпшено підтримку архітектури Aarch64. Розмір сторінок пам'яті на 64-розрядних системах ARM за умовчанням зменшено з 64 КБ до 4 КБ, що краще поєднується з обсягами пам'яті та видами навантаження, типовими для ARM-систем.
  • Продовжено постачання системи динамічного налагодження DTrace 2.0, яке переведено на використання підсистеми ядра eBPF. DTrace 2.0 працює поверх eBPF, за аналогією з тим, як поверх eBPF працюють існуючі в Linux інструменти трасування.
  • Розширено можливості ФС Btrfs. У Btrfs додано асинхронну реалізацію операції DISCARD для позначки звільнених блоків, які вже можна не зберігати фізично. Асинхронна реалізація дозволяє не чекати завершення DISCARD накопичувачем і виконувати цю операцію на тлі. Додано нові опції монтування для спрощення відновлення даних з пошкодженою ФС: «rescue=ignorebadroots» для монтування, незважаючи на пошкодження деяких кореневих дерев (extent, uuid, data reloc, device, csum, free space), «rescue=ignoredatacsums» для відключення перевірок контрольних сум для даних та «rescue=all» для одночасного включення режимів 'ignorebadroots', 'ignoredatacsums' і 'nologreplay'. Внесено суттєві оптимізації продуктивності, пов'язані з виконанням операцій fsync(). Додана підтримка fs-verity (перевірка справжності та цілісності файлів) та зіставлення ідентифікаторів користувачів.
  • У XFS реалізовано підтримку операцій DAX для прямого доступу до ФС в обхід сторінкового кешу для виключення подвійного кешування. Додано зміни, що вирішують проблеми з переповненням 32-розрядного типу даних time_t у 2038 році, у тому числі запропоновані нові опції монтування bigtime та inobtcount.
  • Внесено покращення у файлову систему OCFS2 (Oracle Cluster File System).
  • Додана файлова система ZoneFS, яка спрощує низькорівневу роботу із зонованими пристроями зберігання. Під зонованими накопичувачами маються на увазі пристрої на жорстких магнітних дисках або NVMe SSD, простір для зберігання в яких розбито на зони, що складають групи блоків або секторів, в які допускається лише послідовне додавання даних з оновленням цілої групи блоків. ФС ZoneFS пов'язує кожну зону в накопичувачі з окремим файлом, який можна використовуватиме зберігання даних у raw-режимі без маніпуляції лише на рівні секторів і блоків, тобто. дозволяє програмам використовувати файловий API замість прямого звернення до блокового пристрою за допомогою ioctl.
  • Стабілізовано підтримку протоколу VPN WireGuard.
  • Розширено можливості підсистеми eBPF. Реалізовано механізм CO-RE (Compile Once - Run Everywhere), який вирішує проблему з переносимістю скомпілованих eBPF-програм і дозволяє збирати код eBPF-програм тільки один раз і використовувати спеціальний універсальний завантажувач, що адаптує програму, що завантажується, до поточного ядра і типів BTFB Формат). Додано механізм BPF trampoline, що дозволяє практично звести до нуля накладні витрати при передачі викликів між ядром і програмами BPF. Надано можливості прямого звернення до функціональності ядра з BPF-програм та призупинення обробника.
  • Інтегрований детектор розщеплених блокувань (split lock), що виникають при доступі до невирівняних даних у пам'яті через те, що при виконанні атомарної інструкції дані перетинають дві лінії кеша CPU. Ядро може на льоту виявляти подібні блокування, які призводять до значного падіння продуктивності, і виводити попередження або надсилати сигнал SIGBUS додатку, що викликав блокування.
  • Забезпечено підтримку Multipath TCP (MPTCP), розширення протоколу TCP для організації роботи TCP-з'єднання з доставкою пакетів одночасно по кількох маршрутах через різні мережеві інтерфейси, прив'язані до різних IP-адрес.
  • У планувальнику завдань реалізований режим планування SCHED_CORE, що дозволяє керувати тим, які процеси можуть виконуватися спільно на одному ядрі CPU. Кожному процесу може бути призначений cookie-індентифікатор, який визначає область довіри між процесами (наприклад, належність одного користувача або контейнера). При організації виконання коду планувальник може забезпечити спільне використання одного ядра CPU тільки для процесів, пов'язаних з одним власником, що може використовуватися для блокування деяких атак класу Spectre за рахунок запобігання виконання в одному потоці SMT (Hyper Threading) завдань, що заслуговують і не заслуговують на довіру.
  • Для cgroups реалізований контролер розподілу пам'яті slab (slab memory controller), який примітний перенесенням обліку slab з рівня сторінок пам'яті на рівень об'єктів ядра, що дає можливість спільно використовувати slab-сторінки в різних cgroup замість виділення окремих кешів slab для кожної cgroup. Запропонований підхід дозволяє підвищити ефективність використання slab, на 30-45% скоротити розмір пам'яті, що використовується для slab, значно зменшити загальне споживання пам'яті ядром і знизити фрагментацію пам'яті.
  • Забезпечено постачання налагоджувальних даних у форматі CTF (Compact Type Format), що забезпечує компактне зберігання відомостей про Сі-типи, зв'язки між функціями та налагоджувальні символи.
  • Припинено постачання модуля DRBD (Distributed Replicated Block Device) та пристрою /dev/raw (для прямого доступу до файлів слід використовувати прапорець O_DIRECT).

Джерело: opennet.ru

Додати коментар або відгук