При администрировании баз данных 1С, особенно таких тяжелых конфигураций как 1С:Документооборот, часто возникает вопрос оптимизации работы с прикрепленными файлами. Проанализируем распространенную ситуацию: тома хранения файлов физически располагаются на том же сервере, где работает служба сервера 1С:Предприятия. По умолчанию для их подключения используется сетевой путь вида \\ИмяСервера\ПапкаТома\. У многих системных администраторов возникает логичный вопрос: можно ли прописать прямой локальный путь, например D:\1CDOFiles\, чтобы сервер не обращался к файлам через сетевой интерфейс и тем самым ускорить открытие объемных документов?
В этой статье мы подробно разберем, как платформа 1С работает с путями к томам файлов, выясним причину медленного открытия больших файлов и рассмотрим правильные методы настройки для операционных систем Windows и Linux.
Разберем по шагам логику разработчиков платформы. Платформа 1С:Предприятие изначально проектировалась с расчетом на масштабируемую кластерную архитектуру (для администрирования которой удобно использовать специализированные панели управления). Даже если в данный момент у вас развернут только один рабочий сервер, система всегда ожидает, что в будущем нагрузка может возрасти, и вы добавите в кластер новые рабочие серверы (ноды).
Если прописать жесткий локальный путь, такой как D:\1CDOFiles\, то этот путь будет понятен только тому серверу, на котором физически находится диск D. Если к кластеру подключится второй сервер, он попытается найти файлы на своем собственном локальном диске D, не найдет их и выдаст ошибку доступа.
Именно поэтому для серверов под управлением ОС Windows необходимо использовать единый сетевой формат (UNC-путь), который будет выглядеть так: \\server\folder. Этот формат гарантирует, что любой рабочий процесс rphost на любом сервере кластера сможет корректно найти и прочитать нужный том.
Посмотрим на пример правильной настройки, если том расположен на одном компьютере с сервером 1С:
C:\volume1.\\server\volume1.Многие специалисты ошибочно полагают, что если указать путь через двойной слеш \\Serv2\1CDOFiles\, то сервер начнет "гонять" трафик через физическую сетевую карту к самому себе. Предполагается, что это ограничивает скорость чтения пропускной способностью сетевого адаптера.
Проанализируем ситуацию на уровне операционной системы. Эти опасения абсолютно безосновательны. Когда операционная система Windows обращается по сетевому пути к расшаренной папке, расположенной на этом же самом компьютере, она использует внутренний интерфейс замыкания на себя (SMB Loopback).
Пакеты данных в этом случае вообще не доходят до контроллера физической сетевой карты. Взаимодействие происходит исключительно на уровне оперативной памяти и ядра ОС. Скорость работы в таком режиме практически идентична скорости прямого линейного чтения с локального жесткого диска. Никаких дополнительных сетевых задержек не возникает.
Сравним описанную выше механику с работой серверов под управлением ОС Linux. Архитектура работы с файловыми системами здесь в корне отличается от Windows.
Если сервер 1С работает под Linux, платформа официально позволяет указывать прямой локальный путь к каталогу тома. Например, вы можете прописать путь /home/shared_files/volume1. Использование сетевых шар (через CIFS/SMB или NFS) для масштабирования кластера в среде Linux настраивается на уровне монтирования каталогов самой операционной системой, а не внутри платформы 1С. Служба сервера 1С просто обращается к смонтированной локальной директории, не задумываясь о том, физический ли это диск или сетевой ресурс.
Если мы выяснили, что сетевой путь не замедляет чтение файлов сервером, почему же пользователи жалуются на долгое открытие больших документов? Разберем основные причины (узкие места) этой проблемы:
\\Serv2\1CDOFiles\. Клиент вообще может не иметь прав доступа к этой папке (и в целях безопасности так и должно быть). Файл забирает рабочий процесс сервера 1С, помещает его в свою оперативную память, разбивает на пакеты и передает клиенту по сети. Именно пропускная способность канала связи между рабочим местом пользователя и сервером 1С чаще всего является причиной долгого открытия тяжелых файлов.Чтобы избежать ошибок при администрировании файлового хранилища, рассмотрим несколько важных правил настройки томов в платформе 1С:Предприятие:
Права доступа: Папка, к которой вы предоставляете общий доступ для создания тома, должна обязательно иметь права на чтение и запись для того системного пользователя, от имени которого запущена служба сервера 1С:Предприятия. В ОС Windows по умолчанию это локальный пользователь USR1CV8. Если прав не будет, 1С не сможет инициализировать том.
Изменение путей: Важно помнить, что для уже созданного и используемого тома хранения в 1С изменить путь нельзя. Платформа блокирует эту возможность для сохранения целостности ссылок. Если вам критически необходимо перенести файлы на другой диск или изменить структуру путей, вам потребуется:
Подводя итоги, можно сказать, что стремление прописать локальный диск для томов в Windows-среде 1С не только нарушает стандарты платформы, но и не несет в себе никакого выигрыша в производительности. Грамотно настраивайте общие ресурсы, следите за скоростью сети между сервером и клиентами и контролируйте работу антивирусного ПО.