В первом посте про CloudLITE мы упомянули виртуальное хранилище VMware Virtual SAN (VSAN). Сегодня остановимся на этой технологии подробнее и расскажем, на что следует обратить внимание при создании VSAN для своего проекта.

image

Зачем вам VSAN


Традиционная архитектура включает три ключевых компонента:
• серверы,
• система хранения данных (СХД),
• сеть хранения данных, которая соединяет СХД с серверами через блочные (FC, FCoE, ISCSI) или файловые протоколы (NFS, SMB) с использованием соответствующих коммутаторов.

image

Для управления таким хозяйством необходимы три разных интерфейса, три разных компетенции и, по-хорошему, три разных специалиста.

Развертывание такой архитектуры занимает много времени, и быстрое масштабирование здесь тоже весьма нетривиальная задача.

Если ваш проект подразумевает прогнозируемое и планомерное масштабирование, на добавление нового хранилища есть неделя, а в штате есть специалисты, которые будут заниматься проектированием, то традиционная архитектура – ваш выбор.

Когда же у вас проект (например, public cloud) растет скачками, добавление нового хранилища при минимальных возможностях автоматизации займет уйму времени. Вот тут-то и приходит на помощь конвергентная архитектура VSAN, позволяющая объединить в сервере вычислительные функции и функции хранения.

image

VSAN как конвергентное решение


Конвергентное решение позволяет создавать инфраструктуру из типовых блоков, объединяющих в себе сразу несколько функций (например, вычисление, хранение). Управление такой инфраструктурой осуществляется через единый интерфейс, а масштабирование – через добавление очередного блока.

В случае с VSAN каждый блок — это сервер. Не любой, конечно, но об этом чуть позже. Каким образом сервер выполняет функции СХД? VSAN собирает из локальных дисков серверов виртуальное «внешнее» хранилище, доступное для всех вычислительных узлов кластера виртуализации. При этом программная часть VSAN работает на тех же серверах, что и вычислительные узлы. Таким образом, на одном и том же сервере располагаются и вычислитель (compute node), и часть системы хранения данных (storage node) – все в одном флаконе.

Как это работает


На каждом сервере есть от 1 до 5 дисковых групп. В каждой группе – минимум один SSD-диск (необходимое условие для построения VSAN ) и от 1 до 7 HDD-дисков.
SSD-диски в этих дисковых группах составляют общий пул кэширования данных. VSAN в первую очередь читает данные в кэше; если данных в кэше нет, VSAN отправляется к HDD-дискам.

Для каждой виртуальной машины можно настроить свой FTT (failures to tolerate). По умолчанию это 2, т. е. все данные виртуальных машин пишутся сразу на 2 разных сервера кластера. Если один из серверов выйдет из строя, у нас будет синхронная реплика на другом, и все операции I/O пойдут на эту вторую копию.

image

На что обратить внимание при проектировании VSAN


Относительная простота развертывания отнюдь не отменяет тщательного проектирования архитектуры VSAN. Вот несколько моментов, на которых нам хотелось бы остановиться подробнее:

1. Совместимость с аппаратным обеспечением. Хотя VSAN и дает определенную свободу в выборе «железа», имеет смысл оставаться в рамках списка гарантированно совместимого с VMware VSAN оборудования. Так вам не придется методом научного тыка подбирать совместимые контроллеры, адаптеры и пр. В случае с CloudLITE по совокупности технических и экономических характеристик мы выбрали Huawei FusionServer RH5885 V3. Эта модель имеет на борту более производительные PCIe флеш-карты (в сравнении с уже ставшими классическими SSD-дисками), которые, кстати, позволяют экономить «слоты для дисков» и создавать больше дисковых групп. В самое ближайшее время устроим ему unboxing. Следите за обновлениями :).

2. Сеть. В конфигурации с VSAN ВМ может работать в одном месте, а храниться – в другом. Это предъявляет достаточно высокие требования к сети: у вас должна быть как минимум 10 GB сеть.

3. Производительность дисковых контроллеров. Дисковый контроллер должен обеспечивать объемный буфер для большой очереди команд. Нагрузка на него будет значительная: контроллер будет отдавать данные, нужные не только этому серверу, но и всему кластеру. Например, при восстановлении выбывшей дисковой группы на новую группу нужно записать большой объем данных за короткое время. Скорость записи как раз и будет зависеть от производительности контроллера.

4. Объем дисков. В данной ситуации больше не означает лучше. Скорее наоборот. Хотя сейчас доступны диски по 4, 6 ТБ, VSAN лучше строить из дисков объемом 1 ТБ. Давайте представим аварийную ситуацию, когда в кэш у нас ничего не попадает (замена «полетевшей» дисковой группы, бэкап или восстанавление бэкапа): 6 ТБ диски будут восстанавливаться в 6 раз дольше, чем 1 ТБ диски (если отталкиватьcя от отношения скорости чтения к объему хранимых данных – IOPS/GB). Тут мы, конечно, говорим о worst case, но эти ситуации не из области фантастики. И чтобы желание использовать в VSAN объемные диски совсем отпало, просто представьте, сколько будут восстанавливаться данные на 7 жестких дисках по 6 ТБ.

5. Соотношение объема SSD к объему жесткого диска. Оно будет напрямую влиять на итоговую производительность дисковой группы: чем больше емкость SSD (чем больше данных будет в кэше), тем выше производительность. В CloudLITE для кэширования используются PCIe флеш-карты — они обладают меньшими задержками по сравнению с SSD. Кстати, в VSAN версии 6.0 поддерживаются дисковые группы, состоящие только из SSD.

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

9 месяцев — полет нормальный


VSAN позволил нам получить высокую производительность, сопоставимую с mid-range СХД.
За все время эксплуатации VSAN (с сентября 2014 года) показал очень высокий уровень доступности, в том числе и в составе enterprise-решений.
С марта система работает в кластере виртуализации интернет-магазина CloudLITE.ru.

Кстати, заходите на бесплатный тест-драйв :)

Комментарии (11)


  1. EminH
    18.05.2015 16:36

    Про цены ничего не написано. Судя по модели лицензирования, на 4 хоста vsan обойдется в районе 50 тыс. долл.
    На данный момент если нужен объем не больше 10 терабайт, тот же StoreVirtual (Lefthand P4xxx) обойдется гораздо дешевле.


    1. dataline Автор
      18.05.2015 16:53

      Да, если рассматривать случаи с объемом не более 10 ТБ, то дешевле, но с нашей конфигурацией объем начинается от 80Тб :). Кроме того, использование StoreVirtual потребовало бы дополнительных телодвижений для интеграции, а так получается, что везде VMware. По поводу лицензирования — для сервис-провайдеров применяется немного другая модель.


      1. magzimko
        19.05.2015 09:46

        Развернуть образ виртуальной машины да в консоль VMware плагин поставить — очень много телодвижений )


    1. omnimod
      18.05.2015 17:14

      VSAN лицензируется по кол-ву сокетов серверов виртуализации, а не по объему. Для 4 двухпроцессорных хостов с базовой поддержкой на год будет что-то около 27000$ долларов в ценах GPL (за All Flash конфигурацию еще просят немного сверху).


      1. dataline Автор
        18.05.2015 18:06

        возможно, но для сервис-провайдеров стоимость формируется из расчета объема (с учетом поинтов).


      1. EminH
        18.05.2015 18:39

        27000$ нормально, но к этой сумме надо добавить стоимость самих дисков. Для серверов HP G6 1.2TB 6G SAS стоит около 800$, для 3.6 Tb с Raid5 на каждом хосте нужно 4 диска, в итоге цена за диски $12800 (4*4*800), то есть ваш SAN для 3.6Tb обойдется под 40К.
        Для сравнения HP StoreVirtual — 4330 3.6 TB стоит около 13500, бандл из 2х систем будет стоить те же $27000


  1. omnimod
    18.05.2015 17:01
    +1

    В статье есть небольшие неточности.

    В Hybrid конфигурации SSD + HDD, в каждой дисковой группе может быть только один SSD накопитель.

    По умолчанию, Fault to tolerate = 1 как раз означает, что VSAN хранит две копии каждого объекта на разных серверах. FTT = 2, соответственно, означает, что хранятся 3 копии.

    Как ни странно, но оборудование Huawei отсутствует в списке совместимости. Однако в нем есть контроллеры LSI, диски Seagate, SSD накопители Intel, которые Huawei поставляет под своими P/N. Как к этому относится VMware, и считает ли она оборудование Huawei поддерживаемым — не в курсе.

    Минимальные требования к сети для VSAN — 1 Гбит/с, но 10 Гбит/с являются настоятельно рекомендуемыми, поскольку при ребилде объектов VSAN легко упирается в 1 Гбит/с.


    1. dataline Автор
      18.05.2015 18:23
      +1

      1. Под минимумом имелось в виду конфигурация 1 SSD +HDD. Да, неточно выразился. Спасибо.
      2. Тут на самом деле не хотел путать и упоминать про резервирование n+1, но, похоже, перестарался :). Да, дефолтное значение — FTT=1 и означает 2 копии. Раз уже зашел разговор, максимальное значение для FTT=3.
      3. Попробуйте еще раз). Если все-таки не получится, то у VMware есть еще вот такой списочек совместимого оборудования, где значится Huawei.
      4. Да, поэтому и рекомендую 10 Гбит/с )


  1. dklm
    18.05.2015 19:25

    Если от физических серверов я отказался легко и быстро, перейти на виртуальные(софтварные) СХД не получается, =) не доверяю.

    Про пункт 4:

    — 1тб восстановится быстрее чем 6тб, не поспоришь =).

    — Не понял пример в котором в кеш не попали данные, как данные могут могут не попасть в кеш?
    Данные хранятся как минимум на 2х нодах, «синхронная реплика» подразумевает что хост получит от СХД подтверждение записи только после того когда все ноды получат и запишут данные в кеш.


    1. dataline Автор
      19.05.2015 11:36

      Да, в случае записи именно так. Я же говорил про кэш чтения. При запросе на чтение данные могут оказаться в кэше, а могут там и не оказаться — их вытеснили (этот кейс и озвучен в качестве worst case). Например, у соседа на ВМ работает крайне загруженная БД. Или мы читаем длинный последовательный файл, который заведомо больше размера кэша.

      Если не секрет, что именно смущает в виртуальных СХД?)