Какой raid выбрать для виртуализации

Обновлено: 04.07.2024

Доброго времени суток!
В наследство от прошлого админа достался сервер, на котором крутятся около 30 виртуалок (точнее - 29).
Платформа - супермикро (более точно могу сказать позднее). На материнке два процессора, 64 гига памяти, но слабая дисковая подсистема. Все сделано на набортном рейд-контроллере (по-моему, 602 чипсет), да еще на САТА-дисках. По словам старого админа, материнка не видит САС-диски, хотя один разъем на ней есть (как будто бы их подключали, но в биосе они не увиделись). Сейчас через этот разъем подключены обычные САТА-диски.
Вся дисковая подсистема состоит из 4-х зеркал: одно под систему, на трех - по 10 виртуалок.
Чтобы как-то облегчить ситуацию, преобразовал *.vhd в диски фиксированного размера.
В итоге наблюдаем картину: утром, при логоне пользователей % использования самого нагруженного зеркала = 100%. После преобразования в фиксированные длительность этого безобразия сократилась, но хотелось бы большего.

Посоветуйте, плиз, рейд-контроллер под САС-диски, очень дорогой не надо, что-нибудь оптимальное. Сам предпочел бы LSI, т.к. на сервере установлен 2012 Hyper-V без графической оболочки, а управляющая софтина на него устанавливается, запускается.

может соберете 10-ый рейд из всех дисков для начала, чтобы размазать операции по большему количеству шпинделей?

Насчет рейд-10: в целом, можно попробовать, но в настоящее время не хватит дискового объема (если не путаю, в 10-ом рейде свободного места половина от всего объема всех дисков, а сейчас на каждом зеркале только 30 % свободного места).

а какой уровень вы используете, 5-ый наверно? попробуйте тогда с текущим уровнем собрать или 6-ым, если контроллер позволяет. на мой взгляд в данном случае кэш не поможет, но может другие участники форума будут другого мнения. Сколько нужно дискового пространства?
А то зеркало из пары SSDшек просто напрашивается.

Спасибо за советы!
Первоначально немного ошибся в оценке занимаемого места (писал по памяти).
Сейчас все диски в зеркальных массивах, а именно:
диск Д: 2 диска по 1 ТБ Сигейт Констелейшен (он как раз и проблемный, т.к. работает больше всех пользователей). Занято где-то 502 гига (файлы вирт машин 9 шт + служебные файлы, равные объему оперативной памяти, назначенной виртуальной машине).
Диск Е: 2 диска по 500 ГБ, занято промерно 330 гигов (тут пока диски виртуальных машин динамически изменяемые, наверное запланирую установку двух терабайтных винтов + преобразование в фиксированные)
Диск F: тоже зеркало, 2 диска по 1 ТБ, занято 557 гигов.

Если делать Рейд-10 на встроенном в мамку чипсете из 6 дисков по 1 тб, получим 3 тб свободного места. вроде бы так.
Т.е. по расчетам получается, что должно хватить.

Единственное - вопрос. Если все-таки какой-то пользователь запускает программы или выполняет задачи, активно использующие диск, как вариант - торренты, онлайн-видео или скайп (есть подозрение, что что-то похожее происходит, и именно оно тормозит все зеркало - диск Д), не будет ли оно тормозить вообще все диски в рейд-10, и следовательно вообще все виртуалки?
Эти явления с торентами, конечно зло, буду искать и искоренять, а само по себе интересно.

И такой момент - вылетит один диск из зеркала (или развалиться рейд) - тут проще, можно его собрать на обычном компе попробовать восстановить, ну или если простой случай - просто заменить диск и сделать ребилд.
А как быть, если развалится рейд-10 из 6 дисков? Как тогда восстановить информацию?

Еще раз, благодарю.

Рэйд10 из шести винтов на интеграшке - не стоит, имхо. Зеркало оно делает нормально, но большее - не его уровень, слишком хлипкая конструкция.
Лучше уж смотрите в сторону контроллера типа LSI 9260 и 2-4шт SAS 10/15к в рэйд1/10.
Еще лучше - контроллер с SSD кэшированием и саташным зеркалом. У Вас горячих данных в виртуалках наверняка раз-два и обчелся.

На него планируется поставить 5-6 виртуалок с разными осями (пара линуксов, windows 2012, windows 2003, windows 7).

Виртуализация на Centos7 (KVM)

Как правильно сделать массивы чтобы виртуалки не тормозили диски другим? Просто сделать raid5 или 6? Или сделать несколько массивов?



1. Не знаю как там чистый KVM, но Proxmox позволяет ограничить доступную виртуальным дискам шину (по MB/s, и по ops/s). Подозреваю, что это фича KVM'а. Так что разбивать по массивам смысла особого нет.

2. Определись с нагрузкой на диски. Какие виртуалки будут стоять, что на них будет крутится. Сколько в процентах будет чтение, а сколько записи на RAID массив

4. Исходя из того, сколько % от всех операций будет составлять запись, выбери уровень RAID. Общее правило, чем больше запись, тем выгоднее 10ый рейд, и тем не выгоднее 5ый/50ый, и еще больше не выгоден 6ой/60ый.


Общее правило, чем больше запись, тем выгоднее 10ый рейд, и тем не выгоднее 5ый/50ый

Производительность 5-го и 6-го рейда очень сильно зависит от контроллера и/или от рук.


1. Долго смотрел в графики, но так и не понял, в чём же я не прав с вышеприведенным утверждением. 2. Скорость нужно мерять не мегабайтами, а IOPSами. Так как 90% серверных приложений плевать хотели на МБ, а вот IOPSики это хорошо.

Рандомная запись в IOPS на RAID10 - % на 50 выше чем на RAID5/6. Производительность RAID5/6 на запись ниже производительности одного диска в общем случае (для записи - считывается блок со всех винтов, правятся данные, пересчитывается кс и заливается на 2 или 3 из винтов; для RAID10 - считывается блок с одного винта, правится и записывается на 2 из 4, следующая транзакция с 50% вероятностью заденет вторую пару винтов).

image

Для серверов, у которых нет аппаратных средств удаленного управления рекомендуется один из сетевых интерфейсов оставлять незадействованным в виртуальных сетях, исключительно для задач управления. Это сильно снизит риск ситуации, когда при чрезмерной утилизации или же из-за неправильных настроек сетевого интерфейса пропадает возможность удаленного управления сервером. Сделать это можно либо на этапе инсталляции роли Hyper-V, сняв галочку с одного из сетевых интерфейсов, либо же после инсталляции – удалив виртуальную сеть, привязанную к сетевому интерфейсу, который будет использоваться для управления.
Кроме этого, на уровне хоста прямо таки необходимо установить как можно более «свежие» драйверы для сетевых адаптеров. Это нужно для того, чтобы воспользоваться специальными функциями сетевых адаптеров – VLAN, Teaming, TCP Offloading, VMQ (при условии, что сами сетевые адаптеры это поддерживают – как правило, это специализированные серверные сетевые адаптеры).

Сетевые нагрузки
iSCSI

Если планируется использовать системы хранения данных с интерфейсом iSCSI – крайне рекомендуется выделить для работы iSCSI отдельный сетевой интерфейс, а то и два – для работы MPIO. Если LUN’ы будут монтироваться в хостовой ОС – то нужно просто оставить один или два интерфейса не привязанными к виртуальным сетям. Если же iSCSI-инициаторы будут работать внутри виртуальных машин – для них нужно создать одну или две отдельных виртуальных сети, которые будут использоваться исключительно для трафика iSCSI.

VLAN-тегирование

VLAN-тегирование (IEEE 802.1q) означает «маркировку» сетевых пакетов специальным маркером (тегом), благодаря которому пакет может быть ассоциирован с определенной виртуальной сетью (VLAN). При этом хосты, принадлежащие к разным VLAN, будут находиться в разных широковещательных доменах, хотя и подключаться физически к одному и тому же оборудованию. Виртуальные сетевые адаптеры в Hyper-V так же поддерживают тегирование VLAN. Для этого нужно зайти в свойства виртуального адаптера в настройках виртуальной машины и прописать там соответствующий VLAN ID.

Активное оборудование
Рекомендации для хостовой ОС
  • Меньший объем обновлений
  • Меньшая поверхность атаки для потенциальных злоумышленников
  • Меньшая нагрузка на процессор и память в родительской партиции
Запуск других приложений в хостовой ОС

Запуск в гостевой ОС сторонних (не имеющих отношения к Hyper-V) приложений, а так же установка других серверных ролей помимо Hyper-V может привести к сильному падению производительности, а так же к снижению стабильности. Дело в том, что из-за особенностей архитектуры Hyper-V, все взаимодействие виртуальных машин с устройствами проходит через родительскую партицию. Поэтому высокие нагрузки или «падение в синий экран» в родительской партиции обязательно приведут к падению производительности или просто к «падению» всех запущенных виртуальных машин. Сюда же можно (и нужно) отнести антивирусное ПО. Нужно ли оно вообще на хосте, который не будет заниматься ничем, кроме, собственно, виртуализации – это, конечно, тот еще вопрос. Тем не менее, если антивирус все же установлен – первое, что необходимо сделать – исключить из списка проверки все папки, где могут находиться файлы виртуальных машин. В противном случае, при сканировании может замедлиться производительность, а если в каком-нибудь VHD-файле обнаружится что-то похожее на вирус – то при попытке лечения антивирусный пакет может испортить сам VHD. Подобные случаи наблюдались и с базами MS Exchange, и потому первая рекомендация – не ставить вообще на серверах Exchange файловые антивирусы, а если и ставить – то добавить папки с базами в исключения.

Рекомендации для виртуальных машин

Шаги, которые необходимы предпринять для повышения производительности самих виртуальных машин – зависят от приложений, которые будут на них выполняться. У Microsoft имеются рекомендации (best practices) для каждого из приложений – Exchange, SQL Server, IIS, и других. Аналогичные рекомендации существуют для ПО других вендоров. Здесь я дам лишь общие рекомендации, не зависящие от конкретного ПО.
Здесь будет рассказано, почему нужно устанавливать Integration Services в гостевой ОС, как упростить развертывание новых виртуальных машин с помощью библиотеки VHD, и как поддерживать эти VHD в актуальном состоянии с выпуском новых патчей.

Я только что заказал новую установку для своего бизнеса. Мы делаем много программных разработок для Microsoft SharePoint и нуждаемся в установке для запуска нескольких виртуальных машин для разработки и тестирования. Мы будем использовать бесплатный VMware ESXi для виртуализации. Для начала мы планируем создавать и запускать следующие виртуальные машины - все с Windows Server 2008 R2 x64:

  • Сервер Active Directory
  • MS SQL Server 2008 R2
  • Автоматический сервер сборки
  • SharePoint 2010 Server для размещения нашего общедоступного веб-сайта и нашей внутренней интрасети для нескольких человек. Загрузка на этом сервере будет весьма незначительной.
  • Сервер разработки 2xSharePoint 2007
  • Сервер разработки 2xSharePoint 2010

Кроме того, нам нужно будет создать несколько ферм SharePoint для тестирования. Эти виртуальные машины будут запускаться только при необходимости. Спецификации новой установки:

  • Сервер стойки Dell R610
  • 2xIntel XEON E5620
  • Оперативная память 48 ГБ
  • 6x146GB диски SAS 10k
  • Контроллер RAID Dell H700

Мы полагаем, что новый сервер заставит наши виртуальные машины работать намного лучше, чем наша существующая установка (2xIntel XEON, 16 ГБ оперативной памяти, 2x500 ГБ SATA в RAID 1). Но мы не уверены в уровне RAID для новой установки.

Должны ли мы использовать диски SAS 6x146GB в конфигурации RAID 10 или конфигурации RAID 5? Кажется, что RAID 10 обеспечивает лучшую производительность записи и снижает риск сбоя RAID. Но это связано с меньшим объемом дискового пространства. Нужен ли нам RAID 10 или RAID 5 также будет хорошим выбором для нас?

3 ответа

На этом сайте есть много похожих вопросов /аргументов относительно R10 против R5 /R6, но они сводятся к «воздействию во время восстановления». Аргумент для R10 по сравнению с R5 является самым сильным, когда речь идет о более крупных и медленных дисках, которые покупают, потому что их GB /$ £ € лучше (т.е. 2 /3TB 7.2k SATA), так как массивы этих дисков могут занять буквально дни, чтобы перестроить после диска замена или добавление - это означает, что весь массив будет потерян, если второй диск не был выполнен во время этого окна перестройки.

Для многих на этом сайте этот риск слишком высок, включая меня. R6 немного меняет, но обычно приносит с собой гораздо более медленную производительность записи. Кроме того, любое из этого в программном обеспечении еще больше снижает производительность во время перестройки, поскольку все данные переходят по одной и той же шине, включая трафик «в жизни».

Вы уже неплохо подготовили свои компоненты, и вы наверняка увидите значительное улучшение производительности. Если бы я был вами, я бы не «упал на последнее препятствие» - я бы использовал R10, зная, что вы поступили правильно. Если вас беспокоит пространство, вы можете использовать диски Thin-Provisioned и /или купить диски объемом 600 ГБ на 10 тыс. Вместо 146-битных 15-килобайтовых дисков, падение производительности будет не слишком плохим, но у вас будет намного больше места - вы всегда можете купить 4 x 600 сегодня и добавить еще 2 позже, если вам нужны дополнительные шпиндели?

Если это критически важная система, то вам нужно убедиться, что у вас есть запасные диски на локальном компьютере, если один из них не сработает (если у вас нет контракта на поддержку оборудования, в котором говорится, что вы можете получить замену в тот же день, но даже тогда местный запас стоит иметь).

Игнорируя это (или если шесть дисков не учитывают запасные части, к которым у вас может быть легкий доступ), я бы предложил RAID10 (три RAID1, вложенные в RAID0) через RAID5, по причинам, о которых вы говорите. Или, если пространство вообще не проблема, а избыточность и время восстановления при отказе - большая проблема, вы можете даже рассмотреть два RAID-массива с тремя дисками, вложенных в RAID0 (но это слишком много для большинства целей, хотя это разрешить двум дискам на каждом ноге R1 одновременно сбой, сохраняя массив живым).

Существует еще один вариант: три отдельных массива RAID1 (или, возможно, два массива RAID10, если ваш контроллер поддерживает 3-дисковый RAID10 (RAID1E, как его называют некоторые контроллеры)). Таким образом, вы можете распространять виртуальные машины по разным шпинделям, чтобы они могли конкурировать друг с другом гораздо меньше за пропускную способность ввода-вывода. Две виртуальные машины на разных RAID1-массивах могут просто измельчать свои виртуальные диски, не сильно влияя на отзывчивость друг друга или виртуальную машину на третьем массиве. Конечно, это может оказаться бесполезным по площади: у вас может быть много свободного места на одном массиве, но вы не хотите его использовать, поскольку уже есть интенсивные виртуальные машины ввода-вывода, которые используются в этом массиве, например (хотя в этом случае, если у вас был единственный массив, VM, который вы поставили бы в это пространство, в любом случае будет конкурировать за доступ к IO, так или иначе), или вы можете получить 25Gb бесплатно для каждого массива, но для новой виртуальной машины необходимо 50Gb.

Этот метод может сделать разницу lot с дисками с вращающимся диском и мышью, если вы правильно балансируете виртуальные машины между дисками. Это все еще имеет значение и для SSD, но тем более, что у вас нет проблем с движением головы и ожидания для правильного сектора, чтобы вызвать дополнительную задержку с задержкой в ​​работе. Хотя, как я сказал выше, это может быть больше работы для управления. В описываемом вами примере использования вы можете поместить этот слегка загруженный сервер sharepoint и master-сборщик в один массив и виртуальные машины разработки на другой (возможно один массив, если у вас есть три массива и другие активные виртуальные машины). По мере изменения вы всегда можете перемещать виртуальные машины вокруг массивов, чтобы перебалансировать нагрузку с минимальным временем простоя (без простоя, если выбранное вами решение для виртуализации поддерживает живые миграции между локальными хранилищами данных).

Как уже было сказано здесь несколько раз - просто не используйте RAID 5! BAARF имеет некоторые сильные взгляды на эту тему!

У вас будет худшая производительность, чем RAID 10, ухудшенная производительность во время перестройки после сбоя диска, и если другой диск не будет работать в течение этого периода, вы восстановите его из резервных копий!

Какой RAID выбрать и вообще что это такое?

26 Февраля 2021

RAID (Redundant Array of Independent Disks, избыточный массив независимых дисков) - это технология хранения одних и тех же информационных блоков на нескольких HDD или SSD-дисках, объединяемых в общую логическую структуру.

Массивы RAID задействуются в серверах или системах хранения данных, чтобы сделать их более отказоустойчивыми и производительными, помогают расширять общее пространство памяти, стабилизировать дисковое пространство и защищать информацию при утрате работоспособности одним из носителей в структуре массива.

Типы RAID и степени их надежности

В массивах RAID задействуются диски, работающие в различных режимах и имеющие широкий функционал. Структура массива во многом определяет скорость и бесперебойность работы сервера и сохранность размещенных в нем данных, и в зависимости от этого RAID-массивы делятся на типы (или уровни):

  • RAID 0 (Stripe, или режим чередования). Массивы этого уровня используются для значительного повышения производительности работы дисковой подсистемы. Массив работает по схеме разбивки всех данных на блоки и записи каждого блока на индивидуальный носитель. Данный массив применяется на серверах, передающих значительные объемы информации на высокой скорости;
  • RAID 1 (Mirror, режим зеркалирования) - этот массив обладает высоким уровнем надежности, поскольку все данные в нем записываются на каждый логический диск, состоящий из пары физических. Если один из дисков выйдет из строя, другой сможет стать его заменой, дублируя его функционал. Данный рейд ускоряет чтение информации, потому что данные могут считываться с обоих дисков одновременно;
  • RAID 5. Эти массивы состоят из трех и более носителей (один из которых является диском четности), что дает RAID 5 возможность выделения значительных логических блоков под размещение информации, а также обеспечивает условия для параллельной записи. Производительность таких массивов наращивают, добавляя дополнительные диски;
  • в массивы RAID 6 встроены два диска данных и два диска контроля четности, что существенно повышает производительность этих рейдов и поддерживает их работоспособность после одновременного выхода из строя любых двух дисков. RAID 6 устанавливаются в серверах с повышенными требованиями к надежности;
  • RAID 10 (1+0) - микс RAID-массивов 1 и 0, который характеризуется высокими производительностью и отказоустойчивостью. В таких массивах содержится обязательно четное количество дисков (минимально - 4), что делает их самым надежным вариантом архивирования информации;
  • RAID 50 - микс RAID массивов 5 и 0, построенный по схеме создания RAID 5, но не из самостоятельных жестких дисков, а из массивов RAID 0. Это решение отличается хорошей отказоустойчивостью, высокой скоростью передачи данных и обработки запросов.

Также существуют Hybrid RAID, сочетающие в себе RAID-массивы обычных уровней и дополненные специальным ПО и SSD-дисками (в качестве кэша для чтения данных). Этот тип массивов устанавливается в основном в файловые серверы и виртуальные вычислительные машины.


На изображении отражена пирамида RAID-массивов, которая иллюстрирует их преимущества.

Что нужно для создания массива RAID

При создании структуры дисковых массивов RAID могут задействоваться и жесткие диски, и твердотельные накопители (но не одновременно). При этом рейды целесообразнее создавать из HDD, потому что массивы, «смонтированные» из SSD, имеют сложности в обновлении прошивки, затрудненное отслеживание работоспособности, а накопители в таких системах выходят из строя одновременно.

Объединение дисков в RAID-массив проводится при помощи контроллера, который может быть физическим устройством (адаптером) или утилитой ОС. В зависимости от разновидности контроллера массивы RAID делятся на:

  • аппаратные - формируются при установке отдельных контроллеров с индивидуальным процессором и кэшируемой памятью. Такие массивы выполняют все дисковые операции. Аппаратные RAID считаются наиболее производительными и надежными в эксплуатации массивами;
  • программные - данный вид RAID-массивов создается при помощи средств ОС, при этом всей работой с данными «занимается» центральный процессор. По своей стоимости RAID на основе утилит ОС дешевле аппаратных, но их производительность очень мала.

Также существуют интегрированные аппаратные Fake-RAID - микрочипы, «привязанные» к материнским платам. Эти микрочипы работают в «связке» с центральным процессором и выполняют некоторые элементы функционала аппаратного RAID-контроллера. Fake-RAID-массивы имеют удовлетворительно высокую скорость работы, но при этом очень ненадежны.

Самым применяемой технологией формирования RAID-массивов считается аппаратная, но она же является и наиболее затратной.

Методика расчетов необходимого количества дисков

При расчете количества дисков, требующихся для формирования RAID-массивов, следует учитывать:

  • технологию диска. Так, SATA поддерживают меньшие массивы, чем SAS /FC;
  • ограничения RAID-контроллера. Если контроллер действует по SCSI, и каждому из видимых дисков присваивается LUN, правилу 7/14 дается значение true, а при поддержке контроллера, основанного на FibreChannel, в массиве может работать свыше 120 видимых дисков;
  • процессор RAID-контроллера. CPU на RAID-контроллере станет ограничителем скорости записи данных независимо от типа контроля четности;
  • ширину шины. SCSI и FibreChannel имеют свои лимиты поддержки контроллера при размещении элементов RAID на разных каналах в повышении параллельности и производительности.

Для расчетов эффективности дискового пространства различных уровней RAID используются специальные калькуляторы, исходными данными в которых являются уровень массива, объем и параметры диска, количество дисков в RAID-группе.

Читайте также: