Компания Red Hat выпустила дистрибутив Red Hat Enterprise Linux 7.4. Ветка RHEL 7.x будет поддерживаться до июня 2024 года. Установочные образы RHEL 7.4 доступны для загрузки только зарегистрированным пользователям Red Hat Customer Portal и подготовлены для архитектур x86+64, IBM POWER7+, POWER8 (big endian и little endian) и IBM System z. Исходные тексты пакетов можно загрузить из Git-репозитория проекта CentOS.

Основные новшества:

  • Хранение данных
    • В LVM реализована возможность смены уровня существующего раздела RAID и изменения свойств массива (reshaping), таких как алгоритм работы RAID, размер stripe-блока, число образов и т.п. Например, теперь можно в массив с распределением данных на 3 накопителя добавить два дополнительных диска и организовать распределение на 5 накопителей. В LVM также представлена возможность уменьшения размера логического раздела с RAID и поддержка снапшотов для кэшируемых логических разделов. Инструментарий mdadm обновлён до выпуска 4.0;
    • В подсистему FUSE добавлена поддержка опций SEEK_HOLE и SEEK_DATA системного вызова lseek() для выявления пустых областей и блоков данных внутри файла;
    • В сервере NFS реализована оптимизация копирования файлов в рамках одной ФС на сервере, такие файлы теперь копируются локально без перемещения по сети на сторону клиента. По умолчанию при монтировании NFS отныне применяется протокол NFSv4.1. В реализации NFSv4.1 заметно увеличена производительность работы с блокировками. Добавлен файл nfs.conf для хранения настроек nfs-utils. Обеспечена полноценная поддержка клиента и сервера NFS over RDMA (NFSoRDMA), в которых также теперь возможна аутентификация через Kerberos;
    • В категорию устаревших (deprecated) переведена поддержка Btrfs и FedFS (Federated File System). Файловая система Btrfs ранее позиционировались в дистрибутиве RHEL 7 как экспериментальная возможность (Technology Preview), не рекомендованная к применению в промышленных решениях. Компания Red Hat приняла решение не выводить Btrfs в разряд полностью поддерживаемых в RHEL технологий и поддержка данной ФС будет прекращена в будущем значительном выпуске RHEL 8. Что касается RHEL 7.4, то в Btrfs продолжен перенос некоторых изменений из
      upstream. В дальнейшем, пользователи следующих выпусков ветки RHEL 7 смогут продолжить использовать Btrfs, но изменения больше переноситься не будут. Что касается FedFS, то причиной перевода в разряд устаревших является прекращение активной разработки основного проекта. Вместо FedFS рекомендовано использовать autofs.

  • Рабочий стол
    • Рабочий стол GNOME обновлён до выпуска 3.22 (в прошлой версии RHEL использовался GNOME 3.14). Пользователям предложена новая система вывода уведомлений, автоматическая настройка яркости при наличии датчика освещения, улучшенный конфигуратор, обновлённый файловый менеджер с поддержкой переименования группы файлов за один раз, встроенная поддержка сжатых файлов и внешнего хранилища Google Drive;
    • Добавлен универсальный драйвер для организации ввода xorg-x11-drv-libinput, являющийся обвязкой над libinput и позволяющий обойтись без отдельных драйверов для тачпадов;
    • Для графических чипов Intel и NVIDIA вместо специализированны драйверов xf86-video-nouveau и xf86-video-intel по умолчанию задействован универсальный DDX-драйвер xf86-video-modesetting, который не привязан к конкретным типам видеочипов и по своей сути напоминает драйвер VESA, но работающий поверх интерфейса KMS. Драйвер xf86-video-modesetting можно использовать для любого оборудования, для которого имеется работающий на уровне ядра драйвер DRM/KMS.
    • В драйвере AMDGPU добавлена поддержка чипсетов Southern Islands, Sea Islands, Volcanic Islands и Arctic Islands, а также мобильных GPU на базе архитектуры Polaris;
    • Обновлена поддержка планшетов Wacom, в том числе добавлена возможность использования модели Wacom 27QHT, сенсорных экранов ThinkPad X1 Yoga и функции
      ExpressKey Remote;

  • Безопасность
    • Добавлен фреймворк USB Guard, позволяющий управлять доступом пользователей к USB-устройствам для блокирования возможных утечек информации. Поддерживается создание белого и чёрного списков USB-устройств;
    • Усилена защита изолированных контейнеров, благодаря обеспечению поддержки SELinux в OverlayFS;
    • Компоненты OpenSSH обновлены до версии 7.4. Добавлена возможность продолжения прерванных загрузок по SFTP. Реализована поддержка сертификатов и слепков публичных ключей на основе SHA-256. Прекращена поддержка SSH-1 на стороне сервера;
    • Поддержка NBDE (Network Bound Disk Encryption), позволяющего шифровать содержимое корневых разделов на жестких дисках без необходимости ручного ввода пароля в процессе загрузки;
    • Улучшения в инструментах системного аудита: фильтрация событий из логов аудита по идентификатору сеанса или uid, вывод дополнительной информации по критическим событиям и упрощённая навигация по большим наборам записей;
    • До ветки 1.0.2 обновлён пакет OpenSSL, в который добавлена поддержка протоколов DTLS (Datagram Transport Layer Security) 1.2, возможность использования ECDHE в TLS и реализация ALPN (Application-Layer Protocol Negotiation, позволяет собрать модуль для HTTP/2 в nginx);
    • Прекращена поддержка большой порции устаревших криптографических протоколов и методов шифрования, в том числе SSH 1.0, SSL 2.0, экспортных шифров (EXPORT), RC4, MD5, MD4 и SHA-0, параметров Diffie-Hellman (DH) до 1024 бит;
    • Добавлена поддержка системного вызова getrandom(), который позволяет получить значения от системного генератора псевдослучайных чисел через обращение к системному вызову, что обеспечивает надёжную защиту от атак, основанных на исчерпании доступных файловых дескрипторов (при отсутствии свободных дескрипторов невозможно задействовать /dev/urandom);
    • Для генератора псевдослучайных чисел представлен новый коллектор энтропии на основе джиттера (Jitter Entropy Random Number Generator), основанный на учёте отклонения времени повторного исполнения определённого набора инструкций на CPU (CPU execution time jitter), которое зависит от множества внутренних факторов и непредсказуемо без физического контроля над CPU;
    • Обеспечена полная поддержка пространств имён идентификаторов пользователей (user name spaces), позволяющих задействовать в контейнере отдельную таблицу идентификаторов, не пересекающуюся с хост-системой (например, root контейнера не будет иметь повышенных прав в хост-системе);
    • Подсистема идентификации SSSD (System Security Services Daemon) в контейнерах переведена в разряд полностью поддерживаемых технологий. Контейнер для развёртывания сервера идентификации (IdM, Identity Management) пока остаётся в числе экспериментальных возможностей. Пакет OpenLDAP обновлён до версии 2.4.44, а Samba до версии 4.6.2 (ранее использовался выпуск 4.4.4). Средства идентификации приведены в соответствие критериям FIPS (реализован отдельный режим соответствия FIPS). В IdM добавлена экспериментальная поддержка DNSSEC;
    • Значительно улучшена поддержка смарт-карт. В web-интерфейсе IdM добавлена возможность входа при помощи смарт-карты, появилась поддержка аутентификации в Active Directory, реализована гибкая схема привязки сертификата смарт-карты к учётной записи. В дополнение к драйверу CoolKey добавлен OpenSC, набор библиотек для работы со смарт-картами, поддерживающий Common Access Card (CAC) и предоставляющий функциональность апплета CoolKey;
    • В SSSD добавлена возможность получения билета Kerberos при аутентификации через смарт-карту, возможность входа в разные учётные записи при помощи одного сертификата на смарт-карте, реализован новый сервис kcm для кэширования параметров учётных записей Kerberos, поддержка настройки субдоменов Active Directory в серверном режиме SSSD, возможность аутентификации по коротким именам пользователей в Active Directory, поддержка работы с пользователями и группами через D-Bus и PAM (не обязательно наличие SID или OID/GID).
    • В сервере директорий задействована новая схем хранения паролей на основе хэша SSHA_512 и добавлена поддержка схемы PBKDF2_SHA256, осуществлён переход на библиотеку tcmalloc и событийно-ориентированный фреймворк nunc-stans, представлена большая порция оптимизаций производительности;
    • В состав включен пакет tss2 с реализацией стека TSS 2.0 (Trusted Computing Group Software Stack), позволяющего взаимодействовать с устройствами TPM 2.0;
    • В ядре по умолчанию включена поддержка рандомизации адресного пространства ядра (KASLR) для подсистем управления памятью
      (например, KASLR применяется для рандомизации стартового адреса для виртуальных адресов в секциях Direct mapping, vmalloc и vmemmap). Для остальных подсистем поддержка KASLR пока носит экспериментальный характер и не включена по умолчанию;

    • Добавлена экспериментальная поддержка демона systemd-importd, позволяющего организовать загрузку готовых образов контейнеров в форматах tar, raw, qcow2 и dkr и их размещение в директории /var/lib/machines для запуска через nspawn. Для проверки валидности загружаемых образов используется GPG.
    • Для гостевых систем, работающих под управлением гипервизора KVM, добавлена экспериментальная поддержка USB 3.0;

    Сетевые возможности

    • NetworkManager обновлён до версии 1.8 с поддержкой настройки атрибутов для статических маршрутов, задействованием технологии MACsec (IEEE 802.1AE, Media Access Control Security), поддержкой управления настройками DNS через D-Bus и устранением неопределённости с восстановлением состояния устройств после перезапуска. Пакет wpa_supplicant обновлён до выпуска 2.6 с поддержкой шифрования MACsec;
    • Реализация GRE-туннелей синхронизирована с ядром 4.8. Добавлена возможность выноса обработки туннелей GENEVE, VXLAN и GRE на специализированное оборудование (offloading), а также реализована поддержка LCO (Local Checksum Offloading) для туннелей. Проведена оптимизация кода работы с туннелями для сетевых карт, не поддерживающих
      offloading;

    • В Netfilter добавлена поддержка трансляции сетевых префиксов IPv6 – NPTv6 (IPv6-to-IPv6 Network Prefix Translation, RFC 6296);
    • Реализация сетевых мостов (bridge) синхронизирована с ядром 4.9. Появилась поддержка таких возможностей, как фильтрация 802.1ad VLAN, ускорение Tx VLAN, 802.11 Proxy ARP, применения switchdev для выноса операций коммутации пакетов на внешнее устройство, учёт статистики в привязке к VLAN;
    • В ядро добавлена поддержка вложенных VLAN, определённых в спецификации 802.1ad (QinQ). Реализация основана на коде Open vSwitch;
    • Проведена оптимизация блокировок в реализации UDP-сокетов, что позволило добиться увеличения пропускной способности обработки UDP-пакетов;
    • В утилиту iproute добавлена возможность изменения опций порта сетевого моста (state, priority, cost). В утилиту tc добавлена поддержка классификатора трафика flower;
    • Из ветки BIND 9.11 перенесён плагин DynDB (Dynamic Database), позволяющий организовать загрузку DNS-зон из внешних баз данных. DynDB выступает в роли альтернативы технологии BIND DLZ (Dynamically-loaded zones) и позволяет создавать модули, которые загружают данных из внешних источников и позволяют работать с ними с той же производительностью и теми же возможностями, как при использовании обычных зон. Плагин задействован в модуле bind-dyndb-ldap, который применяется для хранения зон в LDAP;
    • В firewalld добавлена поддержка различных вариантов ключей хэширования в ipset ( “hash:ip,port”, “hash:ip,port,ip”, “hash:net,iface” и т.п.), поддержка указания в правилах типов ICMP, возможность отключения автоматической привязки helper-а;
  • Системные изменения
    • В инструментарий Performance Co-Pilot (PCP) добавлена поддержка новых утилит, таких как pcp2influxdb (экспорт метрик в influxdb ), pcp-mpstat и pcp-pidstat (анализ вывода mpstat и pidstat). Добавлена поддержка новых метрик производительности для device mapper, Ceph, cpusched cgroups, soft IRQs, buddyinfo, zoneinfo, разделяемой памяти, libvirt, same-page-sharing, lio, Redis и Docker;
    • Система динамической отладки systemtap обновлена до версии 3.1 с поддержкой контрольных проверок для функций в скриптах на языке Python и унификацией доступа к параметрам Java-функций;
    • Поддержка технологии “NVMe Over Fabric” для организации высокоскоростного доступа к устройствам NVMe, размещённым в инфраструктуре, подключенной через Ethernet или Infiniband;
    • Поддержка сетевых адаптеров ENA (Elastic Network Adapter), используемых компанией Amazon в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2;
    • Проведена работа по увеличению производительности при развёртывании в облачных системах. Сокращено время загрузки;
    • Увеличена производительность загрузки библиотек, в которых используются инструкции Intel SSE, AVX и AVX512. Добавлена поддержка режима системного аудита LD_AUDIT;
    • Обновлены версии пакетов: valgrind 3.12, ipmitool 1.8.18, jansson 2.10, tcpdump 4.9.0, shim 12-1 (с поддержкой 32-разрядных прошивок UEFI), dnsmasq 2.76, libreswan 3.20, chrony 3.1, tuned 2.8, rsyslog 8.24, iprutils 2.4.14;
    • Обновлено большое количество драйверов и добавлена поддержка нового оборудования, в том числе платформ на базе CPU Intel Xeon Processor E3 v6 и новых устройств NVMe (драйвер портирован из ядра 4.10)
    • В инсталляторе появилась возможность загрузки наборов драйверов с USB-накопителя или жесткого диска, а не только по сети или из initrd. Например, во время загрузки инсталлятора теперь можно указать “inst.dd=hd:LABEL=DD:/e1000.rpm”;
    • Для OpenJDK реализована экспериментальная поддержка сборщика мусора Shenandoah,
      работающего без приостановок;

    • Добавлена экспериментальная поддержка режима быстрой ручной перезагрузки ядра при помощи kexec (reboot –kexec);
    • В real-time версии ядра для систем реального времени добавлена экспериментальная поддержка планировщика SCHED_DEADLINE, предоставляющего гарантированное время выполнения задачи, независимо от общего количества обслуживаемых процессов;
  • Расширены возможности окружения Atomic Host, предназначенного для запуска изолированных контейнеров, подготовленных и управляемых при помощи инструментариев Docker и Kubernetes, и поставляемой в форме монолитного и целиком обновляемого образа. В Atomic Host добавлена полная поддержка многослойных наборов пактов в rpm-ostree, позволяющая добавлять в хост-окружение дополнительные пакеты, например, драйверы и агенты систем мониторинга. Добавлена экспериментальная поддержка LiveFS, дающая возможность устанавливать связанные с безопасностью обновления без перезапуска окружений;
  • Добавлена новая экспериментальная редакция Red Hat Enterprise Linux System Roles, предоставляющая средства для развёртывания системы централизованного управления конфигурацией на основе Ansible (в состав дистрибутива также включены пакеты с Ansible);