Компания Oracle представила Linux-ядро Unbreakable Enterprise Kernel 2
Компания Oracle объявила о выходе стабильной версии Unbreakable Enterprise Kernel 2, варианта ядра Linux, ориентированного для промышленного применения в дистрибутиве Oracle Linux в качестве альтернативы ядру из состава Red Hat Enterprise Linux. Установка нового ядра поддерживается в Oracle Linux 5.8 и Oracle Linux 6.2, также нет никаких препятствий по использованию данного ядра в аналогичных версиях RHEL, CentOS и Scientific Linux. Обновления с устранением ошибок в прошлой версии Unbreakable Enterprise Kernel 1 будут выходить еще в течение 9 месяцев, но поддержка нового оборудования будет добавляться только в ветку Unbreakable Enterprise Kernel Release 2.
Пакет Unbreakable Enterprise Kernel 2 основан на ядре Linux 3.0.16, дополненном дополнительными возможностями, оптимизациями и исправлениями. Ядро проверено на совместимость с большинством приложений, работающих в RHEL, и специально оптимизировано для работы с промышленным программным обеспечением и оборудованием Oracle. Unbreakable Enterprise Kernel 2 доступен для свободной загрузки в исходных текстах из Git-репозитория без скрытия отдельных патчей, что позволяет другим дистрибутивам легко адаптировать наработки ядра Oracle в свои продукты.
Из ключевых особенностей Unbreakable Enterprise Kernel 2 от первой версии ядра Oracle, отмечается:
- Переход на использования в качестве основы ядра Linux 3.0 с бэкпортирвоанием некоторых возможностей более новых ядер серии 3.x, в то время как прошлый выпуск базировался на ядре 2.6.32. Примечательно, что ядро Unbreakable Enterprise Kernel 2 идентифицирует себя как 2.6.39 для обеспечения совместимости с некоторыми приложениями, не адаптированными для новой нумерации ядер 3.x;
- Поддержка файловой системы Btrfs для промышленной эксплуатации. По умолчанию в Oracle Linux по прежнему остаётся ФС Ext4, которую отныне Btrfs дополняет в качестве официально поддерживаемой опции. Примечательно, что в анонсе упоминается включение в состав пакета btrfs-progs обновлённой утилиты btrfsfsck, поддерживающей восстановление целостности повреждённой ФС (опция "--repair"), а именно поддержку перестроения записей экстентов, восстановление информации о группах блоков и работу с повреждёнными группами блоков. Из других улучшений Btrfs отмечается online-дефрагментация, проверка целостности данных ("Scrubbing", сверка указанных в экстентах контрольных сумм с контрольными суммами, вычисленными на основе фактических данных), возможность использования LZO-сжатия, снапшоты в режиме только для чтения, команды "btrfs subvolume list" и "btrfs subvolume find-new", поддержка прямого ввода/вывода (Direct I/O), опция монтирования nospace_cache, асинхронное создание снапшотов и большое число различных исправлений и оптимизаций;
- Поддержка изолированных окружений на базе легковесных контейнеров LXC (LinuX Container), базирующихся на использовании cgroups и отдельных пространств имён. В LXC-контейнере не используется виртуализация, а на базе уже работающего ядра Linux создаётся отдельное представление операционной системы со своей структурой ФС и сетевым стеком;
- Экспериментальная поддержка системы динамической отладки DTrace, позволяющая выявлять причины узких мест и проблем с производительностью при помощи штатного ядра Linux и без необходимости перезапуска приложений. В версии DTrace для Linux пока доступно лишь несколько базовых провайдеров и ограниченное число контрольных вызовов (probes);
- Поддержка "Transparent Huge Рages", техники увеличения базового размера адресуемых страниц памяти (ранее размер страницы составлял всегда 4096 байт, а сейчас может быть увеличен до 2 или 4 Мб), что приводит к сокращению числа используемых TLB-блоков (Translation Lookaside Buffer) и расширению возможностей по задействованию выделенной, но неиспользуемой памяти, для кэширования системных данных (например, под дисковый кэш). Увеличение размера страницы особенно эффективно при использовании систем виртуализации и СУБД;
- Поддержка механизма уплотнения памяти (memory compaction), позволяющего снизить фрагментацию внешней памяти за счет перемещения нескольких использованных страниц памяти в один блок большего размера, состоящий из непрерывно следующих друг за другом занятых страниц. В итоге, после выполнения операции упаковки, вместо перемешанного набора свободных и занятых непрерывных страниц памяти, получается один большой блок с используемыми страницами и один большой блок со свободными страницами, что в дальнейшем упрощает проведения операций выделения больших областей памяти;
- Улучшения в поддержке Cgroups. Поддержка лимитирвоания ввода/вывода в cgroups, что позволяет установить верхнюю границу интенсивности записи или чтения данных для заданной группы процессов.
- Поддержка технологии XPS (Transmit Packet Steering), позволяющей повысить на 20-30% пропускную способность передачи сетевых пакетов для адаптеров, поддерживающих несколько очередей пакетов;
- Дополнительные наработки в области увеличения производительности и масштабируемости. Оптимизации затронули такие подсистемы как планировщик задач, система управления памятью, файловые системы и сетевой стек. Экспериментальная поддержка DRBD (Distributed Replicated Block Device);
- Улучшение поддержки систем виртуализации Xen. Дополнительные оптимизации для использования ядра на стороне гостевых систем. В ядре Unbreakable Enterprise Kernel 2 обеспечена полная поддержка работы в роли хоста на базе гипервизора Xen, а также возможность запуска в гостевых системах в режимах паравиртуализации и аппаратной виртуализации (HVM). Поддержка бэкендов для работы с блочными устройствами и PCI-картами в Xen DomU портирована из ядра Linux 3.3;
- Улучшение в релизации файловой системы OCFS2 (Oracle Cluster File System): Добавлена поддержка монтирования дисковых разделов, размером более 16 Тб. Добавлена новая опция монтирования "coherency=*" для реализации обеспечения согласованности данных в кластере при режиме записи O_DIRECT. Добавлен ioctl OCFS2_IOC_INFO, позволяющий получить непривилегированному пользователю статистику о работе ФС. Добавлена возможность перемещения экстентов и интегрирована поддержка операций TRIM, что позволит увеличить производительность при работе с SSD-накопителями и повысить их срок службы. Добавлена поддержка заблаговременного резервирования (allocation reservation) блоков, что позволяет значительно сократить фрагментацию;
- Экспериментальная поддержка проверки валидности модулей ядра по цифровым подписям. В процессе загрузки модуля его сигнатура будет проверена при помощи вшитых в ядро публичных ключей, в зависимости от настроек модули без корректной цифровой подписи могут быть блокированы;
- Обновление драйверов устройств.