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

· 11 мин

Содержание

NAS подходит для 1С в двух ролях: как сетевая папка для файловой базы на 3–5 пользователей и как хранилище резервных копий. Полноценный клиент-серверный вариант (сервер 1С:Предприятия плюс СУБД) на NAS тоже запускается, но только на модели с процессором x86-64, 16 ГБ памяти и больше, и лучше в виртуальной машине, чем прямо в системе хранилища.

Дальше всё упирается в три вещи: как NAS отдаёт файлы по SMB, на каких дисках лежит база и как вы её копируете. Ошибка в любой из них превращает удобное хранилище в источник повреждённых баз.

Какие схемы работы 1С с NAS реально работают

Сначала определитесь со схемой. От неё зависят требования к железу и весь остальной порядок настройки.

СхемаСколько пользователейЧто работает на NASГлавный риск
Файловая база в сетевой папке1–5, ориентиртолько хранение файла 1Cv8.1CDповреждение базы при сбое сети или кешировании SMB
Сервер 1С и PostgreSQL в Docker5–15рабочие процессы 1С и СУБДлицензия слетает при пересоздании контейнера, нехватка памяти
Виртуальная машина Linux на NAS5–20полноценный сервер 1С внутри ВМпроцессор NAS не тянет пиковые нагрузки
Отдельный сервер, NAS для копийлюбоетолько архивы .dt и дампыпрактически нет

Почему файловый режим капризен на сетевой папке

В файловом режиме вся база — один файл 1Cv8.1CD. Каждый клиент сам читает и пишет его по сети, а блокировки строк держатся через блокировки участков файла. Сервера, который бы следил за целостностью, нет.

Поэтому качество SMB-реализации на NAS критично. Сетевые хранилища работают на Samba, и её настройки по умолчанию рассчитаны на документы и фото, а не на файл, который одновременно меняют пять человек.

Если пользователей больше пяти, а в базе ведётся торговля с резервированием или проводится много документов одновременно, файловый режим начнёт тормозить при любом железе. Это ограничение самой архитектуры, а не NAS.

Когда сервер 1С на NAS — плохая идея

  • ❌ NAS на ARM-процессоре. Дистрибутивы сервера 1С и сборки PostgreSQL для 1С ориентированы на x86-64 Linux, запускать их на ARM не стоит.
  • ❌ 4 ГБ памяти без возможности расширения. Сервер 1С и СУБД вместе съедят её сразу.
  • ❌ Только жёсткие диски без SSD. Случайная запись СУБД упрётся в механику.
  • ❌ Хранилище одновременно служит видеорегистратором, торрент-клиентом и медиасервером.

Железо NAS под сервер 1С: на что смотреть при выборе

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

ПараметрФайловая базаСервер 1С + PostgreSQL
Процессорлюбойx86-64, 4 ядра и больше
Оперативная памятьот 2 ГБот 16 ГБ, лучше 32 ГБ
Диски под базуHDD в зеркале или SSDSSD, только SSD
Сеть1 Гбит/с2,5 или 10 Гбит/с, либо агрегация портов
Поддержка Docker или ВМне нужнаобязательна
ИБПобязателенобязателен

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

Память делится между сервером 1С (рабочие процессы rphost), PostgreSQL и самой системой NAS. На 16 ГБ комфортно живут одна-две базы до 10–20 ГБ.

ИБП с подключением к NAS по USB или по сети — не роскошь. Внезапное отключение питания во время записи — самый частый путь к повреждённому файлу 1Cv8.1CD и к ошибкам в таблицах PostgreSQL.

Диски и RAID-массивы для баз 1С на сетевом хранилище

Базе 1С нужна быстрая случайная запись мелкими блоками. Отсюда выбор уровня RAID.

УровеньМинимум дисковДля базы 1СКомментарий
RAID 12✅ хорошозеркало, простое восстановление
RAID 104✅ лучший вариантскорость записи и отказоустойчивость
RAID 53⚠️ терпимо на SSDштраф на запись, долгая перестройка
RAID 64❌ для СУБД плоходвойной штраф на запись
Без RAID1❌один сбой диска — и база потеряна

Практичная схема для небольшой фирмы: два SSD в RAID 1 под базы и СУБД, два больших HDD в RAID 1 под архивы и общие документы. Так копии физически лежат на других дисках, чем рабочие данные.

Файловая система и кеш

  • 📁 Btrfs и другие файловые системы с копированием при записи фрагментируют файлы баз данных. Для каталога с данными PostgreSQL на Btrfs отключите CoW командой chattr +C на пустой папке до того, как в неё попадут файлы.
  • 💾 SSD-кеш поверх HDD помогает файловой базе на чтении, но кеш на запись без защиты от сбоя питания опасен. Если включаете кеш записи, ставьте два SSD в зеркало.
  • 🌙 Отключите засыпание дисков для тома с базами. Первое обращение после простоя растягивается на 10–20 секунд, и 1С успевает выдать ошибку доступа к файлу.

RAID не заменяет резервную копию. Он спасает от поломки диска, но не от удалённого по ошибке документа, шифровальщика или неудачного обновления конфигурации.

Сервер 1С и PostgreSQL в Docker на NAS

Если на хранилище есть Docker (Container Manager у Synology, Container Station у QNAP), сервер 1С и СУБД можно поднять в контейнерах. Готовых официальных образов фирма 1С не выпускает, поэтому образ собирают сами из дистрибутивов с портала поддержки.

Какой PostgreSQL нужен

Обычный PostgreSQL из официального образа для 1С не подходит. Платформе нужна сборка с доработками под 1С: её выпускает фирма 1С, есть и Postgres Pro. Версию СУБД подбирайте по списку, который поддерживает ваша версия платформы.

Пример docker-compose.yml для СУБД. Имя образа условное: это ваш собственный образ, собранный из дистрибутива PostgreSQL для 1С.

services:
  pg1c:
    image: local/postgres-1c:latest
    container_name: pg1c
    restart: unless-stopped
    shm_size: 2g
    environment:
      POSTGRES_PASSWORD: "сложный_пароль"
    volumes:
      - /volume1/ssd/pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

Строка shm_size — тот приём, который чаще всего забывают. По умолчанию Docker даёт контейнеру 64 МБ разделяемой памяти, и PostgreSQL на тяжёлых запросах 1С падает с ошибкой could not resize shared memory segment.

Стартовые параметры СУБД для 16 ГБ памяти

shared_buffers = 4GB
effective_cache_size = 8GB
work_mem = 64MB
maintenance_work_mem = 512MB
max_connections = 200

Если на этом же NAS работает сервер 1С, не отдавайте СУБД больше половины памяти. Остальное нужно рабочим процессам 1С и системе хранилища.

Контейнер с сервером 1С и лицензия

Сервер 1С в контейнере ставится из deb-пакетов платформы для Linux. Здесь две ловушки:

  1. Программная лицензия. Она привязывается к параметрам оборудования и окружения. Пересобрали контейнер с новым идентификатором — лицензия может перестать подходить. Каталог /var/1C/licenses вынесите в постоянный том и не меняйте имя хоста контейнера.
  2. Порты. Клиент сначала обращается к агенту сервера на 1540, затем к менеджеру кластера на 1541, а потом к рабочим процессам из диапазона, который задан в свойствах рабочего сервера (по умолчанию 1560–1591). Пробросьте весь диапазон, иначе клиент найдёт сервер, но не подключится к базе.

Виртуальная машина с Ubuntu или Debian внутри NAS (Virtual Machine Manager у Synology, Virtualization Station у QNAP) часто проще контейнера. Сервер 1С ставится как на обычный Linux-сервер, а лицензия живёт в стабильном окружении.

Каталог данных PostgreSQL держите на локальном томе NAS, а не в сетевой папке, смонтированной по SMB или NFS. СУБД на сетевой файловой системе — прямой путь к повреждённым таблицам.

Сетевые папки, права SMB и подключение клиентов 1С

Для файловой базы это главный раздел. Для клиент-серверной — второстепенный: там пользователи работают через сервер 1С и к файлам не обращаются.

Настройка общей папки

  1. Создайте отдельную общую папку, например 1c-bases, на томе с SSD или зеркалом.
  2. Заведите группу пользователей 1С и дайте ей права на чтение и запись. 1С создаёт рядом с базой служебные файлы, поэтому прав только на чтение не хватит.
  3. Включите SMB2 и SMB3, отключите SMB1. Минимальную версию протокола задают в настройках файловых служб NAS.
  4. Отключите для этой папки корзину. Иначе удалённые 1С временные файлы будут копиться годами.
  5. Выключите на клиентах автономные файлы Windows для этой папки.

Oplocks — ключевая настройка Samba для 1С

Механизм oplocks разрешает клиенту кешировать файл у себя. Для документов это ускорение, для файла 1Cv8.1CD, который одновременно меняют несколько клиентов, — риск расхождения данных.

Если NAS позволяет править конфигурацию Samba (через SSH или раздел дополнительных настроек SMB), отключите кеширование для папки с базами:

[1c-bases]
   path = /volume1/1c-bases
   oplocks = no
   level2 oplocks = no
   strict locking = yes

После правки перезапустите службу SMB. Все открытые сеансы 1С при этом оборвутся, поэтому делайте это вне рабочего времени.

На многих NAS ручные правки smb.conf перезаписываются при обновлении прошивки. После каждого обновления проверяйте, что параметры на месте.

Как добавить базу в список у пользователей

В окне запуска 1С нажмите Добавить, выберите создание новой или добавление существующей базы, тип «На данном компьютере или на компьютере в локальной сети» и укажите путь в формате UNC:

\\nas\1c-bases\buh

Не используйте подключённую букву диска вроде Z:\buh. У разных пользователей буквы различаются, а после перезагрузки диск иногда не успевает подключиться к старту 1С.

Добавьте папку с базами в исключения антивируса на каждом рабочем месте. Проверка каждого обращения к 1Cv8.1CD замедляет работу в разы.

Резервное копирование баз 1С с NAS и восстановление

Снимки (snapshots) и резервные копии NAS удобны, но для баз 1С у них есть оговорка. Снимок фиксирует файлы в момент, когда пользователь мог проводить документ. Такая копия соответствует состоянию после отключения питания: обычно открывается, но гарантии нет.

Что копируемПравильный способКогда
Файловая базавыгрузка .dt или копия файла, когда в базе никого нетночью, по расписанию
База PostgreSQLpg_dump в формате customночью, плюс перед обновлениями
Весь томснимок NAS как дополнительная страховкакаждый час или день
Копия вне офисаHyper Backup, rsync или облакоежедневно

Пример ночного дампа из контейнера:

docker exec pg1c pg_dump -U postgres -Fc buh > /volume2/backup/buh_$(date +%F).dump

Восстанавливают такой дамп через pg_restore в пустую базу. Копирование каталога данных PostgreSQL на лету корректной копией не является.

Для файловой базы ночную выгрузку можно запускать пакетным файлом с рабочей станции через планировщик Windows. Параметр /DumpIB выполняет выгрузку в .dt, а /Out пишет журнал:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"\\nas\1c-bases\buh" /N"Администратор" /P"пароль" /DumpIB"\\nas\backup\buh.dt" /Out"\\nas\backup\buh.log"

Номер версии в пути замените на свой. Если в базе кто-то работает, выгрузка не выполнится, причина будет в журнале.

Правило 3-2-1 и проверка восстановления

  • 3️⃣ три копии данных: рабочая база и две резервные;
  • 2️⃣ на двух разных носителях: SSD-массив и HDD-массив или внешний диск;
  • 1️⃣ одна копия вне офиса.

Раз в месяц разворачивайте копию в тестовую базу и открывайте её. Копия, которую ни разу не восстанавливали, — это надежда, а не резервная копия.

Ежемесячная проверка копий 1С на NAS
Выполнено: 0 / 5

Сбои 1С на NAS: симптомы, причины и проверка

Большая часть проблем связана с сетью, питанием и кешированием, а не с самой 1С.

Диагностика: выберите симптом

Что проверить в первую очередь при медленной работе

  1. Скорость сети у пользователя. Клиент по Wi-Fi работает с файловой базой медленно и рискованно, переводите его на кабель.
  2. Нагрузку на процессор и диски NAS в его мониторе ресурсов в момент торможения. Если в это время идёт индексация медиа или проверка RAID, перенесите её на ночь.
  3. Шифрование и подписание SMB. Они нагружают слабый процессор хранилища; в закрытой офисной сети их иногда можно ослабить, но решение принимает администратор с учётом политики безопасности.
  4. Размер файла базы. Файловая база больше 10–15 ГБ на сетевой папке — повод переходить на клиент-серверный вариант.

Перезапуск SMB, контейнера с сервером 1С или СУБД рвёт все открытые сеансы пользователей. Несохранённые документы будут потеряны. Предупредите сотрудников или дождитесь конца рабочего дня.

Частые вопросы про NAS для 1С

Можно ли открыть одну файловую базу с NAS из двух офисов через VPN?
Технически да, но это худший сценарий для файлового режима: задержки канала и обрывы приводят к повреждению базы. Для двух офисов нужен сервер 1С и подключение через тонкий клиент или веб-клиент.
Подойдёт ли NAS для хранилища конфигурации разработчиков?
Да. Хранилище конфигурации в файловом варианте нормально живёт в сетевой папке, нагрузка там небольшая. Требования к правам те же, что для файловой базы.
Нужна ли отдельная лицензия на сервер 1С, если он запущен на NAS?
Да. Запуск в контейнере или виртуальной машине ничего не меняет в лицензировании: нужна лицензия на сервер и клиентские лицензии по числу одновременных пользователей.
Стоит ли держать базы на NAS с RAID 5 из жёстких дисков?
Для архивов — да, для рабочих баз — лучше нет. Запись мелкими блоками на RAID 5 из HDD медленная, а перестройка массива после замены диска занимает сутки и нагружает оставшиеся диски.
Можно ли поставить сервер 1С прямо в систему NAS, без Docker?
Не стоит. Операционная система хранилища — урезанный Linux со своими библиотеками, и обновление прошивки может сломать установленную вручную платформу. Контейнер или виртуальная машина изолируют 1С от этих изменений.