Как настроить тома хранения файлов 1С на сервере Linux?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переносе информационной базы 1С с файлового варианта работы на клиент-серверную архитектуру (Linux + SQL) часто возникает задача настройки томов для хранения присоединенных файлов на диске. Хранение файлов вне базы данных позволяет существенно уменьшить ее объем, ускорить создание резервных копий и снизить нагрузку на СУБД. Давайте подробно рассмотрим, как правильно организовать такие тома, примонтировать сетевые папки и настроить корректные права доступа. Для оценки объема хранимых файлов и структуры таблиц можно использовать инструмент для анализа распределения дискового пространства в базе 1С.

Разберем монтирование сетевой папки Windows (через протокол CIFS/SMB)

Часто в корпоративной сети уже существует выделенный файловый сервер на базе Windows, и администраторы хотят использовать его для хранения файлов 1С. Поскольку сервер 1С работает на Linux, нам необходимо "объяснить" системе, как получить доступ к Windows-шаре. Для этого мы смонтируем сетевую папку в локальную директорию Linux.

Посмотрим на пример консольной команды для ручного монтирования такой папки:


mount -t cifs //192.168.0.4/1CBase/FilesWorkingBase /mnt -o user=admin1c,dir_mode=0777,file_mode=0777,uid=995,gid=1002

Проанализируем параметры, которые мы передаем в команду:

  1. -t cifs — указывает тип файловой системы (Common Internet File System), используемой для доступа к общим ресурсам Windows.
  2. //192.168.0.4/... — сетевой путь до расшаренной папки.
  3. /mnt — локальная точка монтирования (каталог на сервере Linux, куда будет подключена папка).
  4. user=admin1c — имя пользователя Windows, от имени которого осуществляется подключение.
  5. dir_mode и file_mode — права доступа по умолчанию к директориям и файлам.
  6. uid и gid — идентификаторы пользователя и группы в Linux, которые станут владельцами примонтированных файлов. Крайне важно указать здесь реквизиты пользователя службы 1С (обычно это usr1cv8 и группа grp1cv8).

После ввода этой команды система предложит ввести пароль от учетной записи Windows.

Настроим автоматическое монтирование при загрузке системы

Чтобы после перезагрузки сервера Linux тома не отваливались и файлы 1С оставались доступны, пропишем параметры монтирования в конфигурационный файл /etc/fstab. Разберем по шагам, какую строку туда нужно добавить:


//192.168.0.4/1CBase/FilesWorkingBase /mnt cifs dir_mode=0777,file_mode=0777,uid=995,gid=1002,credentials=/home/admin1c/wincred,iocharset=utf8,nofail,_netdev,vers=3.0 0 0 0 0

Особое внимание уделим параметру credentials=/home/admin1c/wincred. Хранить пароль открытым текстом в fstab небезопасно. Поэтому мы создаем отдельный скрытый текстовый файл (например, wincred), в котором указываем логин и пароль в следующем формате:


username=admin1c
password=ВашСекретныйПароль
domain=ИмяДоменаЕслиЕсть

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

Выясним причину: почему CIFS может быть "гнилым решением"

В среде системных администраторов использование Windows-шар (SMB/CIFS) для высоконагруженных серверов Linux часто критикуется. Выясним причину такого отношения и проанализируем ситуацию.

Использование протокола CIFS/SMB часто сопровождается следующими проблемами:

  1. Снижение производительности и высокие сетевые задержки при активной работе с множеством мелких файлов.
  2. Специфическая работа блокировок файлов при высоких нагрузках, что может приводить к ошибкам доступа со стороны сервера 1С.
  3. Зависимость от сетевой инфраструктуры и доступности стороннего Windows-сервера.

Альтернативные, более надежные решения:

Если вы перешли на Linux, используйте "нативные" подходы. Более надежным сетевым решением является использование протокола NFS (Network File System). Однако идеальный вариант — выделить под хранилище отдельный жесткий диск (или подключить LUN по протоколу iSCSI), отформатировать его в родную для Linux файловую систему (например, ext4 или xfs) и примонтировать локально. Это обеспечит максимальную скорость и стабильность работы сервера 1С.

Настройка прав доступа и безопасности

Рассмотрим подробнее вопрос безопасности. В примерах выше использовались параметры dir_mode=0777 и file_mode=0777. С точки зрения администрирования это грубая ошибка, так как права 0777 разрешают чтение, запись и удаление файлов абсолютно всем пользователям операционной системы.

Правильнее монтировать каталог с более строгими правами, например, 0700 или 0750. При этом владельцем директории должен быть жестко закреплен пользователь, от имени которого запускается служба сервера 1С (как правило, это usr1cv8). Это гарантирует, что сторонние процессы и пользователи не смогут вмешаться в работу файлового хранилища.

Правила указания пути к тому в настройках 1С

Когда сетевая папка или диск успешно примонтированы в Linux, необходимо корректно прописать путь к ним в самой информационной базе. Перейдем в настройки программы и найдем поле "Полный путь для сервера 1С:Предприятия под управлением Linux".

При заполнении этого поля строго соблюдайте следующие правила:

  1. Путь должен быть только локальным (с точки зрения ОС Linux). Например: /mnt/files/. Использовать сетевые UNC-пути формата \\server\share, как это делается в Windows, на Linux-сервере нельзя.
  2. Путь к каталогу тома обязательно должен оканчиваться символом прямого слеша /. Если слеш не указать, 1С может выдать ошибку при попытке сохранить первый же файл.

Балансировка томов и перенос уже существующих файлов

В настройках тома хранения файлов в 1С мы можем задать параметры Предел, МБ и Порядок. Посмотрим на пример их использования. Если место на физическом диске ограничено, вы можете создать несколько томов. Программа будет заполнять их согласно установленному порядку: если первый том достигает указанного предела размера, 1С автоматически начнет сохранять новые файлы в следующий доступный том.

Важно понимать: сама по себе настройка нового тома не приведет к тому, что старые файлы, которые уже лежат внутри базы данных (в SQL), автоматически переместятся на диск. В новый том будут сохраняться только вновь добавляемые документы и картинки.

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

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

← На главную