LINUX.ORG.RU

Павел Шиловский закончил работу в рамках GSoC над поддержкой SMB2 в CIFS-модуле ядра Linux

 , ,


0

1

Подходит к концу GSoC 2011, и постепенно участники начинают сообщать об успешном завершении работ над своими проектами.

Так, вчера студент-выпускник факультета компьютерных наук и информационных технологий Саратовского государственного университета имени Н. Г. Чернышевского Павел Шиловский сообщил в списке рассылки samba-technical о завершении работы над поддержкой протокола SMB2 в CIFS-модуле ядра Linux.

Два с половиной месяца назад перед Павлом были поставлены следующие задачи:

  • портировать существующий код SMB2 в CIFS-модуль ядра Linux;
  • адаптировать параллельную и асинхронную инфраструктуры для работы в CIFS-модуле;
  • реализовать новую семантику кеширования согласно диалекту 2.10 протокола SMB2.

Следить за работой Павла над проектом можно было в публичных git-репозиториях Etersoft и ALT Linux.

В опубликованном в рассылке сообщении Павел кроме информации о завершении работы также предложил ознакомиться с результатами сравнительного тестирования реализаций первой версии протокола SMB и диалектов 2.002 и 2.10 протокола SMB2 в CIFS-модуле ядра в своём блоге.
Диалект 2.10 протокола использует механизм кеширования, позволяющий клиентам использовать кеш даже при нескольких открытых файловых дескрипторах одного и того же файла.
Согласно результатам теста, диалект 2.10 протокола SMB2 работает с кешем для операций ввода/вывода более эффективно (от пяти до шестнадцати раз в проведённых исследованиях), позволяя ускорить работу приложений, использующих во время работы несколько файловых дескрипторов одного и того же файла.

Теперь можно терпеливо ожидать включения кода, разработанного Павлом, в следующую стабильную версию LinuxCIFS utils или же опробовать версию клиента из репозитория Павла, естественно, с сервером, поддерживающим протокол SMB2, в роли которого может быть Samba 3.6.0, Windows Vista, Windows 7, Windows Server 2008/2008 R2.

>>> Сообщение в рассылке

★★★

Проверено: JB ()
Последнее исправление: adriano32 (всего исправлений: 7)

Ответ на: комментарий от h31

Выползи уже из криокамеры. С тех пор как smbfs начали выпиливать из ядра:

WARNING: smbmount is deprecated and not maintained any longer. mount.cifs (mount -t cifs) should be used instead of smbmount.

В новых версиях Samba ты её не найдёшь.

И да, smbmount теперь просто скрипт, вызывающий mount.cifs

$ ls -la `which smbmount`
lrwxrwxrwx 1 root root 17 2011-06-30 13:16 /usr/bin/smbmount -> /sbin/mount.smbfs
$ ls -la /sbin/mount.smbfs
-rwxr-xr-x 1 root root 2538 2011-02-24 20:39 /sbin/mount.smbfs
$ grep /sbin/mount.cifs /sbin/mount.smbfs
exec /sbin/mount.cifs "${args[@]}"
Debian Lenny.

adriano32 ★★★
() автор топика
Ответ на: комментарий от h31

Я к тому, что оба эти устаревших и неподдерживаемых клиента используют smbmount для своей работы.
Ты все ещё не понял? В коде Samba-сервера нет кода, который мог бы использовать клиент для доступа к ведошарам.

adriano32 ★★★
() автор топика
Ответ на: комментарий от bhfq

а чем CIFS не нравится, не удовлетворяет?
Честно говоря ты меня застал в расплох этим вопросом — я не знаю альтернатив.

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

Всем устраивает, например когда я монтирую вендошары в KDE в dolphin, что именно используется? Наверное cifs?

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

Если у тебя относительно свежая система, то CIFS однозначно. Можешь убедиться, сравнив выхлоп lsmod до монтирования SMB-шары и после. Должен подгрузиться cifs. Или проследить за вызовами.

adriano32 ★★★
() автор топика
Ответ на: комментарий от do0dlez

нет но игы важны также как и всё а вообщё поживи пару месяцев на хобиусе во вкладке new и потом радуйся что кошаков у нас тут не так много.

\\P.S. провоцирую кошкофилов заполонить скриншотилку кошками

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

вроде как юзерспейсные клиент-серверы самба и самба4.. а в ядре был когдато смб но его задепрекэйтили как только цифс допилилилили

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

вроде как юзерспейсные клиент-серверы самба и самба4.

Чего?

>>а в ядре был когдато смб но его задепрекэйтили как только цифс допилилилили

А я разве не об этом h31 толкую?

adriano32 ★★★
() автор топика

Молодец парень! Полезное дело делает

RA
()
Ответ на: комментарий от adriano32

ну вроде как самба который демон-сервер ещё и как клиент работает, хотя думается что с цифс он очень сильно связан..

Thero ★★★★★
()

Охренеть, линуксоиды наконец-то реализовали одну из фич системы пятилетней давности) лол) И это еще учитывая, что описание протокола уже несколько лет как открыто. Глядишь, году к 2020 Линукс-таки догонит висточку)

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

В первый раз такое слышу. В комплекте поставки Samba есть smbclient, который умеет получать список хостов в сети и список шар на хосте, с CIFS-клиентом AFAIK он никак не связан.
К тому же возможность монтирования SMB-дисков (многократно проверялось) как может отсутствовать при установленном/собранном Samba-сервере, так и может присутствовать при отсутствии Samba-сервера.

>>думается что с цифс он очень сильно связан..

Ничего подобного, в Samba достаточно давно взялись за модульность, потому они очень давно повыносили функционал, прямо не связанный с файловым/принт-сервером либо в отдельные модули, либо в отдельные проекты. За пруфами - на wiki.samba.org

adriano32 ★★★
() автор топика

Павел Шиловский - молодец, чо... больше ничего и не скажешь :)

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

>С Samba-шар семёрочки и сервера 2008 [R2] CIFS модуль в ядре теперь будет быстрее работать, когда несколько потоков приложения открывают один и тот же файл с разными файловыми дескрипторами.

это было бы никчемным достижением. Где вы видели нагруженные шары на семерочке и сфероконе 2008[R2]? А вот ускорение работы с шарами стабильной ветки самбы 3.6, это ценно.

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

Из моей же новости о Samba 3.6.0 ты должен был бы знать, что 3.6.0 поддерживает SMB2 диалекта 2.002, в котором нет мультикредитных запросов и этой самой новой семантики кеширования, добавленных лишь в диалекте 2.10.
Именно семантика кеширования + мультикредитные запросы создают такой разрыв в результатах, что клиент поддерживающий 2.10 за 4 секунды сливает инфу с сервера 2.10, а клиент с потолком в 2.002 (c strictcache и без поддержки мультикредитных запросов) или текущая версия CIFS с SMBv1 с того же сервера 2.10 (который естественно узнав версию протокола, поддерживаемую клиентом переходит в соответствующий режим совместимости и приёма только определённых именно этой версией протокола команд) от 20 до 60 секунд в проведённом Павлом тесте.

adriano32 ★★★
() автор топика

>Следить за работой Павла над проектом можно было в публичных git-репозиториях Etersoft и ALT Linux.

Дотянулись, пильщики проклятые

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

Эй, ты чего? Как же это Samba тестить без годного CIFS-клиента с поддержкой последнего диалекта SMB2?

adriano32 ★★★
() автор топика

нихрена не понял, так он студент или выпускник??? или он в процессе написания перешёл из одного состояния в другое?

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

или он в процессе написания перешёл из одного состояния в другое?

https://lists.samba.org/archive/samba-technical/2011-June/078377.html

30 июня 2011

Hi!

I have been busy with my university final exams but now I continue working on my GSoC project.

snipped<

Best regards, Pavel Shilovsky.

Как-то так :)

adriano32 ★★★
() автор топика

Всем спасибо! Особенно Андрею за новость!

Хочется добавить пару замечаний:

из новости:

В опубликованном в рассылке сообщении Павел кроме информации о завершении работы также предложил ознакомиться с результатами сравнительного тестирования текущей реализации CIFS, реализации SMB2 от Microsoft с опцией strictcache монтирования (как и в CIFS) и диалекта 2.10 протокола SMB2 в своём блоге.

Тестировались именно реализации CIFS, SMB2 и SMB2.1 протоколов в CIFS модуле ядра, которые по очереди включались для проведения тестирования. Монтирование проводилось во всех трёх случаях с опцией strictcache. Я так же поправил свой пост в блоге, чтобы исключить данную неоднозначность.

из коммента:

Именно семантика кеширования + мультикредитные запросы создают такой разрыв в результатах, что клиент поддерживающий 2.10 за 4 секунды сливает инфу с сервера 2.10, а клиент с потолком в 2.002 (c strictcache и без поддержки мультикредитных запросов) или текущая версия CIFS с SMBv1 с того же сервера 2.10 (который естественно узнав версию протокола, поддерживаемую клиентом переходит в соответствующий режим совместимости и приёма только определённых именно этой версией протокола команд) от 20 до 60 секунд в проведённом Павлом тесте.

В рамках проекта не предусматривалась реализация мультикредитных запросов, которые и не были реализованы. Запись и чтение ограничились 2 ** 16 байтами данных на каждый запрос, что соответсвует одному кредиту, - в этом аспекте SMB2.1 и SMB2 реализации работают пока в CIFS модуле одинаково. Данный же прирост достигается наличием новой семантики кеширования из протокола SMB2.1, которая и была реализованна. И опять тоже про strictcache.

piastry
()
Ответ на: комментарий от adriano32

спасибо, я вроде особо не интересовался. использовать не приходилось, поэтому владею только домысловой информацией.

\\ я про смбклиент и говорил но сообщение попало под оптимизатор краткости -_- и я не удивлён что его смысл поетерян.

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

Вам Павел, в первую очередь, спасибо за отличную работу.

Тут вопрос, интересует, наверное, не только меня:

  • как скоро код пойдёт в официальную поставку CIFS
  • как самому __прямо сейчас__ потестить возможности нового клиента
adriano32 ★★★
() автор топика

А зачем оно в ядре? Вроде же недавно было стильным, модным и молодежным выносить всё в узерспейс. Кернелпаников не хватает?

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

ну ты толстячок. Почитай сперва, что главный сказал по поводу юзерспейса и, скажем, файловых систем.

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

Дык это не я толстячок, а Линус жирдяище. Лучше бы ядерный НТФС запилили, а по шарам можно и из юзерспейса лазить.

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

>как скоро код пойдёт в официальную поставку CIFS

Здесь сложно. Всё зависит от того, как скоро заинтересованные лица из сообщества проведут ревью всех патчей и выскажут свои замечания, а когда это произойдёт неизвестно. Я лишь могу сказать, что буду пытаться ускорить этот процесс.

как самому __прямо сейчас__ потестить возможности нового клиента

Чтобы потестить нужно наложить патч, который правит Makefile, включает компиляцию SMB2 кода, и добавляет соответствующую опцию монтирования (vers=2). Включение данного патча в ветку разработки на ранних этапах осложняло процесс переноса патчей, прошедших ревью в основную ветку ядра, поэтому его там нет.

Теперь, когда работает уже большинство функций (не работает код DFS, вызов fcntl и некоторые прочие), надо будет снова поднять вопрос о включении данного патча в ветку разработки.

Пока же, я создал новую ветку smb2-dev-patched вместе с этим патчем в тех же репозиториях.

Итак, чтобы попробовать новый код нужно:

1) Скачать исходники из ветки smb2-dev-patched.

git clone git://git.altlinux.org/people/piastry/public/cifs-2.6.git

cd cifs-2.6

git checkout -b smb2-dev-patched origin/smb2-dev-patched

2) Cобрать их с ядром v3.1-rc3.

cd fs/cifs

make -C /путь до хидеров ядра v3.1-rc3/ SUBDIRS=$(pwd) modules

3) Смонтировать файловую шару с сервера, поддерживающего SMB2/2.1 протокол, с опцией монтирования vers=2.

sudo insmod ./cifs.ko

sudo mount -t cifs //server/share /путь до точки монтирования/ -overs=2

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

Очень редко использую cifs, но все равно огромное спасибо за работу!

netmaniac
()
Ответ на: комментарий от adriano32

Настучать в некорректные значительно проще, чем признать, что LISP — проще, мощнее и выразительнее всех существующих языков программирования, ЕВПОЧЯ. Продолжайте бояться неизведанного и прятать голову в песок.

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

Кстати, весьма показательно то, как прогрессивная технология подвергается гонениям благодаря посредственностям.

За 600 лет на этой планете ничего не изменилось.

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