Компания Oracle представила релиз промышленного дистрибутива Oracle Linux 6.3, созданного на основе пакетной базы Red Hat Enterprise Linux 6.3. Дистрибутив доступен для бесплатной загрузки в сборках для архитектур x86 и x86_64 (размер iso-образа 3.1 Гб). Кроме того, в соответствии с принятым в марте решением, для Oracle Linux открыт неограниченный и бесплатный доступ к yum-репозиторию с бинарными обновлениями пакетов с устранением ошибок (errata) и проблем безопасности.
Из отличий дистрибутива Oracle Linux 6.3 от RHEL 6.3 отмечается исправление ошибок, обновление версий драйверов для сетевых устройств и систем хранения. В составе Oracle Linux 6.3 поставляется два варианта пакетов с Linux-ядром: классический вариант от компании Red Hat (kernel-2.6.32-279.el6) и созданный силами Oracle пакет с ядром Linux, основанный на ветке 3.0 с бэкпортированием некоторых возможностей более новых ядер серии 3.x (kernel-uek-2.6.39-200.24.1.el6uek). По умолчанию в базовую поставку входят оба ядра, но подготовленный в Oracle пакет с ядром загружается по умолчанию. Готовые бинарные сборки ядра от Oracle для совместимых c RHEL дистрибутивов и src.rpm-пакеты представлены на сайте public-yum.oracle.com, там же можно загрузить и другие присутствующие в дистрибутиве пакеты. Oracle не накладывает никаких ограничений на поставку подготовленного в Oracle ядра в сторонних продуктах.
Среди ключевых особенностей Oracle Linux 6 (в основном данные возможности связаны с ядром Unbreakable Enterprise Kernel 2):
Поддержка файловой системы 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 создаётся отдельное представление операционной системы со своей структурой ФС и сетевым стеком;
Улучшение поддержки систем виртуализации Xen. Дополнительные оптимизации для использования ядра на стороне гостевых систем. В ядре Unbreakable Enterprise Kernel 2 обеспечена полная поддержка работы в роли хоста на базе гипервизора Xen, а также возможность запуска в гостевых системах в режимах паравиртуализации и аппаратной виртуализации (HVM). Поддержка бэкендов для работы с блочными устройствами и PCI-картами в Xen DomU портирована из ядра Linux 3.3;
Экспериментальная поддержка проверки валидности модулей ядра по цифровым подписям. В процессе загрузки модуля его сигнатура будет проверена при помощи вшитых в ядро публичных ключей, в зависимости от настроек модули без корректной цифровой подписи могут быть блокированы;
Включение в состав модуля device-mapper dm-nfs, который позволяет использовать размещённый на NFS-разделе файл как блочное устройство. Отличие от loopback-монтирования файлов в том, что непосредственно файл размещается на удалённой машине и доступен через протокол NFS;
Поддержка технологии XPS (Transmit Packet Steering), позволяющей повысить на 20-30% пропускную способность передачи сетевых пакетов для адаптеров, поддерживающих несколько очередей пакетов;
Дополнительные наработки в области увеличения производительности и масштабируемости. Оптимизации затронули такие подсистемы как планировщик задач, система управления памятью, файловые системы и сетевой стек. Экспериментальная поддержка DRBD (Distributed Replicated Block Device);
Поддержка метода удаленного прямого доступа к памяти OFED (OpenFabrics Enterprise Distribution);
Поддержка кластерной файловой системы OCFS2 1.6, в которой добавлена поддержка JBD2, расширенных атрибутов, POSIX ACL, хранения контрольных сумм для мета-данных, индексации директорий и REFLINK-ов;
Интеграция фреймворка обеспечения целостности данных DIF/DIX (Linux data integrity framework), который позволяет защитить данные от повреждения при их записи в хранилище за счет сохранения дополнительных корректирующих блоков;
Система автоматического адаптивного тюнинга работы SSD-накопителей, определяющая факт подключения SSD-накопителя и применяющая ряд оптимизирующих настроек, зависящих от характера ввода/вывода;
Возможность привязки обработчиков ввода/вывода к определенным процессорным ядрам (IO affinity) с целью увеличения эффективности кэширования (один и тот же поток обрабатывается одним ядром CPU);
Поддержка технологий Receive Packet Steering (RPS) и Receive Flow Steering (RFS) для прозрачного распределения нагрузки по обработке входящего сетевого трафика на имеющиеся в системе CPU. Функция RPS позволяет организовать на разных CPU параллельную обработку операций над IP и TCP пакетами, для чего для каждого сетевого устройства или для каждой очереди пакетов добавлен дополнительный индекс, использующий хэширование по заголовку пакетов для выбора CPU-обработчика. RFS дополняет RPS эвристическими методами выбора CPU, не просто выбирая обработчик случайным образом, а учитывая на каком CPU выполняется вызвавшее системный вызов recvmsg() приложение для наиболее оптимального использования кэша;
Поддержка системного вызова fallocate(), обеспечивающего возможность предварительного выделения места под создаваемые приложением файлы, что позволяет гарантировать, что для заданного файла в ФС при любых обстоятельствах хватит места, даже если в процессе создания файла дисковый раздел будет переполнен другими процессами. Использование fallocate позволяет значительно ускорить создание больших файлов, таких как образы виртуальных машин.