При развертывании сервера для работы с программами 1С (например, 1С:Управление торговлей) в связке с СУБД MS SQL, одним из самых критичных этапов является правильное проектирование дисковой подсистемы. Ошибки на этом этапе приведут к медленной работе баз данных, зависаниям при проведении документов и, что самое страшное, к потенциальной потере информации. Давайте подробно рассмотрим, как правильно подобрать диски, определимся с уровнями RAID-массивов и проанализируем современные подходы к построению серверов.
Разберем классическую ситуацию: имеется небольшой офис, 5 пользователей, база данных объемом около 6 Гб. Планируется использовать сервер HPE ML350 Gen9 и СУБД MS SQL. Изначально возникает идея собрать следующую конфигурацию: под операционную систему выделить RAID 1 (зеркало из двух SSD), а под данные базы — RAID 10, тоже из двух SSD.
Сразу же выявим первую критическую ошибку в логике: собрать RAID 10 из двух дисков физически невозможно. Для этого уровня массива требуется минимум 4 накопителя (чередование зеркал). Если в сервере ограничено количество корзин для дисков (например, всего 8 слотов LFF), нам нужно очень грамотно распределить имеющееся пространство.
Посмотрим, какие уровни RAID подходят для наших задач, а от каких следует категорически отказаться:
Проанализируем работу твердотельных накопителей (SSD) в условиях RAID. Вокруг этой темы существует много споров. Рассмотрим ключевые нюансы, которые необходимо учитывать:
1. Проблема команды TRIM и сборки мусора:
Часто можно услышать, что в аппаратных RAID-контроллерах не работает команда TRIM, из-за чего SSD со временем начинают катастрофически терять скорость записи. Однако современные аппаратные RAID-контроллеры последних поколений уже умеют транслировать команды TRIM/UNMAP. Более того, если мы используем серверные диски (Enterprise SSD), эта проблема становится неактуальной. Корпоративные диски имеют большую скрытую резервную область (Over-Provisioning) и агрессивные внутренние алгоритмы уборки мусора (Garbage Collection), что позволяет им держать стабильно высокую скорость даже без помощи операционной системы.
2. Риск одновременного износа в зеркале:
В массиве RAID 1 на оба SSD пишется абсолютно идентичный объем данных. Существует риск, что оба диска исчерпают свой ресурс перезаписи (TBW) практически в один день, что приведет к падению всего массива. Чтобы этого избежать, применим следующие практики:
MS SQL сервер состоит из нескольких сущностей, которые по-разному нагружают дисковую подсистему. Золотое правило оптимизации 1С — раскидать эти сущности по разным физическим массивам. Рассмотрим идеальную схему распределения:
RAID 1 из двух небольших SSD.RAID 1 или RAID 10. Здесь важна скорость случайного чтения.Если бюджет или количество корзин в сервере ограничены, допускается объединить базу данных и логи транзакций, но TempDB настоятельно рекомендуется выносить отдельно.
Рассмотрим применение современных NVMe накопителей. Специфика нагрузки 1С — это сотни тысяч мелких случайных операций блоками по 4Кб и 8Кб. Старый интерфейс SATA позволяет обрабатывать только 1 очередь из 32 команд. Интерфейс NVMe поддерживает до 64 000 очередей по 64 000 команд в каждой. Разница колоссальная!
Однако, здесь есть подводный камень: создавать аппаратный RAID из быстрых NVMe дисков — плохая идея. Процессор RAID-контроллера просто не справится с таким потоком IOPS и станет "бутылочным горлышком". Для NVMe стандартом является использование программных массивов (софтовый RAID средствами Windows Server или Linux). Программный RAID напрямую задействует мощные ядра центрального процессора сервера и не ограничивает скорость дисков.
При выборе форм-фактора избегайте использования дисков формата M.2 для баз данных — они сильно греются и не поддерживают горячую замену. Их удел — загрузка гипервизора или ОС. Для серьезных нагрузок используйте серверные NVMe формата U.2 или U.3, которые устанавливаются в фронтальные корзины сервера и отлично охлаждаются.
Если вы все же используете аппаратный RAID-контроллер в связке с SSD, обязательно обратите внимание на настройки кэширования. Для классических HDD включение кэша записи (Write-Back) давало огромный прирост. Для быстрых SSD это работает наоборот — контроллер лишь добавляет задержки (Latency). Рекомендуется отключать кэш контроллера (режим Write-Through) или переводить его в сквозной режим HBA (IT-mode), отдавая диски ОС напрямую.
Не менее важно наличие в серверных SSD аппаратной защиты от потери питания (PLP - Power Loss Protection). Встроенные конденсаторы гарантируют, что данные из кэша диска успеют записаться во флэш-память при внезапном отключении электричества. Это спасет базу 1С от логического разрушения.
Запомним главное правило: RAID-массив не является резервной копией!
Отказоустойчивый кластер или RAID 1 спасут вас, если физически сгорит один из жестких дисков. Но они абсолютно бесполезны, если:
Настроим правильный процесс защиты данных. Во-первых, системный диск полезно периодически бэкапить целиком (например, через снятие образа системы). Во-вторых, для самой базы данных необходимо настроить регулярные Maintenance Plans (Планы обслуживания) средствами MS SQL. Копии должны делаться каждый день и складываться на отдельный, физически независимый носитель (внешний диск, сетевое хранилище NAS), а в идеале — дополнительно дублироваться в защищенное облачное хранилище.
Только комплексный подход — использование правильного уровня RAID для отказоустойчивости, серверных SSD для скорости и надежной системы резервного копирования для безопасности — обеспечит бесперебойную работу вашего сервера 1С.