LINUX.ORG.RU

Samba 4.0.0

 , ,


3

1

Samba 4.0.0 — путь в девять лет до первого стабильного релиза ветки с поддержкой функций Active Directory

Вопреки тоннам скепсиса, отсутствию внутри сообщества веры в доведение проекта до энтерпрайз-уровня, многочисленной критике выбранных при реализации решений и часто встречавшемуся непониманию необходимости в проекте, но в то же время исключительно благодаря кропотливому труду сплочённой команды разработчиков и тестировавших программный продукт сисадминов-энтузиастов, это наконец свершилось сегодня, 11 декабря 2012 года, - вышел первый стабильный выпуск четвёртой ветки файлового и принт-сервера Samba с поддержкой Active Directory Domain Services.

Сообщение об этом знаменательном событии было опубликовано в рассылке samba-announce релиз-менеджером Samba Team, Каролин Зигер (Karolin Seeger).

Прежде чем рассказать о возможностях, которые открывает релиз Samba 4.0.0, давайте вспомним историю разработки этого проекта. Если вы провели всё это время вместе с разработчиками Samba Team, то пролистайте с десяток абзацев вниз.

Можно предположить, что толчком к началу разработки Samba4 в марте 2003 года стал выход в это же время ОС Microsoft Windows Server 2003, которая содержала улучшенную в сравнении с Microsoft Windows Server 2000 версию Active Directory, Open Source реализацией которой должна была стать (и стала) Samba4. Однако скорее всего это не так, и разработчики Samba Team, представляя крупные ИТ-компании, имеющие в пакете услуг поддержку комплексных интегрированных решений на базе Unix/Linux - Red Hat, IBM, Cisco, SerNet и прочие, - держали в голове многочисленные запросы от клиентов, которые хотели от файлового и принт-сервера Samba нечто большего, а именно единого решения для управления пользователями, а это single-sign-on, разделение привилегий, групповые политики и т. п., как для зоопарка ОС семейства Microsoft Windows, так и для рабочих станций с ОС Linux, сочетая в себе с одной стороны максимальное подобие и совместимость с продуктами корпорации из Редмонда, а с другой - предоставляя привычные для nix-систем механизмы настройки и обслуживания.

Итак, 13 августа 2003 года Эндрю Триджел (Andrew Tridgell) официально начал долгий и нелёгкий путь разработки Samba4 созданием отдельной ветки тогда ещё в CVS-репозитории (Samba Team перейдёт с CVS на Subversion в апреле 2004, чтоб затем в январе 2008 перейти с Subversion на Git), о чём в рассылке samba-cvs осталось памятное свидетельство коммита. В тот же вечер в рассылке samba-technical Триджел опубликовал письмо «Samba4 initial code», в котором сообщалось буквально следующее:

As some of you have noticed we have released a first
testing version of the Samba4 code in a separate cvs area called
'samba4' on samba.org.

First off I want to explain that this is a long long way from being
production code. It is very incomplete in many areas and downright
broken in others. The main aim of this release is to give everyone an
idea of the general architecture that is planned for Samba4.

С перечнем целей и задач, которые поставили перед собой более девяти лет назад разработчики на то время Samba 2.2.x и только вышедшей ветки Samba 3.0.x, можно ознакомиться в презентации Эндрю Бартлета Samba 4 Status Update, опубликованной на международной конференции SambaXP 2004 вскоре после начала разработки, и в статье Фолкера Лендеке (Volker Lendecke) Advances in Samba4: помимо совместимости с Active Directory во главу угла ставилось полная реализация всех требуемых протоколов, асинхронность операций, инфраструктура тестирования для выявления регрессий, автогенерация RPC-инфраструктуры.

В конце 2004 года Samba4 преодолела важную стадию: Эндрю Триджел установил её своей жене Сьюзен в качестве файлового сервера для важных (sic!) документов. А в начале 2006 во время Linux.conf.au в Новой Зеландии был представлен technology preview 1 (TP1), с реализованными LDAP-каталогом и LDAP-бэкендами, центром распространения ключей Kerberos (KDC), виртуальной файловой системой (VFS) для добавления необходимых и адаптации имеющихся атрибутов файлов в виде необходимом для клиента (речь о NT ACL's), и даже JavaScript-интерфейсом!

Итого на пути к последней перед стартом alpha-тестирования preview-версии TP5 в июне 2007 года уже работал ввод и логин в домен, базовая поддержка SMART-карт, LDAP-бэкенд в реализации Fedora DS. Примерно к тому же времени появились наработки по поддержке протокола SMB2, кластеризации при помощи CTDB и альтернативе для сервера Microsoft Exchange - OpenChange, а Стефан Метцмахер (Stefan Metzmacher) опубликовал бакалаврские тезисы по репликации ActiveDirectory с использованием DRSUAPI. Как и год назад, во время доклада на конференции SambaXP 2006, поддержка групповых политик (GPO) ещё не была реализована, простейшая её реализация появилась лишь через девять месяцев после TP5 в первой альфе Samba4 в сентябре 2007.

Последующие альфы выпускались без чёткого соблюдения какого-либо цикла, и между релизами проходило обычно три, шесть, а то и девять месяцев. К третьей альфе JavaScript-интерфейс заменили биндинги на Python, костыли для сборки на Perl заменили на GNU Make, но Makefile писали вручную, окончально перехали на Git, а beta1 запланировали на конец 2008 года. В то же время поддержка LDAP-бэкендов уже тогда стала достаточно непростой из-за ряда особенностей в реализации LDAP от Microsoft. Как окажется позднее, более половины из перечисленного разработчикам взбредёт в голову переделать ещё раз, в том числе и отложить дату перехода к бета-тестированию, как окажется, на четыре года. Некоторые решения станут компромисом по причине отсутствия полноценных реализаций, запланированных быть написанными с чистого листа, как например франкенштейн «Franky», в последствии трансформировавшийся в s3fs, - сшитый из третьей и четвёртой ветки для работы AD-реализации из кодовой базы Samba4, а файлового сервера, наново написанный код которого в Samba4 не содержал многих требуемых функций, и принт-сервера, которого просто-напросто ещё не было, из отлаженной и оттестированной кодовой базы Samba3.

А тем временем в Microsoft не сидели сложа руки, выпустив за период 2007-2009 годов Windows Vista, Windows Server 2008 aka Longhorn, Windows 7 и Windows Server 2008 R2. Казалось бы, всё что сделано командой разработчиков Samba в рамках работы над совместимостью с 2003-им сервером теперь можно выбросить в топку, и всё придётся начинать сначала? И так с выходом каждой новой версии серверного продукта Windows? Команда Samba опровергла эти опасения, правда малость отстав, реализовав поддержку схемы совместимой с 2008-ым сервером и ввод в домен Vista/7 к выходу alpha8 в середине 2009 года. Помогло им или нет в этом решение Еврокомиссии в 2008 году, вынудившее Microsoft открыть документацию по некоторым своим проприетарным протоколам, сказать сложно, особенно с точки зрения полноты этой документации: для получения полной LDAP-схемы AD с использованием документации и не только ушло по словам Эндрю Бартлета полгода. А вот приглашения разработчиков Samba на Plugfest'ы, проводившиейся сначала Microsoft, а после отказа от этих мероприятий в Microsoft проводившиеся под эгидой SNIA, помогли выявить большое количество багов в разрабатываемом продукте.

Перевалив за десяток, альфа-версии стали весьма неплохи: всё больше добровольных альфа-тестеров писали в рассылку samba-technical об успешной сборке из исходных кодов, конфигурации (provision) и эксплуатации инсталяций Samba4 в малых и средних сетях. Сам Эндрю Бартлет неоднократно в рассылке и на конференциях SambaXP упоминал о «secret Russian production site», во время реальной продакшн-эксплуатации которого проявлялись неочевидные баги. После 16-ой альфы стабилизировался формат LDB-базы. Однако всё ещё не было встроенного сервера печати и поддержки NetBIOS - для этого необходимо было использовать сервер третьей ветки. Сервер DNS до 17-ой альфы надо было поддерживать самостоятельно в соответствии с Samba4/Howto, лишь в 18-ой версии появился выбор между встроенным DNS-сервером, DLZ-плагином к версиям BIND старше 9.8 и поддержкой файлов зон по старинке. Существовала и проблема с синхронизацией времени для Kerberos из-за надстроек Microsoft для Secure NTP: временным решением до момента интеграции NTP-сервера было использование хука к NTPd. Зато в 17-ой альфе появилась замечательная утилита samba3upgrade, позволяющая мигрировать с DC на Samba3 на Samba4. В марте 2010 после длительных дебатов Cmake vs SCons vs else состоялся переход на фреймворк сборки Waf, который помог задействовать ряд интересных приёмов при сборке проекта, связанных с разрешением зависимостей и линковкой. По состоянию на 2010 год достаточно стабильно работала DRS-репликация, GPO, удалённые профили и сайты, а во время проведения конференции SambaXP 2011 Мэтью Пато (Matthieu Patou) даже сообщил об успешной попытке расширения схемы Samba4 для поддержки Zarafa. Не обошлось и без непопулярных решений: так Эндрю Бартлет подняв вопрос о целесообразности поддержки LDAP-бэкендов, которые многие видели как способ связать воедино существующие решения на базе OpenLDAP и возможности Active Directory, предоставляемые Samba4, поднял волну негодования и разочарования среди потенциальных внедренцев проекта.

В таком состоянии Samba4 открыла счёт третьему десятку альфа выпусков весной 2012 года, давно получив в среде интересующихся несмотря на довольно стабильную работу прозвище «Вечная альфа». Но вечно такое положение вещей в проекте продолжаться не могло: сотрудничество с такими интеграторами как SerNet, Univention GmbH, до недавнего времени Resara LLC и другими, давало свои плоды в виде давления на разработчиков. Подобные этому пресс-релизы давали дополнительную надежду на коммерческую поддержку решений на базе Samba4 конечным пользователям. И Эндрю Бартлет сдался в конце 2011 года, заявив, что готов выпустить Samba 4.0.0 пускай с неполной функциональностью, но без приевшихся приставок греческого алфавита.

Заявленное тогда окно для релиза в три месяца по правде говоря выглядело изначально недостаточным - в итоге понадобился ровно год. Этот год был весьма напряжённым, особенно его вторая половина после начала подготовки beta-выпусков в мае 2012 года. Первая beta, выйдя в начале июня, содержала встроенные серверы NTP и DNS, позволяя для последнего в качестве альтернативы использовать механизм DLZ для ISC Bind 9.8/9.9; два файловых сервера: из четвёртой (NTVFS) и третьей (s3fs) ветки, с сервером третьей ветки по умолчанию. Восьмой beta-выпуск в конце августа завершил «летнюю» beta-серию Samba4 реализацией печати (spools-траффик обслуживает сервер третьей ветки благодаря включенному по умолчанию s3fs) и возможностью эксплуатации при наличии MIT Kerberos в системе (как в Fedora, например) благодаря встроенному Heimdal и overlink'ингу. Компиляция же с MIT Kerberos вместо Heimdal не позволит на данный момент иметь в Samba4 возможности AD DC.

RC1 не заставил себя долго ждать и начал осень релиз-кандидатов с добавления поддержки версии протокола SMB3 и включения её по умолчанию, правда без поддержки multi-channel, как и без поддержки lease для версии 2.1 протокола. Завершилась напряжённая осенняя пора чистки багов 4 декабря 2012 года с выходом RC6 и запланированным релизом Samba 4.0.0.

Теперь собственно о релизе:

Samba4 включает в себя:

  • LDAP-сервер, хранящий схемы в формате LDB;
  • имплементацию Kerberos 5 KDC Heimdal;
  • две альтернативы для файлового сервера:
    • NTVFS - асинхронный стекируемый файловый сервер с поддержкой POSIX-бэкенда, разработанный с чистого листа специально для Samba4;
    • s3fs - файловый сервер третьей ветки Samba, включенный по умолчанию в Samba 4.0.0 как более функциональный и оттестированный;
  • сервер печати силами сервера третьей ветки Samba;
  • сервер доменных имён (DNS) посредством:
    • встроенного DNS-сервера;
    • DLZ-плагина к ISC BIND версии 9.8 и старше;
  • NTP-сервер с функцией цифровой подписи посредством ntpd >= 4.2.6;
  • Python Scripting Interface, который позволяет получить доступ к внутренностям Samba4, собственно поэтому часть инструментов для управления контроллером домена написаны на Python.

В Samba 4.0.0 разработчики реализовали и оттестировали до различной степени готовности следующие функции:

  • стабильные:
    • преобразование идентификаторов пользователей и групп из представления Unix в представление Windows (Winbind);
    • логин учётных записей пользователей в домен;
    • учётные записи рабочих станций;
    • групповые политики (GPO);
  • тестируется:
    • DRS-репликация (известны случаи отказов при репликации);
  • на этапе завершения внедрения:
    • поддержка протоколов SMB2 и SMB3 и в файловом сервере NTVFS, и в файловом сервере s3fs, с протоколом по умолчанию SMB3;
    • запуск файлового и принт-сервера третьей ветки не отдельным процессом, а форком из процесса samba с настроенной аутентификацией файлового сервера в домене Samba4;
  • в активной разработке:
    • встроенный DNS-сервер (пока без поддержки DNSSEC);
    • доверительные отношения (Domain Trusts);
    • консольная утилита для администрирования samba-tool (могут также использоваться встроенные в Windows средства администрирования AD);
    • оригинальный файловый сервер четвёртой ветки NTVFS (не содержит полной реализации всех необходимых атрибутов);
    • сервер печати (пока посредством сервера третьей ветки);
    • RODC (Read Only DC);
    • поддержка схем Microsoft Exchange.

Как и много лет назад, каждый желающий протестировать Samba4 должен начать с прочтения статьи Samba4/HOWTO на Samba-wiki. За годы разработки в базе знаний проекта количество статей по Samba4 выросло до двух сотен и содержит почти всю историю разработки от первых планов и двухнедельных фантазий Эндрю Бартлета и Джелмера Верноий (Jelmer Vernooij) до текущего статуса проекта и многочисленных руководств.

Получить поддержку и узнать подробнее о статусе проекта как всегда можно в IRC-канале #samba и рассылке samba, а узнать о последних новостях, успехах, проблемах в разработке и присоединиться к Samba Team соответственно в IRC-канале #samba-technical и рассылке samba-technical.

И как заведено: «Our Code, Our Bugs, Our Responsibility. The Samba Team.»

Автор новости — Андрей Шинкарчук

>>> Подробности

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 4)

Круто, ну наконец.

tazhate ★★★★★
()

Не вышло бы, как с релизом ядра 3.7 неделю назад.

RussianNeuroMancer ★★★★★
()

Немного странный анонс для стабильного релиза. Куча вещей «различной степени готовности»

svu ★★★★★
()

Вышло!
Samba 4.0 released - The First Free Software Active Directory Compatible Server is now available !

kerneliq ★★★★★
()
Последнее исправление: kerneliq (всего исправлений: 2)

Не знаю, что это такое, но всегда приятно видеть конечный результат

anonymous
()

Есть ли смысл ставить 4 самбу если просто нужно шарить файлы, для 3-5 пользователей?

Сейчас используется nfs.

crimson
()

Ещё один бастион винкапца пал :D, активно следил за развитием проекта первый пяток лет, потом не до этого стало ...

vtVitus ★★★★★
()

Поздравляю всех, особенно авторов проекта. Начиная с 2005 года ждал и надеялся на него. Не зря слал доннаты с каждой зарплаты, ой не зря ;)

fjfalcon ★★★
()

Ну нифига себе. Давайте нажремся и будем водить хоровод, хотя как-то по описанию непохоже это на полноценный релиз.
А как там у никсов на стороне клиента с поддержкой GPO?

thesis ★★★★★
()
Ответ на: комментарий от wheel

примерно те же мысли. вроде майкрософт на ладан дышит, а далее судьба винды наверное будет такой: выйдет толстенный талмуд «Исходники Windows с комментариями RMS, или как не нужно писать операционки».

Komintern ★★★★★
()

GPL v3 не может не радовать.

anonymous
()

Ура, товарищи! Урра! Ёпта! Нововсть мне напомнила, что у меня дома тоже ведь стоит самба. Несколько лет уже, я уж забыл, какая. Просто стоит и тупо работает...

anonymous
()

Ну вот, еще пару лет и может можно ставить в конторе на пару десятков человек.

JackDaniel
()
Ответ на: комментарий от Reset

Нет. Более того, nfs быстрее.

С nfs-ом много геморроя с uid/gid, которые должны везде совпадать. Ну или крутить аутентификацию через kerberos, но это сложно для дома.

anonymous
()

Видел этот тред на одной странице.

По сабжу - это замечательно. Просто офигенно. Просто не выразить, как. Теперь, кажется, то, что было когда-то преимуществом Линукс ХР - даже это не спасло бы их.

П.С. макском, верни анонимусов в токс.

anonymous
()
Ответ на: комментарий от Komintern

сдаётся мне, что вендекапец рано или поздно таки наступит, но никто ему не будет рад, всё будут с грустью вспоминать тёплую ламопвую винду

Harald ★★★★★
()

Супер новость, слава богу, для меня неактуальная :)

GoNaX ★★★
()

Вовремя, я как раз начал думать, что виндовый АД мне нафих ненужен, но некоторые фичи оставить было бы неплохо. Вобщем похоже нашёл себе занятие на новогодние праздники :) Ждите логи в технических разделах :)

aleks13
()
Ответ на: комментарий от Lennox

Молодцы. Аккурат под конец света.

А может майя предсказывали не конец света, а вендекапец?

askh ★★★★
()

Новость достойно раскрывает столь нелёгкую судьбу такого долгожданного сервера.

vilisvir ★★★★★
()
Ответ на: комментарий от aliens

Оно запускается элементарно. А вот косяки выгребаются с ужосом.

AlexVIP
()
Ответ на: комментарий от Reset

А можно по NFS заходить через dolphin/nautilus, не монтируя раздел, а вводя в строке что-то вроде nfs://x.x.x.x/sharefolder ? (не пробовал просто)

NFS поддерживает аутентификацию?

(я не в теме просто немного, пользуюсь samba для шаринга папок по беспроводной сети для ноутбука... м.б. мне этот NFS и не нужен)

BattleCoder ★★★★★
()

Все, пропал калабуховский д^U Пропал новый год, сон в оливье, диатез от мандаринок пропал отдых...

D_Ima
()

Раньше бы на пару лет) А так, пока крутим AD на винде и все отлично работает ведь)

anonymous
()
Ответ на: комментарий от BattleCoder

А можно по NFS заходить через dolphin/nautilus, не монтируя раздел, а вводя в строке что-то вроде nfs://x.x.x.x/sharefolder ? (не пробовал просто)

Да, можно.

(я не в теме просто немного, пользуюсь samba для шаринга папок по беспроводной сети для ноутбука... м.б. мне этот NFS и не нужен)

У меня в локалке nfs, и, в принципе, ничего. Без аутентификации, да, но все компы в сети доверенные.

anonymous
()
Ответ на: комментарий от splinter

Что там, в Норильске делать, даже и с samba4?

zgen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.