RAID для сервера 1С:Предприятия: что ставить под базу, журналы и tempdb
Содержание
Для сервера 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 решает две задачи:
- Отказоустойчивость — смерть одного диска не останавливает работу.
- Скорость — нагрузка распределяется по нескольким дискам.
RAID не заменяет резервное копирование. Удалённый документ, сбой обновления, шифровальщик или ошибка контроллера скопируются на все диски массива одновременно. Выгрузка .dt или бэкап средствами СУБД нужны в любом случае.
Сравнение уровней RAID для баз 1С
Ключевое понятие — штраф на запись (write penalty). Это число физических операций, которые массив делает на одну логическую запись. Для 1С с её постоянной записью именно он решает всё.
| Уровень | Мин. дисков | Полезный объём | Штраф на запись | Переживёт отказ | Для 1С |
|---|---|---|---|---|---|
| RAID 0 | 2 | 100% | 1 | ни одного диска | ❌ нельзя — потеря одного диска = потеря базы |
| RAID 1 | 2 | 50% | 2 | 1 диск | ✅ малые базы, журнал транзакций, система |
| RAID 10 | 4 | 50% | 2 | по 1 диску в каждой паре | ✅ лучший выбор под данные СУБД |
| RAID 5 | 3 | (N−1)/N | 4 | 1 диск | ⚠️ только архив, бэкапы, файлы |
| RAID 6 | 4 | (N−2)/N | 6 | 2 диска | ⚠️ хранилище бэкапов |
| RAID 50 | 6 | меньше RAID 5 | 4 | по 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С такие массивы имеют смысл только как большое хранилище резервных копий или файлового архива.
HDD, SSD или NVMe: на чём держать базу 1С
Тип накопителя влияет на скорость сильнее, чем уровень RAID. Даже RAID 10 из восьми HDD по 10 000 об/мин даёт около 1 000–1 500 IOPS на запись. Один современный серверный SSD выдаёт в десятки раз больше.
| Накопитель | Случайная запись, IOPS (ориентир) | Задержка | Где уместен |
|---|---|---|---|
| HDD 7 200 об/мин | 80–120 | 5–10 мс | бэкапы, архив |
| HDD 10–15 тыс. об/мин | 150–250 | 2–5 мс | устаревший вариант под СУБД |
| SATA/SAS SSD | 20 000–90 000 | 0,1–0,5 мс | база, журнал, tempdb |
| NVMe SSD | 100 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С (по умолчанию
srvinfo) — на SSD. Там лежат журнал регистрации и служебные данные кластера. На медленном диске журнал регистрации сам по себе тормозит работу. - Бэкапы — на физически другие диски, лучше на другой сервер. Копия на том же массиве, что и база, при отказе контроллера пропадёт вместе с базой.
- Временные файлы ОС и рабочих процессов 1С — на быстрый том, не на массив с бэкапами.
💡 Для MS SQL сделайте несколько файлов tempdb одинакового размера, обычно по числу ядер, но не больше восьми. Это снимает конкуренцию за служебные страницы при массовом построении отчётов.
Файловая база
Для файлового режима весь 1Cv8.1CD — один файл, разносить нечего. Положите его на RAID 1 из SSD на машине, где он лежит. Сетевая папка на сервере с RAID 5 из HDD — самый медленный вариант из возможных, и сеть тут ни при чём.
Кэш контроллера и политика записи
Аппаратный RAID-контроллер с кэшем может ускорить запись в разы, а может стать причиной потери данных. Всё решает политика записи.
- Write-Back (обратная запись). Контроллер подтверждает запись, как только данные попали в его кэш. Быстро, но при отключении питания содержимое кэша теряется — если кэш не защищён.
- Write-Through (сквозная запись). Подтверждение приходит только после записи на диск. Надёжно, но медленно на HDD.
Правило для сервера 1С:
- Write-Back включайте только при наличии защиты кэша — батареи (BBU) или флеш-модуля с суперконденсатором.
- Проверьте в утилите контроллера, что батарея исправна. Многие контроллеры при разряженной батарее сами переходят на Write-Through, и скорость падает без видимой причины.
- Кэш самих дисков при работе через аппаратный контроллер обычно отключают, если у дисков нет PLP. Контроллер защищает свой кэш, но не кэш внутри каждого диска.
- Размер полосы (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, отдельная сеть хранения, проверка задержки с хоста.