ADG Оставить заявку
Блог Инфраструктура 4 мин чтения

Storage Spaces на бюджетном железе: зеркало с паритетом и без иллюзий

Тестируем Storage Spaces из Windows Server 2012 на трёх SATA-дисках: двустороннее зеркало плюс паритет. Производительность ниже аппаратного RAID, зато цена вопроса - ноль.

Контекст момента

Windows Server 2012 GA: Storage Spaces - программный RAID поверх любых дисков, включая USB и SATA, с поддержкой thin provisioning

Когда на прошлой неделе мы катили первую боевую установку WS2012 у пилотного клиента, Storage Spaces там был на трёх разнокалиберных дисках с файловым шарингом - и мы пообещали покопать глубже. Копаем. На этот раз - уже целенаправленный стенд: три диска SATA одного класса, задача архивного хранилища, конфигурация зеркало плюс паритет.

Что вообще такое Storage Spaces

Если коротко: Windows умеет объединять физические диски (и даже USB-накопители, что вызывает смешанные чувства) в пул, а из пула нарезать виртуальные тома с разными уровнями защиты - зеркало, паритет или просто JBOD без защиты. Всё это без сторонних утилит, через встроенный Server Manager или PowerShell.

Thin provisioning идёт в комплекте: виртуальный диск можно объявить больше физического пула и докупать железо по мере реального роста данных, не перестраивая структуру. Это из области «раньше так умели только дорогие СХД» - теперь работает прямо в стандартной лицензии Windows Server 2012.

Диапазон применения широкий - от USB-«сейфа» на рабочей станции до полноценного архивного хранилища на сервере. Мы пошли в сторону сервера.

Стенд

Три диска SATA объёмом по 1 ТБ, один хост с WS2012 Standard, никакого RAID-контроллера - обычный чипсетный AHCI. Создаём пул из трёх дисков, дальше два виртуальных тома:

  • Зеркало (Mirror 2-way). Два диска под данные, один диск под второй экземпляр. Размер реально доступного пространства - примерно 1 ТБ из трёх.
  • Паритет (Parity). Данные и контрольные суммы размазаны по трём дискам. Эффективная ёмкость около двух третей пула.

Что хотели проверить: насколько производительность паритетного тома упадёт по сравнению с зеркалом и что будет при потере одного диска.

Производительность

Цифр точных не будем давать - разные дисковые конфигурации дают разброс, и мы не хотим, чтобы кто-то воспринял наши цифры как эталон. Общая картина:

  • Зеркало читает примерно так же, как один диск, а местами чуть быстрее за счёт чтения с обоих. Запись - как один диск, без сюрпризов.
  • Паритет на чтении - сносно, сравнимо с зеркалом при последовательном чтении.
  • Паритет на записи - вот здесь просадка заметная. Расчёт XOR-паритета ложится на CPU, и при интенсивной записи это ощущается. На нашем хосте с умеренной нагрузкой - терпимо, но для потоковой записи больших объёмов это не вариант.

Аппаратный RAID-5 на нормальном контроллере с кешем и BBU выигрывает у паритета Storage Spaces по записи значительно. Сравнивать их в лоб не стоит - разные ценовые категории, разное железо.

Отказ диска: симулируем

Вытащили один диск с горячим подключением - Storage Spaces перешёл в деградированный режим, предупреждение в Server Manager появилось быстро. Доступность данных сохранилась. После возврата диска пересборка пула прошла без участия человека.

На паритетном томе в деградированном режиме производительность упала ещё сильнее - это ожидаемо: расчёт паритета без одного диска требует больше операций. Работать можно, гонять туда активную нагрузку не стоит.

Где это реально подходит

Для managed-клиентов у нас уже есть сценарии, где Storage Spaces попадает в точку:

  • Архивное хранилище с редкими записями и нечастыми чтениями - паритет работает нормально, ёмкость высокая.
  • Вторичный файловый сервер с нагрузкой офисного уровня - зеркало без вопросов.
  • Репозиторий резервных копий - пишем редко большими блоками, читаем ещё реже, зато место нужно много и дёшево.

Куда Storage Spaces не стоит ставить: базы данных с интенсивной записью, почтовый сервер с большим трафиком Exchange, любая нагрузка, где IOPS - критический параметр.

Про thin provisioning отдельно

Мы уже сталкивались с thin provisioning на NetApp FAS и хорошо знаем, чем заканчивается пул, за которым не смотрят. Storage Spaces не исключение: объявить виртуальный том в 10 ТБ при физическом пуле в 3 ТБ - технически можно, но мониторинг заполненности пула обязателен. Windows умеет присылать события, когда пул перебирает порог, - настройте оповещения до того, как данные начнут писаться.

Итог

Storage Spaces - это рабочий программный RAID для задач, где аппаратный RAID не нужен или дорог. Производительность ниже, чем у выделенного контроллера с BBU - это не баг, это честная расплата за нулевую стоимость решения. Для архивного хранилища на трёх SATA-дисках это отличный вариант: диски дешёвые, ёмкость хорошая, надёжность приемлемая.

Тестирование продолжаем: хочется посмотреть на поведение ReFS поверх Storage Spaces при корруптированных блоках - там обещают self-healing. Но это отдельная история и отдельный пост.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.