LINUX.ORG.RU

Сообщения Vladan8888

 

Samba 1с7.7 и блокировки

Уже где-то на протяжении недели танцую самбу с бубном в руках. Целью сих увлекательных манипуляций,среди всего прочего, является наличие в месте, где я осуществляю свою проф-ую деят-ть работающего(это важно)) файлового сервера Samba с базами 1с на борту (дистрибутив - ubuntu 9.10 Desktop, в начале эпопеи стоял Debian Lenny, но он не выдержал моих издевательств)). В Дебиане использовалась самба 3.25, в бубунте - 3.4.0. То, что проделывают самба на пару с 1ской после того, как к расшаренным базам подключаются хотя бы 2 пользователя, совместной работой назвать трудно. Тормоза неприемлемые однозначно и дело тут совершенно точно не в пропускной способности сети, производительности файловой системы и жёстких дисков и т.д. и иже с ними. В инете по форумам народ носится с блокировками и экспериментами в smb.conf(комбинируют аттрибуты конфигурационного файла различными способами с целью, видимо посчитать максимально-возможное число комбинаций)). Потому как ни у кого не работает, окромя тех, у кого работает с самого начала с коробки без лишних манипуляций или тех, кто является или являлся счастливым обладателем самбы под версиями в районе 2.0.7-2.0.10.(ну плюс-минус чуть-чуть, не помню, может и 2.2 у кого-то работала). На более менее адекватное, на мой взгляд, объяснение этой оказии я наткнулся на opennet.ru(http://opennet.ru/base/net/1csamba.txt.html). ЦИТИРУЮ самое главное: «Для того, чтобы никому больше не пришлось с этим возиться, сообщаю, что виндовозная 1С-бухгалтерия не просто использует блокировки несуществующих байтов за концом файлов(прием вобщем-то известный), а использует ну очень большие смещения этих байтов, и на таких гигантских числах Самба начинает спотыкаться. Чтобы она вела себя культурно - надо залезть в исходники Самбы, в файл util.c, найти там функцию fcntl_lock, и обнаружить, что авторы предлагают там два варианта куска кода, выделенные директивами условной компиляции. Так вот тот вариант, что выбран по умолчанию - не работает нормально. адо выбрать второй - и все проблемы исчезают.» КОНЕЦ цитаты. Искреннее спасибо автору за зацепку, но блин не знаю я C. И хрен его знает как работают эти директивы и как выбрать второй вариант, тем более что в самбе поздних версий файлик util.c имеет несколько другой вид и функция fcntl_lock отсутствует, есть только похожая и кусок кода, напоминающий таковой в более ранних исходниках. Самбу версий 2.0.7 и 2.0.10 пытался компилить на Дебиане после сноса 3.25 через aptitude, но фокус не удался то ли из-за разницы в годах выхода моего Дебиана и самбы(то ли структура каталогов в корневой фс настолько изменилась, то ли хрен его знает), а может просто руки кривые пока что(опыта не так много). Всё компилилось как положено, но не сказать чтобы так же и работало). Вижу для себя три выхода: 1)Найдутся умные дяди-линуксоиды(может и тёти-линуксюхи, кто знает) с добрыми красными глазами и безвозмездно помогут; 2-й выход(самый простой))): Я по-бырому выучу язык С, по-бырому разберусь с исходниками, подправлю чего где надо и буду потом своим детям рассказывать страшную историю о том, как я стал программером; 3) Откопаю на каком-нибудь сайте пыльный, засалившийся образ какого-нибудь престарелого дистриба, чтоб нормально скомпилить самбу версии 2.0.10 на нём (надеясь, что wine, по-любому необходимая мне для запуска специфической проги, не откажется, в свою очередь, ставится на старый дистриб). Приветствуются как квалифицированные советы, так и вообще любая новая информация, можно тоже в виде поэмы, как и всё вышеизложенное). Наверняка тема всё ещё животрепещущая.

Vladan8888
()

RSS подписка на новые темы