9 августа 2011 года состоялся долгожданный выход версии 3.6.0 файлового и принт-сервера Samba.
Смена номера текущей серии в этот раз далась команде разработчиков действительно непросто.
После выхода версии 3.5.0, задержанной на 3 месяца относительно запланированной согласно шестимесячному циклу разработки даты, на конференции SambaXP 2010 команда разработчиков Samba приняла решение о переходе на девятимесячный цикл мажорных релизов, чтобы располагать большим количеством времени для внедрения новых возможностей в следующие продакшн релизы, начиная уже с выпуска 3.6.0, и, конечно, более основательного их тестирования.
Также не скрывалось желание воплотить в реальность шутку Джереми Аллисона (Jeremy Allison):
It takes 9 months to do a Samba release, no matter how many engineers are involved
К сожалению, выпустить 3.6.0 согласно новому девятимесячному плану не удалось: первоначальная дата релиза, 13 января 2011 года, была просрочена и перенесена сначала на 21 июня, а затем на 6 июля.
Но и 6 июля релиз не состоялся из-за двух блокирующих ошибок.
А 7 июля как гром среди ясного неба Фолькер Лендеке (Volker Lendecke) сообщил в рассылке об обнаружении глубокого архитектурного изъяна в коде SMB2-сервера. И это при том, что 3.6.0 был запланирован как первый стабильный выпуск Samba с поддержкой SMB2. Релиз был вновь отложен на неопределённое время, а среди участников рассылки зазвучали предложения выпустить 3.6.0 без поддержки SMB2.
Однако спустя месяц выпустив и оттестировав ещё один, третий по счёту релиз-кандидат, Samba Team устами релиз-менеджера Каролин Зигер (Karolin Seeger) официально объявила о выходе Samba 3.6.0.
Теперь о главных изменениях и нововведениях.
- Добавлена полнофункциональная поддержка протокола SMB2 диалекта 2.002 за исключением возможности изменения пользовательских квот при помощи инструментов Windows для управления квотами. По умолчанию поддержка протокола SMB2 выключена, чтобы задействовать её, необходимо в разделе [global] конфигурационного файла (smb.conf) установить значение опции max protocol = SMB2.
Некоторое повышение производительности при использовании протокола SMB2 может быть замечено при загрузке данных с файлового сервера Samba клиентами с ОС Windows Vista, Windows 7 или Windows Server 2008. Но поскольку диалект 2.002 протокола SMB2 не поддерживает мультикредитные запросы, максимальный размер пакета-ответа на запрос клиента будет составлять 64KiB, в то время как файловые сервера с поддержкой протокола SMB2 диалекта 2.10 на базе Windows 7 и Windows Server 2008 благодаря поддержке мультикредитных запросов имеют максимальный размер ответного пакета по умолчанию равный 1MiB, что положительно сказывается при передаче больших файлов. - Изменился способ получения информации о локальном пользователе и его группе в Winbind. Вместо вызова функций passdb теперь используются внутренние samr и lsa RPC конвейеры.
- Значительно переработан код spoolss (диспетчер очереди печати). Кодовая база была модифицирована таким образом, что все вызовы, касающиеся печати, в конечном итоге передаются на RPC интерфейс spoolss. Также изменён способ хранения информации, запрашиваемой клиентами для печати: из TDB-файлов данные перемещены в winreg-файлы, при этом все запросы осуществляются через winreg RPC. Миграция со старого способа хранения данных в TDB файлах может быть осуществлена вручную командой net printer migrate или автоматически при первом запуске на принт-сервере Samba версии 3.6.0, сконфигурированной при сборке с тем же каталогом для кеша, что и предыдущая рабочая версия (параметр --with-cachedir).
- В очередной раз переработан код отображения идентификаторов пользователей (id mapping). На этот раз произведено разделение кода систем хранения отображений (tdb, tdb2 и ldap бэкенды idmap) и собственно кода, выполняющего отображение. Методы, используемые для хранения и удаления отображений идентификаторов, были изъяты из API winbindd и теперь работают с базами напрямую. Также были удалены ряд опций конфигурационного файла, утративших свой смысл в связи с внесёнными изменениями (idmap uid, idmap gid, idmap range, idmap alloc backend).
- Добавлена собственная реализация RPC Endpoint Mapper — диспетчера конечных точек RPC.
- Добавлена новая версия анализатора SMB трафика — SMB Traffic Analyzer (SMBTA) VFS module protocol 2 с поддержкой шифрования, предназначенного для анализа использования ресурсов Samba-сервера VFS-клиентами.
- Добавлен новый бэкенд для работы с квотами NFS, основанный на существующей в Solaris/FreeBSD реализации. Он позволяет получать правильную информацию о количестве свободного места на смонтированных ресурсах NFS, которые затем были расшарены через Samba.
- Продолжается реструктуризация кода, призванная обеспечить лучшее разделение подсистем, более быструю сборку, меньший размер бинарников и ликвидировать проблемы с неразрешёнными зависимостями во время сборки при помощи Waf, о которых неоднократно сообщали пользователи в рассылке samba-technical в последнее время.
- Как и было анонсировано ранее, объявлены устаревшимы, но тем не менее пока ещё поддерживаются опции конфигурационного файла security=share, username, security=server, password level, password server=server:port, use spnego, enable privileges, null passwords. Подробно причины обоснованы Эндрю Бартлетом (Andrew Bartlett) в рассылке и файле WHATSNEW архива с исходными кодами, кратко можно отметить, что большинство из вышеупомянутых опций несовместимы с моделью аутентификации NTLMv2 либо будут удалены в будущих релизах Samba в связи со слиянием кодовой базы Samba3 и Samba4 и унификацией методов аутентификации.
- Исправление значительного числа ошибок.
В качестве послесловия: несмотря на кажущиеся проблемы, корректирующие выпуски в ветках 3.5.*, 3.4.* и 3.3.* продолжают исправно выходить, так последними стабильными версиями в этих ветках являются 3.5.11 от 4 августа, 3.4.14 и 3.3.16 от 26 июля этого года соответственно.
Материалы анонсированной на ЛОРе юбилейной 10-ой международной конференции The Samba eXPerience 2011 уже не первый месяц как доступны для загрузки всем желающим.
Медленно, но верно продолжается разработка Samba4: после выпуска 16-ой alpha специально для команды OpenChange, Эндрю Бартлет (Andrew Bartlett) поделился планами о дальнейшей разработке в рассылке.
По его словам после выпуска 17-ой alpha версии в августе этого года будет составлен план по выпуску релиз-кандидатов мажорного выпуска 4.0.0. Также чуть ранее в рассылке обсуждался набор возможностей, которые будут включены в первый стабильный выпуск четвёртой ветки, и набор каталогов «по умолчанию» для Samba4.
Cтоит упомянуть и о продолжающейся работе по слиянию кодовой базы третьей и четвёртой веток: уже несколько месяцев как сборка осуществляется из каталога верхнего уровня дерева исходных кодов, а не подкаталога source3 как было до этого.
Не стоит на месте работа над четырьмя проектами для Samba в рамках GSOC 2011: поддержка протокола SMB2 в CIFS-модуле ядра Linux, «наведение красоты» в веб-интерфейсе SWAT, разработка Samba Control Center на базе Samba-Gtk для конфигурации Samba4 и поддержка удалённого конфигурирования Samba по RPC.
>>> Исходный код