Speaker Rabbit

abbra


CIFS: curious information funneled sometimes


Previous Entry Share Next Entry
Отчет о SambaXP 2012
Speaker Rabbit
abbra
8-11 мая в Гёттингене (Германия) прошла конференция SambaXP (http://sambaxp.org). В год проходит несколько мероприятий, на которых собирается большинство разработчиков Samba и SambaXP -- главная из них в Европе. Конференция была впервые организована в 2002 компанией SerNet, расположенной в Гёттингене, и вот уже 11 лет радует встречами разработчиков, производителей решений на основе Samba и их пользователей.


Помню, когда я выступал на SambaXP в 2002 году, главный впечатлением для меня было то, насколько же тесен мир. Я столкнулся на станции Гёттингена с Лутцем Пресслером, с которым мы дружно пережили первый OSDEM (сейчас уже FOSDEM). Это потом я узнал, что он работает в SerNet и отвечает за звук на конференции. Каждый приезд на конференцию остается неизменным: Лутц отвечает за звук, а конференция проходит по-немецки стабильно.

Обычно конференцию предваряет однодневный практический курс, на котором рассматриваются сисадминские задачи -- winbind, организация печати и так далее. В этот раз курс был посвящен разворачиванию контроллера домена, совместимого с Active Directory, на основе Samba 4. Читал его доктор Арвид Реквате из Univention. Участие в курсе платное и количество мест ограничено, но они всегда заняты. В этот день в отеле, где проходит конференция, помимо участников курса обычно только члены Samba Team, а основной поток посетителей заезжает в первый день конференции.

Забронировав билеты за пару месяцев, я расчитывал приехать как раз к вечеру этого дня. Так и получилось, но из-за заранее заказанных билетов не удалось попасть на еще один курс: авторы протокола SMB3 из Microsoft организовали "учебный день" для членов Samba Team. О SMB3 чуть позже, а из "учебного дня" я, увы, застал только ужин, спонсированный той же Microsoft. Microsoft принимает участие в конференции официально с 2007 года, по разным причинам и разным мотивам, но доклады ведущих архитекторов и разработчиков файловой инфраструктуры Windows всегда интересны и детальны.

Первый день конференции начался со вступительного слова организаторов. Фолькер Лендеке, один из основателей SerNet и, по-моему, первый европейский разработчик в Samba Team, отметил, что конференция проходит уже 11 лет и рассказал, что нас ждет. Фолькер скромен, но настойчив, благодаря его усилиям Samba долгое время поддерживает более 60 различных операционных систем, как совместимых с POSIX, так и нет. Без Фолькера и SerNet подобной конференции просто не могло бы быть.

От программного комитета конференции выступил Джон Терпстра (Dell, Samba Team). Джон создал Samba Team как проект в 1995, заставив тогдашних разработчиков задуматься о том, что у их детища есть пользователи и ответственность перед ними. В своем докладе он провел анализ прошедших 20 лет с момента создания Samba тогдашним студентом Эндрю Триджеллом, пытаясь ответить на вопрос, что требуется для успешной организации и устойчивого развития проекта, движимого волонтерами.

Следующим был традиционный доклад Дирка Хёнделя (Intel). Intel наряду с Google выступает традиционным спонсором конференции, ставя Дирка в сложную ситуацию поиска новых тем для обязательного "доклада от спонсора". В этом году Дирк размышлял о том, как облачные вычисления и тенденция к миграции офисных задач на ориентированные на потребительство мобильные системы меняет области применения сетевых файловых систем. К сожалению, Дирк не смог дать хороший прогноз на будущее, а только повторил вслед за Джоном: свободным проектам необходимы визионеры и энергичные лидеры, способные пойти дальше, чем часто произносимое "Свободное ПО воплощает уже осуществленное коммерческими компаниями, только лучшего качества".

После роскошного обеда настало время юридических вопросов. Брэдли Кун (Software Freedom Conservancy) рассказал о том, как в США проходит защита прав авторов свободного ПО под лицензией GNU GPL. Подробно на эту тему он уже выступал в прошлом году (текст: http://sambaxp.org/fileadmin/user_upload/SambaXP2011-DATA/day1/compliance.pdf, выступление: http://sambaxp.org/fileadmin/user_upload/SambaXP2011-AUDIO/samba_xp_2011_-_tuesday_-_03_bradly_m._kuhn_-_samba%2C_gpl_enforcement%2C_and_the_gplv3.mp3), поэтому в этот раз он остановился на том, что случилось за год. Китайские и тайваньские компании активно продают в США разнообразных устройств под управлением ядра Linux и соответствующего ПО, но при этом не платят налоги в США и не всегда соблюдают авторское право. Типичным является использование компаний-ширм, которые заключают дорогостоящие контракты с единственным поставщиком в Китае/на Тайване и "сливают" по этим контрактам все свои доходы от продаж устройств в США. В результате, налоги платить не с чего, а при попытках выяснить, почему используется именно этот дорогостоящий поставщик все упирается в "мы считаем его наилучшим по соотношению цена-качество". Фактически, такие компании сознательно работают на грани социальной безответственности и ухода от налогообложения. При этом компании тратят немалые деньги на юристов, которые добиваются абсолютно минимального соответствия формальным требованиям лицензий, за нарушение которых на эти компании подают в суд (скажем, Busybox), но не более. В некоторых случаях они даже тратят усилия на то, чтобы доказать, что происхождение определенного кода в том же Busybox невозможно отследить достоверно, не говоря уже о том, чтобы привести в соответствие с лицензионными соглашениями остальные части своих продуктов.

Брэдли обратил внимание на то, что если не заниматься привлечением к ответственности нарушителей GNU GPL, то такая лицензия не будет в сущности ничем отличаться от лицензии ISC (https://en.wikipedia.org/wiki/ISC_license). Если разработчики хотят, чтобы их программное обеспечение использовалось коммерческими компаниями вроде Apple и других без желания создавать сообщество вокруг проекта, то пусть так и будет, однако Брэдли все же считает, что воля лицензировавших свою работу под GNU GPL должна быть защищена. Software Freedom Conservancy как раз и занята активной помощью проектам, которые находятся под ее покровительством и на эту тему скоро будут новости. SFC сейчас включает в себя 27 проектов, такие как ядро Linux, Busybox, Samba, Amarok, Boost, Git, Inscape, Wine, Twisted, SWIG, uCLibc, еще около десятка войдут в SFC в течение года. Подробнее на http://www.sfconservancy.org/.

После приветственных докладов началась и сама конференция. Первым был доклад Microsoft о будущем протокола SMB, за которым последовал доклад от Samba Team о том, насколько это будущее уже реализовано в Samba.

От Microsoft выступал Томас Пфеннинг, (General Manager of the Server and Cloud Division), Том Талпи (архитектор SMB) и Джим Пинкертон (Partner Architect). Они вкратце изложили работу за последний год по продвижению SMB в область высокопроизводительных вычислений. Протокол SMB3 (первоначально планировалось эту редакцию протокола назвать SMB2.22) включает поддерку множественных многоканальных запросов в рамках одного соединения. В реализации протокола в Windows Microsoft обеспечила поддержку RDMA и транспорта поверх PCI-E, что позволило добиться 5.7Гбайт/с поверх Infiniband с номинальной пропускной способностью 54Гбит/с. Это очень неплохо, особенно учитывая, что загрузка CPU в такой конфигурации получается меньше, чем было ранее, как на стороне клиента, так и на стороне сервера. Поддержка многоканальных запросов важна для распределения нагрузки между многочисленными ядрами процессоров. На сегодня сетевая инфраструктура уже давно не является узким местом, оно сместилось как раз на сторону ОС и в первую очередь зависит от того, как устроены протоколы передачи данных, позволяют ли они эффективно распараллеливать обработку данных.

Томас также отметил, что с SMB3 в Windows, наконец, появится active-active failover. В Samba поддержка active-active failover существует с 2005 года (CTDB). Дополнительно с ростом дискового пространства пришлось улучшать и надежность NTFS. Так, был полностью переписан chkdsk, чтобы свести до минимума время простоя во время исправления томов в несколько десятков терабайт. Новая версия NTFS сама старается исправлять ошибки, от которых можно восстановиться, во время работы, а остальные найденые ошибки помечает специальным образом. В результате, когда том NTFS отключается для обслуживания, chkdsk пытается исправить только уже найденные ошибки (95% времени раньше уходило на сканирование тома для определения неполадок).

Следом Стефан Метцемахер и Михаэль Адам (SerNet, Samba Team) продемонстрировали свою работу над добавлением поддержки SMB3 в Samba. Они занялись разделением непосредственно протокольной поддержки и реализации остальных необходимых серверных частей, что должно унифицировать нижележащий код относительно доступа по разным версиям протокола.

Они также продемонстрировали как работает поддержка SMB2 в Samba. Используя кластерную версию Samba с CTDB, они показали как клиент бета-версии Windows 8 копирует файлы с этого сервера. В момент копирования один из серверов, к которому подключен клиент, принудительно выключается. CTDB перехватывает имеющееся соединение и переводит его на второй сервер. Со стороны клиента это выглядит как временная приостановка и затем продолжение копирования без всяких видимых ошибок.

Первый день конференции закончился традиционной вечеринкой. Каждый год вечеринка проходит в новом месте -- в Гёттингене большой университет и 24 тысячи студентов, поэтому мест для увеселения хватает. На многих конференциях основной проблемой вечеринок является принципиальное непонимание клубами или барами, что программистам противопоказана громкая музыка. Бар "Ein Stein" в этом плане был приятным исключением.

Утро второго дня конференции было разбито на две параллельные секции. Мне пришлось пропустить практически все из них, пытаясь доделать демо своего выступления. Но все же у меня остались некоторые заметки от общения с докладчиками.

Крис Хертель (Red Hat, Samba Team) рассказал о своем прототипе реализации протокола PeerDist, Prequel. PeerDist и связанный с ним протокол BranchCache, используются в Windows для эффективной доставки содержимого при обновлении ОС и приложений. PeerDist позволяет запрашивать метаданные контента, а BranchCache кэшировать его локально. Новая версия протокола PeerDist позволяет передавать и запрашивать данные не по HTTP(S) как ранее, а под SMB2, что дает более быстрый канал доступа и значительные возможности манипулирования семантикой при работе с файлами.

Параллельно Давид Диссельдорп (SUSE, Samba Team) рассказывал о своем опыте работы с BTRFS. Давид реализовал в Samba поддержку протокола File Server Remote VSS, позволяющий удаленно работать с копиями файлов разного времени. Затем он наложил эту поддержку на механизм снапшотов в BTRFS. Теперь снапшоты BTRFS видны как разные точки доступа по SMB2.

Затем было два параллельных доклада, которые я тоже хотел посетить, но не смог. Доклад о том, как Samba поддерживает GPFS, распределенную файловую систему от IBM, читал Кристиан Амбах (IBM, Samba Team), вместе с которым я работал в IBM над продуктом Scale-out File Service на основе кластерной Samba. Теперь продукт называется Scale-out NAS, SoNAS, и активно развивается. Второй доклад был от "новичка" Samba Team, Иры Купера из MathWorks. Той самой MathWorks, которая известна своими MATLAB и Simulink. Компания перешла на использование Samba в тестировании своих продуктов, когда они осознали, что для отделения своих ошибок от ошибок ОС требуется ответственный производитель или возможность отследить ошибки до их реального источника. Последнее было для них проще со свободным ПО, чем с закрытыми продуктами от Microsoft. В результате их тестовый стенд представляет собой масштабный высокопроизводительный кластер и работа Иры заключается в том, чтобы Samba не сбоила. А мы все получаем тестирование под очень серьезной нагрузкой (сопоставимой с загруженными системами из Top500) и уже найденные и исправленные ошибки в работе с блокировками.

Два следующих доклада касались файловых операций. Стив Френч (IBM, Samba Team) рассказал как поддержка SMB2 реализуется в ядре Linux, а Ричард Шарп (Dell, Samba Team) рассказывал как писать модули виртуальной файловой системы для сервера Samba. В полном соответствии с теорией, его первая попытка загрузить демонстрационный модуль в smbd провалилась и доклад превратился в показательную отладку прямо на сцене. Очевидно, что именно этого и ждали слушатели.

После обеда доклады из параллельных превратились в однопоточные. Йелмер Верноой (Canonical, Samba Team) продемонстрировал как разворачивать Samba 4 AD DC в облаках. Canonical использует Juju (http://juju.ubuntu.com) для разворачивания своего облачного флота, поэтому Йелмер написал модуль для Juju (charm, в терминологии Juju) для поддержки Samba 4 и продемонстрировал как развернуть Samba 4 AD DC в Amazon EC2.

Наш с Андреасом Шнайдером (Red Hat, Samba Team) доклад был посвящен нашей работе над поддержкой доверительных отношений между AD и FreeIPA в FreeIPAv3. Мы уже затрагивали эту тему на конференции Fedora в Брно (Чехия) в феврале, но на этот раз у нас было что показать. Сам доклад можно посмотреть тут: http://abbra.fedorapeople.org/freeipa.pdf. Вначале мы рассказали, что такое FreeIPA и SSSD, как они используются для разворачивания инфраструктуры на GNU/Linux. Затем мы показали, какие существуют варианты интеграции с Active Directory и в чем их недостатки. Их устранение заняло полтора года и потребовало существенных изменений как в Samba, так и во FreeIPA. В Samba была полностью переписана поддержка spoolss (инфраструктура печати), добавлена возможность выноса обработки отдельных каналов во внешние процессы для того, чтобы можно было обрабатывать SAMR и LSA по TCP/IP (smbd не поддерживал прямое обращение к этим каналам по TCP/IP). Во FreeIPA был полностью переписан драйвер сервера KDC и добавлена поддержка генерации информации MS PAC в билетах Керберос. Наконец, последние четыре месяца мы работали над возможностью использовать MIT Krb5 в Samba 4, потому что загрузка двух разных (Heimdal и MIT) реализаций Керберос в один процесс чревата всякими... проблемами, если сказать мягко. Надеюсь, что все это разнообразие войдет в Samba 4 beta1. Наконец, мы продемонстрировали как это все работает: пользователь из Windows зашел по SSH на сервер FreeIPA, используя свой билет Керберос, выданный AD DC и верифицированный FreeIPA KDC в совсем другом реалме.

Затем Джереми Эллисон (Google, Samba Team) рассказал об ужасах поддержки асинхронного ввода-вывода в сложном файловом сервере. Он продемонстрировал как развивалось API в Linux, GNU libc, и стандартизировалось в POSIX. О всех ужасах можно прочитать в его докладе: http://abbra.fedorapeople.org/samba-io-evolution.odp

Последний доклад Фолькера Лендеке был учебником по программированию с использованием tevent_req, основным механизмом организации асинхронного взаимодействия компонент в Samba на сегодняшний день. К сожалению, слайдов нет, так что придется ждать аудиозаписи выступления.

Конференция закрывается дискуссией с Samba Team. Все присутствующие члены команды выходят на сцену и представляют себя и чем они занимаются. От года к году людей в рядах на сцене прибавляется и приветствовать новых членов команды стало уже хорошей традицией. В этом году "новичками" было три человека, а кто-то из зала заметил, что такими темпами лет через десять весь зал перетечет на сцену.

Публика также стоя аплодировала Эндрю Триджеллу, который не смог приехать на конференцию в этом году. Проекту, который он начал, в феврале 2012 исполнилось 20 лет.

Наконец, после конференции прошел первый BarCamp. На день после конференции осталось довольно много слушателей и активно "приставали" к разработчикам со своими вопросами и проблемами.

К сожалению, мы не смогли достичь заранее поставленной цели и выпустить Samba 4 beta1 во время конференции, но все еще надеемся выпустить ее до конца мая. Или в первую неделю июня, как получится.

  • 1
Не очень ясно зачем поверх FC гонять прямо SMB...
И вообще, эти карты FC со стороны драйва выглядят чисто как дисковый контроллер, нифига не как сетевая карта :) ДАже если хочется туда TCP/IP засунуть :)

Представь себе кластер, который наружу отдает данные по SMB3, а внутри себя использует SMB3 для кластеризации. В этом случае SMB3 поверх RDMA в FC будет простым способом обеспечения общего состояния кластера. Дополнительно у них есть еще общее хранилище, естественно. Это для существующих инсталляций, где FC норма. Для новых сейчас все идет посредством массовых PCI-E, которые еще дешевле, это просто PCI-E backplane для машин в одной стойке. Драйвер RDMA для них пишется примитивно.

Речь, вероятно, не про Fibre Channel, а про InfiniBand.

На сегодня сетевая инфраструктура уже давно не является узким местом, оно сместилось как раз на сторону ОС и в первую очередь зависит от того, как устроены протоколы передачи данных, позволяют ли они эффективно распараллеливать обработку данных.
Самое смешное, что вот тут благодаря MS у нас есть EPIC FAIL.
MS придумала такую штуку, как flowid — хэш, который считает сетевая карта по пакету что бы определить в какую очередь приёма положить пакет. Так вот, оно работает только для IPv4, а всё остальное кладёт в очередь 0. И так как Windows в NDIS ничего другого не поддерживает (я про flowid, а не про протоколы, конечно), то никакие сетевые карты (Включая топовые Intel 10G) так и работают. В результате — никакой параллельности приёма в IPv6-Сетях (а так же в PPPoE, SCSIoverEthernet, etc) и когда эта ситуация измениться — неизвестно.

Ну и пусть MS сначала SMB2 в клиентах починит (https://bugzilla.samba.org/show_bug.cgi?id=8849) а потом SMB3 запиливает!

Блин, вот этот баг я забыл Пинкертону показать. :(

Вроде как в Windows 8 они это как раз исправить пытались. Ты смотрел?

Пока нет, не до Windows8 :) Но это будут нужны новые фирмвари к карточкам. Хорошо если так, если там новая версия NDIS где flowid не привязан к IPv4-заголовку :)

К сожалению, мы не смогли достичь заранее поставленной цели и выпустить Samba 4 beta1 во время конференции, но все еще надеемся выпустить ее до конца мая. Или в первую неделю июня, как получится.
Кстати, а сколько там человек в команде? Судя по коммитам — один. И где-либо кроме линукса оно толком на работает. Я пытался последнюю альфу на FreeBSD собрать — оно собирается но падает в самых неожиданных местах в корки. Правда, времени я потртил немного на разбирательства.

Уже не говоря о том, что 60 систем samba3, Конечно, поддерживает, но есть ньюанс… При том, что любой бенчмарк отдельной подсистемы на FreeBSD не хуже, выжать полную скорость провода из samba на FreeBSD — практически невыполнимая задача.

Я бы тут скорее укор выставил в сторону тех, кому FreeBSD и Samba на ней нужна. Потому что все коммерческие поставщики либо смотались уже довольно давно на Linux как ядро, либо на OpenSolaris, либо сидят и пилят сами себе, без желания и необходимости отдавать что-либо в сообщество.

Ты имеешь в виду AD DC часть? Человек пять, наверное. По поводу FreeBSD смотри ниже.

хех, что же ты не написал что там будешь? я бы добрался до гёттингена...

Леша, я же писал! :)
Справедливости ради, времени совсем не было.

блин, как-то я это дело упустил...

  • 1
?

Log in

No account? Create an account