Как ускорить RAID10 на старом ПК для сервера виртуализации
В этой статье разберём, как повысить производительность RAID10 на домашнем сервере виртуализации, собранном из старого ПК с процессором i7-6700K и материнской платой Asus H170M-PLUS. Мы рассмотрим выбор дисков, настройки RAID, влияние служб Windows и VMware, а также поделимся практическим опытом решения проблемы тормозов.
Почему RAID10 тормозит: основные причины
На старом железе с программным RAID и HDD производительность часто упирается в IOPS (количество операций ввода-вывода в секунду). В отличие от RAID0, где скорость линейного чтения высока, RAID10 требует больше времени на позиционирование головок из-за зеркалирования и чередования. Основные факторы тормозов:
- Высокая очередь дисков - когда несколько виртуальных машин одновременно обращаются к диску, запросы накапливаются.
- Служба теневого копирования (VSS) - при постоянном доступе к vmem-файлам виртуалок очередь забивается.
- Неоптимальный размер блока - слишком малый или большой размер страйпа может снизить скорость.
- Выбор дисков - приоритет скорости чтения или времени доступа.
Выбор дисков: скорость чтения или время доступа?
Для RAID10 с виртуальными машинами ключевой параметр - среднее время доступа (latency). Чем оно ниже, тем быстрее диск реагирует на случайные запросы. Скорость линейного чтения важна для последовательных операций, но в сценариях с несколькими ВМ (домен-контроллер, принт-сервер, файловый сервер) преобладают случайные чтения/записи.
Пример сравнения:
- WDC WD10EZEX - 230 МБ/с, 15.0 мс - высокая скорость, но большее время доступа.
- ST1000NM0033 - 170 МБ/с, 11.72 мс - чуть медленнее линейно, но меньше задержка.
Рекомендуем выбирать диски с минимальным средним временем доступа, так как это напрямую влияет на IOPS. Однако даже лучшие HDD не сравнятся с SSD, поэтому для критичных задач стоит рассмотреть гибридные решения (например, кэширование на SSD).
Настройка RAID и файловой системы
После выбора дисков важно правильно настроить RAID-массив и файловую систему. Вот что помогло в описанном случае:
- Размер страйпа 64 КБ - оптимален для смешанных нагрузок (базы данных, файловые серверы).
- Размер блока логического диска 64 КБ - синхронизация с размером страйпа улучшает производительность.
- Форматирование с большим размером кластера (например, 64 КБ) снижает фрагментацию и ускоряет чтение больших файлов.
Отключение vmem-файлов VMware
Одна из главных находок - отключение vmem-файлов (файлов подкачки виртуальных машин). Служба теневого копирования (VSS) постоянно обращается к этим файлам, создавая огромную очередь дисков. После перезагрузки проблема временно исчезает, но возвращается через несколько недель.
Чтобы отключить vmem, добавьте в конфигурационный файл каждой ВМ (.vmx) следующие строки:
mainMem.useNamedFile = "FALSE"
sched.mem.pshare.enable = "FALSE"
MemTrimRate = "0"
prefvmx.minVmMemPct = "100"
prefvmx.useRecommendedLockedMemSize = "TRUE"Важно: у хоста должно быть достаточно оперативной памяти, чтобы компенсировать отказ от vmem. Если RAM мало, виртуалки могут не запуститься или работать нестабильно.
Дополнительные советы по оптимизации
- Балансировка IOPS - в VMware Workstation Pro нет встроенной балансировки, но можно вручную ограничить ресурсы для каждой ВМ (настройки CPU и памяти).
- Регулярная дефрагментация - для HDD это может частично снизить фрагментацию.
- Использование SSD для кэша - если есть возможность, поставьте SSD под кэш (например, с помощью Intel RST или Storage Spaces).
- Мониторинг очереди дисков - в диспетчере задач Windows следите за средней длиной очереди диска (не более 2-3 на один физический диск).
Заключение
На старом ПК с HDD RAID10 производительность виртуальных машин можно улучшить за счёт правильного выбора дисков (с минимальным временем доступа), настройки RAID (страйп 64 КБ) и отключения vmem-файлов. Главное - не забывать про мониторинг и регулярные перезагрузки, если проблема возвращается. Для серьёзных нагрузок рекомендуем использовать аппаратный RAID и SSD, но в рамках ограниченного бюджета описанные методы дают заметный прирост.