Вопрос или проблема
Я хочу настроить сервер Hyper-V для работы четырех виртуальных машин: сервер базы данных Linux (HANA), сервер терминалов Windows и несколько виртуальных машин Windows 10.
До сих пор я всегда использовал SATA SSD в аппаратном RAID с контроллером RAID и BBU. Для лучшей производительности на моем сервере базы данных я рассматриваю возможность перехода на NVMe SSD вместо SATA SSD. Моя основная причина рассматривать RAID заключается в том, чтобы гарантировать, что мои серверы останутся в сети, если один из дисков выйдет из строя. У меня есть ежедневные резервные копии, но восстановление из них займет время и может привести к потере данных между последней резервной копией и выходом из строя. Я хочу избежать и простоя, и потери данных, если это возможно.
Что бы вы порекомендовали в этом сценарии? Я открыт для любых предложений.
Пока что я обнаружил, что аппаратные контроллеры RAID для NVMe-дисков редки, и большинство из них имеют более низкую производительность, что сводит на нет цель использования NVMe-дисков. Есть возможность Intel vROC, но я обеспокоен его надежностью и поддержкой, так как Intel объявила о планах прекратить его поддержку. Любая помощь здесь будет полезна.
Кроме того, какой уровень RAID будет лучшим в этом случае? RAID 1, 5, 6 или 10? У вас есть предложения по количеству виртуальных LUN для размещения файлов VHDX производительных виртуальных машин?
Я также видел предложения по ZFS, но не смог полностью понять или применить его в этом контексте.
Много вопросов, давайте разберем их по одному.
- Да, “классические” аппаратные контроллеры RAID для NVMe-дисков довольно редки, в основном потому, что они ухудшают производительность, и это людям не нравится. Видите ли, они в основном “мультиплексируют” линии PCIe от NVMe-дисков на материнскую плату. Так что, если у вас есть слот PCIe x16 с подключенным контроллером RAID, вы можете запустить только четыре NVMe-диска x4 на их полной скорости. Больше этого, и пропускная способность начинает сужаться, и вы остаетесь с плохой производительностью. Не хорошо оставлять деньги на столе!
Что вы можете сделать, так это использовать контроллер RAID на основе GPU. Эта настройка использует слоты PCIe материнской платы для NVMe-дисков (так что потери пропускной способности не будет, если вы не исчерпаете линии PCIe от CPU, что маловероятно). Она разгружает все вычисления паритета на GPU, так что ваш CPU может на самом деле делать то, что у него есть на уме, а именно запускать ваши производственные виртуальные машины. Хороший пример – GRAID, посмотрите тут:
https://www.graidtech.com/supremeraid-virtualization-platforms/
- RAID не спасет вас, если ваш БП выйдет из строя или ваш CPU перегреется. Вам действительно нужно будет принести второй сервер и настроить кластер Hyper-V HA. Вам нужно будет реплицировать ваше хранилище между двумя узлами, и для самой производительной настройки, которая также работает с аппаратными RAID (включая GRAID), StarWind Virtual SAN – это решение. Он фактически “сетевает” RAID1 ваши локальные RAID5 или RAID6 NVMe пул для истинной избыточности. Вы получите ноль простоя и ноль потери данных, если что-то пойдет не так с оборудованием. Для StarWind vSAN посмотрите здесь:
https://www.starwindsoftware.com/starwind-virtual-san
А для настройки кластеров Hyper-V вот хорошее руководство:
Windows Server Datacenter поставляется с этой встроенной функцией под названием Storage Spaces Direct (S2D), которая выполняет как локальный RAID, так и репликацию между узлами, но мы обычно пропускаем ее, потому что она немного нестабильна (особенно в паре с ReFS) и не дает такой же производительности.
- Intel vROC? Да, это не лучший выбор для производства. Он основан на Linux MDRAID, но Intel добавила слишком много частных модификаций, что делает крайне маловероятным, что сообщество его подхватит, если Intel решит прекратить поддержку.
(Нет ссылок на это, это все слухи пока, но вы можете увидеть, куда все движется с 2023 года. Признаки на стене уже долгое время!)
-
С NVMe-дисками RAID5 работает хорошо, потому что восстановление быстрое. Если вы добавите репликацию между узлами, это фактически RAID51, который увеличивает как производительность, так и избыточность. Но это вам обойдется, вам нужно будет удвоить количество ваших NVMe-дисков. RAID6 и RAID10? Это избыточно для ваших нужд.
-
ZFS? Не лучший выбор для NVMe пулов. Это хорошо для записи, потому что он делит данные и использует все диски в пуле, в отличие от “классического” RAID, где только диски в “полосе” получают записи. Но чтения? Не очень. Вы получите производительность только одного NVMe-диска для чтений, и это с натяжкой. Посмотрите эту ссылку, чтобы получить полное понимание производительности ZFS:
Удачи, и удачи в вашем начинании!
Ответ или решение
Вопрос использования аппаратного RAID-контроллера с NVMe SSD для Hyper-V сервера, который хостит производственные виртуальные машины (VM), требует серьезного анализа. Давайте разберем ключевые моменты и проблемы, которые необходимо учесть.
### 1. Аппаратные RAID-контроллеры и NVMe SSD
Использование аппаратного RAID-контроллера с NVMe SSD может быть не самым оптимальным решением. Во-первых, большинство традиционных RAID-контроллеров, изначально спроектированных для работающих с SATA-дисками, могут значительно ограничивать производительность NVMe SSD, так как они перекрывают PCIe-каналы. Это может привести к тому, что вы не сможете в полной мере использовать преимущества высокой скорости NVMe.
Если вы все же хотите использовать RAID, рассмотрите возможность использования платформ, которые поддерживают NVMe напрямую. Например, существуют контроллеры, использующие архитектуру GPU для обработки параллельных операций, что уменьшает нагрузку на процессор и не снижает эффективность работы дисков.
#### Рекомендации:
– Проверьте наличие контроллеров, специально созданных для NVMe. Обратите внимание на GRAID или другие подобные решения, которые могут обеспечить необходимую производительность.
### 2. Резервирование и отказоустойчивость
Как вы уже отметили, RAID не защищает от полного отказа оборудования, такого как выход из строя блока питания или материнской платы. Полноценная стратегия для повышения отказоустойчивости вашего Hyper-V сервера — это создание кластера высокой доступности. Например, реализация кластера с использованием технологии HA (High Availability) позволит вам избежать простоев и потерь данных.
#### Рекомендации:
– Рассмотрите StarWind Virtual SAN как решение для сетевой репликации и отказоустойчивости, которое поможет создать страту данных между узлами кластера.
### 3. Выбор уровня RAID
Если вы все же решите использовать RAID, лучший выбор для NVMe SSD в вашем случае — это RAID 5 или RAID 10. RAID 5 обеспечит хорошую производительность и достаточно быструю реконструкцию в случае сбоя диска, в то время как RAID 10 предложит лучшую отказоустойчивость за счет дублирования.
#### Рекомендации:
– Для базы данных, особенно такой, как HANA, рассмотрите RAID 10 за его выдающуюся производительность ввода-вывода, несмотря на необходимость в двойном количестве дисков.
### 4. Использование ZFS
ZFS может быть интересным выбором для некоторых применений, но не лучший выбор для NVMe. Его архитектура требует больше ресурсов на чтение из-за того, как он распределяет данные, что может существенно снизить производительность ваших операций с NVMe-дисками.
### Заключение
Итак, в вашей ситуации, учитывая необходимость в высоком уровне производительности и отказоустойчивости, использование аппаратного RAID-контроллера с NVMe SSD не рекомендуется. Вместо этого, лучше рассмотреть решение с переведением на кластеризацию, использование программного RAID или виртуализированных SAN, что обеспечит необходимую производительность и защиту данных.
Получив мощную архитектуру на базе Hyper-V, вы сможете эффективно управлять несколькими производственными виртуальными машинами, минимизируя риск потерь и простоев.