Date: Tue, 15 Oct 2002 11:17:46 +0300
From: http://bass.edinstvo.com/smb.html <bass@edinstvo.com>
Subject: Настройка samba для работы с 1С
Как настроить 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
2216 Прочтений • [Настройка samba для работы с 1С (1c win samba)] [08.05.2012] [Комментариев: 0]