Выпуск Samba 4.25.0
- После 6 месяцев разработки представлен релиз Samba 4.25.0 с экспериментальной поддержкой постоянных дескрипторов SMB3 при сбоях.
- Добавлены VFS-модули vfs_aio_ratelimit для кластерного ограничения интенсивности запросов и vfs_ceph_rgw для экспорта хранилища Ceph RGW.
- Реализованы уровни функциональности кластера для поэтапного обновления узлов и включено шифрование AES по умолчанию для защиты от CVE-2026-20833.
Почему это важно: Постоянные дескрипторы позволяют избежать повторного открытия файлов после сбоев, что актуально при размещении виртуальных машин и кластерных БД.
После 6 месяцев разработки представлен релиз Samba 4.25.0, продолживший развитие ветки Samba 4 с полноценной реализацией контроллера домена и сервиса Active Directory, совместимого с реализацией Windows Server и способного обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 11. Samba 4 является многофункциональным серверным продуктом, предоставляющим также реализацию файлового сервера, сервиса печати и сервера идентификации (winbind). Код проекта написан на языке Си и распространяется под лицензией GPLv3.
Ключевые изменения в Samba 4.25:
В реализацию протокола SMB3 добавлена экспериментальная поддержка постоянных файловых дескрипторов (SMB2_CAP_PERSISTENT_HANDLES), позволяющих клиентам продолжить работу с открытыми файлами после обрыва сетевого соединения, перезапуска сервера или переключения нагрузки на запасной сервер. Постоянные дескрипторы позволяют обойтись без повторного открытия файлов после сбоя сервера, что особенно актуально при размещении на файлом сервере Samba виртуальных машин и кластерных БД.
Для работы требуется предоставить эксклюзивный доступ к SMB-хранилищу и отключить настройки «kernel oplocks», «kernel share modes» и «posix locking», что нарушает совместимость с POSIX и NFS, а также значительно снижает производительность из-за синхронной записи метаданных на диск при каждой операции. Предложено два режим обеспечения отказоустойчивости: full_outage (по умолчанию) — создаётся локальная резервная копия состояния, позволяющая сохранить дескрипторы даже после полного отказа кластера, но увеличивающая нагрузку; partial_outage — более быстрая работа без резервной копии, но дескрипторы теряются, если все узлы кластера одновременно выйдут из строя.
Добавлен VFS-модуль vfs_aio_ratelimit, позволяющий задать ограничение интенсивности запросов (rate limit), действующее в контексте всего кластера, а не только в привязке к отдельным узлам. Для координации глобального применения ограничений на каждом узле должен быть запущен фоновый процесс ratelimitd, агрегирующий активность всех процессов smbd на узле и передающий информацию на другие узлы кластера. Включение vfs_aio_ratelimit осуществляется на этапе сборки через указание опции »--with-ratelimitd».
Добавлен VFS-модуль vfs_ceph_rgw для Ceph RGW (Object Gateway), позволяющий экспортировать данные из Ceph Object Gateway в виде SMB-хранилища с иерархическим представлением хранимых объектов в форме обычных файлов и каталогов с разделением доступа на уровне POSIX uid/gid.
Реализованы уровни функциональности кластера, напоминающие уровни домена и леса в Active Directory и позволяющие поэтапно обновлять узлы в кластере (rolling upgrade). Форматы БД и внутренние форматы обмена сообщениями, влияющие на взаимодействие узлов, изменяются только после явного повышения уровня для всего кластера, что гарантирует совместимость узлов с разными версиями Samba во время обновления. Управление осуществляется через команды «net clusterlevel features|show|showall|upgrade».
Для шифрования в домене по умолчанию задействованы алгоритмы aes128-cts-hmac-sha1–96 и aes256-cts-hmac-sha1–96 для доменов с уровнем функциональности 2008 и выше. Изменение блокирует проявление уязвимости CVE-2026–20833, вызванной использованием ненадёжных методов шифрования в Windows Kerberos.
В CTDB файлы с блокировками, PID и сокетами перемещены в подкаталоги ctdb/. Скрипт инициализации ctdb.init перемещен в ctdb/doc/examples. Добавлена поддержка мониторинга хостов, таких как DNS-серверы. Функция detect_init_style () и переменная CTDB_INIT_STYLE объявлены устаревшими (вместо них рекомендуется использовать CTDB_PLATFORM_STYLE).
Источник: http://www.opennet.ru/opennews/art.shtml? num=66341
© OpenNet
