MyTetra Share
Делитесь знаниями!
Настройка samba для работы с 1С (15 Oct 2002)
Время создания: 04.02.2012 16:21
Раздел: Компьютер - Linux - Samba
Запись: xintrea/mytetra_syncro/master/base/1328361685yow0hb24g1/text.html на raw.github.com

Как настроить samba на работу с 1С

Причины некорректной работы и обрушения индексных файлов:

1. железо

2. файловая система

3. samba и её настройки

4. default параметры ядра

5. настройки клиента

Для начала внимательно man smb.conf

Приведу свой вольный перевод механизма блокировок:

В случае с термином "шара" не смог найти краткий и ёмкий заменитель на

русском языке.

# kernel oplocks

Булева опция используется только для UNIX где ядро поддерживает

механизм oplocks (в настоящее время только IRIX и Linux 2.4.x). kernel

oplocks позволяет обходить samba oplocks при обращении локального

процесса или NFS операции к файлу с которым уже работает клиент Samba.

Это позволяет как бы одновременно (последовательным доступом) SMB, NFS

и локальными процессам совместно работать с данными (из мана: very

cool feature ((: ).

По умолчанию:

kernel oplocks = True

Не трогать эту опцию на системах, не поддерживающих ядерную

блокировку.

См. также: oplocks и level2 oplocks

# level2 oplocks

Эта опция управляет поддержкой read-only oplocks на шаре. Level2

позволяют клиентам Windows NT открывшим oplock файл снизить права с

read-write на read-only при открытии этого файла вторым клиентом,

вместо реализации полного oplocks для второго клиента.

Это позволяет вновь открывшим файл (с выставленным level2 oplocks)

кэшировать файл только для чтения (т.е. они не могут кэшировать запись

или блокировать запросы на файл). Это не влияет на скорость доступа к

не записываемым и исполняемым файлам (типа .exe).

Как только один из клиентов, который имеет read-only oplock записывает

этот файл, остальные клиенты предупреждаются на уровне системы (не

требуется ответа о полученном предупреждении), снимается oplock с

файла и он стирается из read-only кэша. Рекомендуется, чтобы этот

параметр был включен, для ускориения доступа при совместном

использовании данных. Больше информации по level2 oplocks см. CIFS

спецификации. Обратите внимание, oplocks параметр должен быть

установлен на "Истина" при использовании "Истина" у этого параметра.

# oplocks

Булева опция (Yes/No или True/False) сообщает smbd, включать/выключать

oplocks на запрашиваемые файлы с какой-либо шары. Включенные oplocks

улучшают скорость доступа к файлам на шарах Samba примерно на 30%,

позволяя клиентам локально кэшировать файлы.

Возможно отключение этой опции для ненадежных сетевых сред (это

включено по умолчанию в Серверах Windows NT [*] ).

Для получения дополнительной информации см. файл Speed.txt в

документации к Samba. Oplocks может быть выборочно выключен на

некоторых файлах шары. cм. опцию veto oplock. В некоторых системах

oplocks выставляются за основу работы с файлами самой ОС. Это

позволяет синхронизацию данных между всеми доступами к oplocks файлам

(Samba, NFS или локальный процесс UNIX).

См. опцию kernel oplocks.

По умолчанию:

oplocks = True

Теперь всё это осмыслим и вас введёт в заблуждение механизм блокировок

как на уровне ядра, так и на уровне samba. Очень большое подозрение на

неправильную документацию продукта микрософт, либо 1С сама выключает

эту блокировку на winNT, что нам не известно [*], и как следствие

полностью повторенные куски документации в samba, где идёт сравнение

механизмов.

Решение:

1. Убедимся что память не битая, винт без бэдов, для ide оттюнен

hdparm. Cетевые карты не должны сбоить. прокачайте по ftp и samba на

сервер и обратно 1Gb файл несколько раз, при подвисании/падении

скорости до значительных величин и ошибках/варнингах ядра на сетевые

карты, они должны быть заменены немедленно. Лучше если каждая 1С база

лежит на отдельной партиции. Файл-сервер должен содержать достаточное

кол-во памяти.

2. Поставим журналируемую фс, чем решим очень много проблем. у меня

базы лежат на cgi xfs и reiserfs

хинт: партицию монтируйте с опцией noatime

3. Категорически настаиваю на обновлении samba до 2.2.5 [на время

написание документа, это последняя версия ветки 2.2]

blocking locks = yes

kernel oplocks = yes

locking = no

oplocks = no

level2 oplocks = no

posix locking = yes

strict locking = no

share modes = yes

хинт: при таком раскладе невозможно пользоваться 1С:Монитор для сброса

пользователей (показывает нереальное кол-во пользователей). тогда

прибегнем к:

smbcontrol smbd close-share mybasa

у вас ведь каждая база в отдельной шаре? ;)

шара не пропадёт из виду и может быть спокойно задействована при

обращении к ней

Обратите внимание, если 1С шара лежит на PDC:

у вас не должно быть перевыборов в сети никогда:

os level = 255

включите WINS:

wins support = yes

и пропишите на клиентах

4. если у вас базы большие, man sysctl категорически рекомендуем.

вот мой /etc/sysctl.conf на работу с ~40 клиентами базы в 150-250Mb

(основные)

fs/file-max=64000

net/core/rmem_default=1048576

net/core/rmem_max=1048576

net/core/wmem_default=1048576

net/core/wmem_max=1048576

kernel/shmmax=167772160

vm/bdflush=100 1000 128 256 500 6000 6000 2048 2

5. Конечно, сами клиенты должны иметь хорошее железо, особенно в

сетевой части.

Рихтовка win98 клиентов: Устранение неполадок -> Файловая система ->

Новая семантика блокировок

С w2k всё ок.

Замечания и предложения: bass@edinstvo.com

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования