RAID для сервера 1С:Предприятия: что ставить под базу, журналы и tempdb

· 10 мин

Содержание

Для сервера 1С с базой в СУБД лучший выбор — RAID 10 на SSD или NVMe под файлы данных и отдельный RAID 1 под журнал транзакций. Для небольшой файловой базы на 5–10 пользователей хватит зеркала RAID 1 из двух SSD. RAID 5 и RAID 6 под рабочую базу 1С лучше не ставить: они медленно пишут, а 1С пишет постоянно.

Когда проведение документов тормозит, а процессор сервера загружен на 20%, виноват почти всегда диск. Ниже — как выбрать уровень RAID для 1С под ваш объём, какие накопители брать, как разнести файлы и что настроить в контроллере и гипервизоре.

Почему 1С так зависит от дисковой подсистемы

1С:Предприятие 8.3 работает с базой через СУБД (MS SQL Server, PostgreSQL) или в файловом режиме через файл 1Cv8.1CD. В обоих случаях нагрузка похожа: много мелких случайных операций чтения и записи блоками по 8 КБ.

Что пишет база при обычной работе:

  • 📝 проведение документа — записи в регистры, таблицы итогов, журнал транзакций;
  • 🔒 управляемые блокировки и служебные таблицы;
  • 📊 временные таблицы запросов — в tempdb у MS SQL или во временных файлах у PostgreSQL;
  • 📒 журнал регистрации — в каталоге кластера сервера 1С.

Отсюда главный показатель для выбора — не скорость линейного чтения в МБ/с, а IOPS на случайную запись и задержка (latency). Хорошая цифра для базы 1С — задержка записи до 1–2 мс. Если в мониторинге диска видно 20–50 мс, пользователи это почувствуют сразу.

RAID решает две задачи:

  1. Отказоустойчивость — смерть одного диска не останавливает работу.
  2. Скорость — нагрузка распределяется по нескольким дискам.

RAID не заменяет резервное копирование. Удалённый документ, сбой обновления, шифровальщик или ошибка контроллера скопируются на все диски массива одновременно. Выгрузка .dt или бэкап средствами СУБД нужны в любом случае.

Сравнение уровней RAID для баз 1С

Ключевое понятие — штраф на запись (write penalty). Это число физических операций, которые массив делает на одну логическую запись. Для 1С с её постоянной записью именно он решает всё.

УровеньМин. дисковПолезный объёмШтраф на записьПереживёт отказДля 1С
RAID 02100%1ни одного диска❌ нельзя — потеря одного диска = потеря базы
RAID 1250%21 диск✅ малые базы, журнал транзакций, система
RAID 10450%2по 1 диску в каждой паре✅ лучший выбор под данные СУБД
RAID 53(N−1)/N41 диск⚠️ только архив, бэкапы, файлы
RAID 64(N−2)/N62 диска⚠️ хранилище бэкапов
RAID 506меньше RAID 54по 1 диску в каждой группе⚠️ большие массивы под чтение

RAID 1 — зеркало

Два диска с одинаковыми данными. Чтение идёт с обоих, запись — на оба. Это самый простой и надёжный вариант. Его берут под операционную систему, под журнал транзакций СУБД и под небольшую базу целиком.

RAID 10 — зеркала, объединённые в полосу

Минимум четыре диска: две зеркальные пары, данные распределены между ними. Скорость записи растёт почти пропорционально числу пар, а штраф остаётся равным 2. При отказе диска массив работает без потери скорости, восстановление идёт простым копированием с соседа по паре.

Это стандарт для сервера СУБД под 1С на 30 и более пользователей.

RAID 5 и RAID 6 — массивы с контролем чётности

Выглядят выгодно: из четырёх дисков по 1,92 ТБ RAID 5 даст около 5,76 ТБ, а RAID 10 — около 3,84 ТБ. Но каждая запись в RAID 5 превращается в четыре операции: прочитать старые данные, прочитать чётность, записать данные, записать чётность. В RAID 6 — шесть.

Пример расчёта. Четыре SSD по 50 000 IOPS на запись:

  • RAID 10: 4 × 50 000 / 2 = 100 000 IOPS;
  • RAID 5: 4 × 50 000 / 4 = 50 000 IOPS;
  • RAID 6: 4 × 50 000 / 6 ≈ 33 300 IOPS.

Есть и вторая проблема — восстановление. На больших HDD (8–16 ТБ) ребилд RAID 5 идёт сутками, всё это время массив работает медленно и не защищён от отказа второго диска.

RAID 50 и RAID 60

Это несколько групп RAID 5 (или 6), объединённые в полосу. Они быстрее одиночного RAID 5 и лучше переносят ребилд, но штраф на запись тот же. Для 1С такие массивы имеют смысл только как большое хранилище резервных копий или файлового архива.

Какая у вас база 1С?

HDD, SSD или NVMe: на чём держать базу 1С

Тип накопителя влияет на скорость сильнее, чем уровень RAID. Даже RAID 10 из восьми HDD по 10 000 об/мин даёт около 1 000–1 500 IOPS на запись. Один современный серверный SSD выдаёт в десятки раз больше.

НакопительСлучайная запись, IOPS (ориентир)ЗадержкаГде уместен
HDD 7 200 об/мин80–1205–10 мсбэкапы, архив
HDD 10–15 тыс. об/мин150–2502–5 мсустаревший вариант под СУБД
SATA/SAS SSD20 000–90 0000,1–0,5 мсбаза, журнал, tempdb
NVMe SSD100 000–500 000+менее 0,1 мснагруженная база, tempdb

Цифры — ориентиры для серверных моделей, у конкретного диска они указаны в спецификации.

На что смотреть при выборе SSD

  • 🔋 Защита от потери питания (PLP). В серверных SSD есть конденсаторы, которые успевают записать кэш при отключении питания. Бытовые SSD без PLP при аварии могут потерять подтверждённые записи — для СУБД это повреждение базы.
  • ✍️ Ресурс записи в DWPD (полных перезаписей диска в день). Для базы 1С с активной работой ориентир — от 1 DWPD. Read-intensive модели с 0,3 DWPD подходят под систему, но не под tempdb.
  • ⚡ Стабильная скорость под нагрузкой. Бытовые диски быстры на коротком тесте, а через несколько минут непрерывной записи проваливаются в разы.

Не ставьте бытовые SSD без защиты от потери питания под рабочую базу 1С в СУБД. Экономия в пару десятков тысяч рублей оборачивается риском повреждения базы при первом же скачке напряжения.

Как собирать NVMe в RAID

Обычные аппаратные контроллеры SAS/SATA с NVMe не работают — нужен контроллер с поддержкой NVMe (tri-mode) или программный RAID. На Windows Server это зеркало в «Дисковых пространствах» (Storage Spaces), на Linux — mdadm. На современных процессорах программное зеркало NVMe почти не нагружает систему.

Как разнести файлы базы по массивам

Один большой массив под всё — частая ошибка. Журнал транзакций пишется последовательно, данные — случайно, tempdb дёргают все сложные отчёты. Когда это лежит на одних дисках, операции мешают друг другу.

Схема для выделенного сервера СУБД под 1С:

ЧтоНагрузкаМассив
ОС, программы, платформа 1СнизкаяRAID 1 (2 × SSD)
Файлы данных базы (.mdf или каталог данных PostgreSQL)случайное чтение и записьRAID 10 (4–8 × SSD/NVMe)
Журнал транзакций (.ldf или pg_wal)последовательная записьRAID 1 (2 × SSD)
tempdb (MS SQL) или временные файлыинтенсивная записьотдельный NVMe или RAID 1 из NVMe
Резервные копиикрупные последовательные записиRAID 6 из HDD или другой сервер

Что ещё стоит разнести:

  1. Каталог кластера сервера 1С (по умолчанию srvinfo) — на SSD. Там лежат журнал регистрации и служебные данные кластера. На медленном диске журнал регистрации сам по себе тормозит работу.
  2. Бэкапы — на физически другие диски, лучше на другой сервер. Копия на том же массиве, что и база, при отказе контроллера пропадёт вместе с базой.
  3. Временные файлы ОС и рабочих процессов 1С — на быстрый том, не на массив с бэкапами.

💡 Для MS SQL сделайте несколько файлов tempdb одинакового размера, обычно по числу ядер, но не больше восьми. Это снимает конкуренцию за служебные страницы при массовом построении отчётов.

Файловая база

Для файлового режима весь 1Cv8.1CD — один файл, разносить нечего. Положите его на RAID 1 из SSD на машине, где он лежит. Сетевая папка на сервере с RAID 5 из HDD — самый медленный вариант из возможных, и сеть тут ни при чём.

Кэш контроллера и политика записи

Аппаратный RAID-контроллер с кэшем может ускорить запись в разы, а может стать причиной потери данных. Всё решает политика записи.

  • Write-Back (обратная запись). Контроллер подтверждает запись, как только данные попали в его кэш. Быстро, но при отключении питания содержимое кэша теряется — если кэш не защищён.
  • Write-Through (сквозная запись). Подтверждение приходит только после записи на диск. Надёжно, но медленно на HDD.

Правило для сервера 1С:

  1. Write-Back включайте только при наличии защиты кэша — батареи (BBU) или флеш-модуля с суперконденсатором.
  2. Проверьте в утилите контроллера, что батарея исправна. Многие контроллеры при разряженной батарее сами переходят на Write-Through, и скорость падает без видимой причины.
  3. Кэш самих дисков при работе через аппаратный контроллер обычно отключают, если у дисков нет PLP. Контроллер защищает свой кэш, но не кэш внутри каждого диска.
  4. Размер полосы (stripe size) для данных СУБД — ориентир 64 КБ. Раздел под файлы MS SQL форматируйте в NTFS с размером кластера 64 КБ.

Менять политику кэша, размер полосы или пересобирать массив на работающем сервере нельзя. Это делают в окно обслуживания, когда пользователи вышли из 1С, служба сервера 1С и СУБД остановлены, а свежая резервная копия проверена на восстановление. Пересоздание массива с другим размером полосы уничтожает данные на нём.

Как проверить, что диск тянет

На Windows для замера используют утилиту Microsoft DiskSpd. Пример теста, близкого к нагрузке СУБД: блок 8 КБ, 70% чтения, 30% записи, случайный доступ.

diskspd.exe -c20G -d120 -b8K -r -w30 -t4 -o16 -Sh -L D:\test\io.dat

Смотрите на итоговые IOPS и задержку записи в процентилях. Тест создаёт нагрузку на диск, поэтому запускайте его до ввода сервера в работу или в нерабочее время.

На Linux то же самое делает fio. Для быстрой оценки готовой базы есть и тест Гилёва — он показывает итоговую производительность связки «процессор + СУБД + диск» в условных единицах.

RAID и виртуальные машины

Чаще сервер 1С сегодня работает в виртуальной машине под VMware ESXi, Hyper-V или Proxmox. RAID при этом собирается на уровне хоста, а гостевая система видит готовый виртуальный диск.

Что важно для 1С в виртуализации:

  • 💽 Не собирайте RAID внутри виртуальной машины поверх виртуальных дисков, лежащих на одном и том же хранилище. Надёжности это не добавит, а скорость уменьшит.
  • 📏 Диски фиксированного размера. В Hyper-V — VHDX фиксированного размера, в VMware — толстое выделение (Thick Provision Eager Zeroed). Динамические и «тонкие» диски дают лишнюю задержку при росте и рискуют переполнить хранилище.
  • 🚀 Паравиртуальный контроллер. В VMware для дисков СУБД — VMware Paravirtual (PVSCSI), в Proxmox/KVM — VirtIO SCSI. Эмулированные контроллеры старых типов заметно медленнее.
  • 🧩 Отдельные виртуальные диски под данные, журнал и tempdb, как на физическом сервере. Если хост позволяет, кладите их на разные датасторы.
  • 📸 Снимки (snapshots) — не резервная копия. Долгоживущий снимок замедляет запись: каждая операция идёт в дельта-файл. Держите снимок только на время обновления и удаляйте сразу после.

Proxmox и ZFS

На Proxmox часто используют ZFS. Для базы 1С подходит пул из зеркал (аналог RAID 10), а не RAIDZ — у RAIDZ та же проблема медленной случайной записи, что и у RAID 5. ZFS активно использует оперативную память под кэш, закладывайте на хосте запас памяти под него.

СХД и общие хранилища

Если диски виртуальных машин лежат на СХД по iSCSI или FC, уровень RAID задаётся в самой СХД. Требования те же: под том с базой 1С — RAID 10 или его аналог из SSD, отдельная сеть хранения, проверка задержки с хоста.

Частые вопросы

Нужен ли RAID, если сервер 1С в облаке?
Нет, собирать его не нужно. Провайдер уже защищает диски на своей стороне. Ваша задача — выбрать тип диска с нужными IOPS и делать собственные бэкапы.
Можно ли расширить RAID 1 до RAID 10 без переустановки?
Многие аппаратные контроллеры умеют миграцию уровня онлайн, но она идёт часами и нагружает массив. Надёжнее собрать новый массив и перенести базу через бэкап СУБД в окно обслуживания.
Что лучше: аппаратный RAID или программный?
Для SATA/SAS дисков — аппаратный контроллер с защищённым кэшем. Для NVMe программный RAID на Windows Server или Linux работает не хуже и не ограничен пропускной способностью контроллера.
Сколько дисков горячей замены держать?
Для массива из 4–8 дисков — один диск горячего резерва (hot spare) или один такой же диск на полке. Ребилд стартует сразу, без ожидания поставки.
Почему после замены диска 1С стала работать медленнее?
Идёт ребилд массива, и он забирает часть скорости дисков. Скорость вернётся после его завершения. Многие контроллеры позволяют снизить приоритет ребилда в рабочие часы.