Проснулся я однажды пораньше и подумал: а чего бы не построить дата-центр? Свой собственный, на Intel NUC — мини-ПК, на которых крутится половина нашего центра технологий Intel.

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

На третий день смех внезапно прекратился, и многие начали чесать голову. Потому что получился мобильный ЦОД для демонстраций и обучения, который можно принести к заказчику в чемодане. Или установить на танк.



Эпопея строителя дата-центра — ниже.

Задача


В общем, нам часто нужны целые дата-центры для обучения инженеров серверного ядра и прогонов нового софта. Серверное время стоит очень дорого, и поэтому обычно приходится учиться на кошках. В очередной раз заказывая окно, мы вдруг поняли, что прямо под ногами (буквально) у нас лежит куча Intel NUC. Их нам дал Интел для центра решений, который мы открыли в начале года. И они как раз подходили. Обычные консьюмерские компьютеры довольно плохо ведут себя под постоянной нагрузкой, требуют сложного охлаждения и т. п. У нюков внутри i7, они рассчитаны на 90-процентную загрузку в течение всего времени работы (месяцы и годы), есть очень даже продуманный теплоотвод. Я вспомнил, как Apple хотела сделать дата-центровые стойки, пихая четыре мак-мини в один rack unit, и решил: а почему нет-то?

Всё, что мне надо для объединения машин в ЦОД, — это свитч и хороший оркестрирующий софт. А партнерские лицензии VMware для демонстрации есть всегда. И я взялся строить из них SDDC — программно-определяемый дата-центр, где вся мощность и все виртуальные машины могут быть как полезной нагрузкой, так и частями инфраструктуры.

Вот как он выглядит в эталонной архитектуре VMware:



Конечно, не обошлось без эксцессов: в определенный момент мой ЦОД развалила уборщица. Пришлось отстраиваться заново.

1. Гипервизоры


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

Взяли коммутатор 10-портовый гигабитный, 5 нюков. И с ноутбука подключались к коммутатору и машинам.

Подключились, начали ставить. Сам ESXi поставился легко. Но вот только VMware не предполагали, что он может быть установлен на такое адское железо, поэтому сетевая карта нюка выпала из поддерживаемого железа (если вообще там когда-то была). А в нашем дата-центре это критично. Потому что наши компьютеры — это прилепка к сетевухе, а не наоборот.

Мы нашли нужный драйвер в старой версии дистрибутива, добавили в новый 6.5 Update 1. Установили еще раз — сеть появилась. По той же причине отсутствия драйвера так и не смогли запустить SD-ридер. Пришлось использовать внешние флешки для загрузки.

2. Управление


Базовая настройка закончилась. Развернули vCenter. Это управляющий софт, он обеспечивает объединение наших нюков в высокодоступный, динамически балансируемый кластер и позволяет управлять ресурсами. Поставили на одну из коробок, и пришла пора разворачивать гиперконвергентную инфраструктуру во всей красе.

3. Программно-определяемая система хранения данных (SDS)


На этой стадии у нас есть виртуальные машины на серверах виртуализации, но нет единой системы хранения. Надо объединить диски серверов или подключить внешние полки, плюс добиться того, чтобы при отключении любого из серверов данные не терялись. То есть развернуть программно-определяемую систему хранения данных. Потому что отдельная стойка с флеш-фабрикой за 20–50 миллионов явно в ящик стола не лезла.

Программно-определяемая система хранения данных в стеке VMware — это vSAN. Настроился он гладко в духе «next-next-next-done», даже правильно определил NVMe-диски под кэш (да, представьте себе, у нас были и они). Но тут возникли проблемы с конфигурацией коммутатора.

Мы сразу знали, что будем зажаты в один гигабит на свитче, а vSAN в рекомендуемой конфигурации их надо 10, а лучше 2 по 10 — он хочет очень быстро меняться данными внутри шины. vSAN нужен Jumbo Frame — большой MTU в 9000 байт, ведь чем крупнее фрейм передачи, тем меньше накладных расходов и он быстрее работает. Поначалу наш скромный 10-портовый гигабитный коммутатор упорно не хотел применять настройки MTU. Несколько чашек кофе спустя он таки покорился и даже приятно удивил производительностью — vSAN работал достаточно быстро, несмотря на один гигабитный интерфейс в бэкенде.

Далее vSAN надо минимум два диска на узле. На нюке как раз два. Конфигурация: USB-флешка для загрузки гипервизора, один SSD по SATA 3.0 (Intel SSD DC S3520 объемом 480 ГБ), второй М.2 — Intel SSD Pro 6000p объемом 128 ГБ, который стал кэшем в vSAN. Собрался легко.

Если до этого заглядывающие коллеги сердечно желали успеха и уходили со смешком, то теперь многим стало интересно. Приходили раз за разом, спрашивали про состояние пациента.
Передо мной лежал следующий уровень — SDN, то есть программно-определяемая сеть. Это когда те же серверы виртуализации (в нашем случае нюки) становятся компонентами сетевой инфраструктуры.

Где-то в этом районе мой ЦОД развалила уборщица: просто рубанула питание всего пучка и положила нюки на их место в центре решений Intel. Я очень беспокоился, поскольку решения SDS совсем не любят отключения всех узлов, да еще и с нагрузкой, но после включения все завелось нормально. Забегая вперед, скажу, что в самом конце еще раз так отметился уже коллега, которому нужна была розетка. Тоже все поднялось окей, уже с полным набором софта.

4. Программно-определяемая сеть (SDN)


Стал разворачивать NSX от VMware. Тут пошло проще, но не просто. Ещё немного поразбирали пакеты — были проблемы с проксированием в нашей сети (которая использовалась для доступа к нюкам).

Внезапно именно нюки идеально подходят как фаерволлы, маршрутизаторы и балансировщики. Раньше в офисах старые Пентиумы-2 для этого использовали — вторая жизнь старой машины.

5. Мониторинг и отчеты


Теперь нужен мониторинг. А то что за ЦОД без мониторинга, правильно? Стали ставить vRealize Operations. Он тоже предназначен, хмм, для других задач и для другого железа, поэтому в базовой конфигурации сожрал себе половину ресурсов моего дата-центра. Убавили (это не рекомендуется в нормальных ситуациях). В итоге он собирает данные о том, насколько эффективно используется наш ЦОД, где и каким виртуалкам выдано больше ресурсов, чем необходимо (никаким), где что происходит. Он смотрит нагрузку на хостах, делает инвентаризацию и дает советы, где что поменять. Он же через сим-провайдер получает информацию от железа: вентиляторы, температура, состояние дисков, задержки записи и так далее. Перед выходом из строя оборудования умеет в фоновом режиме мигрировать сервисы и данные с умирающего сервера — эта штука называется Proactive HA. Справедливости ради последнее настроить не удалось — не тот уровень железа, это вам не сервера Dell или HP.

Надо сказать, что я начал оставлять ЦОД под нагрузкой на ночь. Нюки грелись, и поначалу меня это пугало — по несколько раз в день заходил, чтобы их потрогать. Дома меня бы точно такой обогреватель беспокоил. Но коллеги из Интела сказали, что все пучком (хе-хе!), и я продолжил опыты.



6. Анализ логов


Следующее звено — система анализа логов и всякой «умной аналитики» — vRealize Log Insight. Здесь добавить особенно нечего, продукт развернулся и сразу заработал, нужно было лишь в качестве syslog сервера для всех компонентов нашего программного ЦОДа.



7. Портал самообслуживания с гуем


Следующий этап — vRealize Automation. Про него надо сказать только то, что он опять захавал кучу ресурсов. Развернулся штатно, но нагрузил ЦОД из пяти нюков на 90%. Тоже порезали немного и развернули базовый портал на нем.

Все!


Итого — получилось. Это теперь обучающий стенд, источник непрекращающихся анекдотов («А где ЦОД? А в кармане!», «А чего бекап не поставил? А он 100% ресурсов ест!», «Когда грид считать будем?») и демо-юнит. С полустойкой к заказчику не поедешь, а с этим — запросто.

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



Бекап в конце я все же поставил нормально, кстати.

Для чего такое интересно? Ну, на практике на том же наборе софта (с парой замен на более дешевые лицензии) и другом железе можно уместить в полустойку приватный ЦОД. Это надо компаниям на 100 человек типа инвестфондов, которые не хотят делиться своими данными наружу, и это часто решается дорогими ПАКами. Либо стойкой прямо в офисе с шумоизоляторами, в которую напиханы сервера, коммутаторы и упс.

Ах да! А еще я заработал отличную ачивку «строитель ЦОДа». И выиграл пиво.

Для исследователей


Если кто-то захочет повторить наш опыт, ниже привожу конфигурацию нашего стенда, которая апробирована и точно работает.

5 штук мини-ПК Intel NUC Kit NUC7i7BNH, в каждый установлены следующие комплектующие:
  • 2 модуля оперативной памяти Kingston HyperX Impact 16GB 2133MHz DDR4 CL13 SODIMM
  • M.2 SSD 128 ГБ Intel SSD Pro 6000p Series под кэш
  • SATA 3.0 SSD 480 ГБ Intel SSD DC S3520 Series под хранение
  • USB-накопитель 32 ГБ SanDisk Ultra Fit для установки гипервизора

Ссылки


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


  1. KorP
    21.11.2017 11:02

    Прикольно, люблю я подобную работу :) А чего не на Xeon-D на 8 ядер? Конечно чуть дороже будет… А от UPS сколько живёт? :)
    Вообще классно, мне такого домой очень не хватает :)))


    1. SSkryl Автор
      21.11.2017 12:33

      Мы радостью использовали бы Xeon D, но в NUC он, к сожалению, пока не устанавливается. И при текущей нагрузке процессора более, чем достаточно, утилизация редко превышает 50%, но большое количество ядер не помещало бы. До UPS руки пока не дошли.


      1. KorP
        21.11.2017 12:38

        До UPS руки пока не дошли.

        Приватный ЦОД в поле — то же хорошо :)


        1. SSkryl Автор
          21.11.2017 13:15

          Ага, особенно если он может питаться от небольшой солнечной батареи


    1. navion
      21.11.2017 15:09

      Xeon-D вообще не вариант, система на них стоит почти как нормальный Twin.
      Хотя и NUC нельзя назвать идеальным выбором при наличии OptiPlex x050 и ThinkCentre Mx10 в схожем форм-факторе, но дешевле и лучше.


      1. KorP
        21.11.2017 15:10

        За то — экономичный :)


      1. Am0ralist
        21.11.2017 19:10

        Хотя и NUC нельзя назвать идеальным выбором при наличии OptiPlex x050 и ThinkCentre Mx10 в схожем форм-факторе, но дешевле и лучше.
        При выборе чуть дешевле, но с одним годом гарантии или нюк с тремя — я предпочту на работу выбрать нюк


  1. daggert
    21.11.2017 11:29

    А блоки питания вы стандартные оставили у нюков?


    1. SSkryl Автор
      21.11.2017 12:34

      Да, блоки питания стандартные. При этом в штатном режиме работы стенда (все 5 NUC: загрузка ЦП ~50%, памяти 80-90%) греются они очень умеренно. 4 месяца, полет нормальный.


      1. barbalion
        21.11.2017 14:47

        А чем они реально занимаются?
        Или эти 50% просто накладные расходы?


      1. daggert
        21.11.2017 15:03

        Ежели будете менять потом блоки питания на определенное решение или далее заниматься этой темой — я просто требую от вас статью (: Очень интересное решение.


  1. BearUA
    21.11.2017 11:41

    Интересно было бы глянуть что на таком железе можно сделать с Proxmox. И будет ли оно легче/тяжелее того что у автора получилось.


    1. SSkryl Автор
      21.11.2017 13:16

      Согласен и, думаю, что Proxmox заведется без проблем. Кстати, в планах сделать гетерогенный SDDS — добавить еще 2-3 NUC, развернуть на них KVM+oVirt+CEPH, заменить NSX-V на NSX-T для единообразного управления SDN-сетями на обоих платформах.


      1. BearUA
        21.11.2017 13:38

        Если таки попробуете, будет интересно глянуть. А то там ниже люди спрашивают про стоимость лицензий — у проксмоса с этим получше. Можно и совсем бесплатно пользовать.


  1. V-core
    21.11.2017 11:46

    Посчитайте пожалуйста стоимость лицензий на всё заявленное удовольствие


    1. VGusev2007
      21.11.2017 11:59

      Присоединяюсь к вопросу. Обычно стоимость лицензий равна стоимости железа. А тут?


      1. navion
        21.11.2017 17:37

        Это где такая халява?
        Один vCloud Suite стоит 10 килобаксов на процессор, плюс VSAN с NSX за столько же, плюс VBR, плюс Windows Server или RHEL.


    1. SSkryl Автор
      21.11.2017 13:16

      В реальных проектах под каждый случай мы считаем цены отдельно, а это по сути RnD, в реальной жизни такую штуку бы никто не собирал. Но если посмотреть на цены на сайте VMware — www.vmware.com/ru/products/vsphere.html, они считаются по физическим процессорам, стоимость лицензий превышает стоимость NUX в разы.


      1. alxspb
        21.11.2017 21:15

        Есть ещё бесплатный ESXi, вполне ок для нескольких серверов


        1. Chugumoto
          22.11.2017 15:28

          а всё остальное?


  1. Taciturn
    21.11.2017 12:29

    И как дела с температурой, если действительно поставить их в ящик стола?


    1. SSkryl Автор
      21.11.2017 13:16

      У нас в центре решений Intel два NUC, используемых для digital signage замурованы «в пристенке» за пластиковой фальшпанелью, вообще без вентиляции. Корпуса теплые, но не слишком. Что будет при 100% утилизации, не знаю, но при средних нагрузках теплообмена хватает. Скорее всего, летом в ящике хорошего дубового стола им всё же будет нехорошо.


  1. stychos
    21.11.2017 13:00

    Ещё на них хакинтош отлично залазит:
    image


    1. qpPeW
      22.11.2017 08:23

      На базе проца i5?


      1. stychos
        22.11.2017 15:24

        У меня да, старенький уже, на  i5-4500U. Как только увидел их в продаже, всю плешь проел начальству, чтобы менять десятилетний «парк» техники на них. Удалось добиться замены только двух, но теперь вот трудятся рабочим «кластером» на докерах. Ну и конкретно на своём я ещё и хакинтош залепил.


  1. MockBeard
    21.11.2017 14:50

    вот времена пошли, раньше уборщицы роняли сеть в офисе, теперь могут и цод поломать, прогресс ))


  1. Transfocatorq
    21.11.2017 14:50

    Даёшь кластер на Raspberry/Orange Pi! Интересно, будет ли у такого ДЦ преимущество перед x86-64?


    1. c0va23
      22.11.2017 12:11

      Дома имею «кластер» из трёх вторых RPi. На них стоит Hypriot OS. Все три машинки собраны в Docker Swarm. Использую для своих Pet проектов. И что бы играться с разными микросервисными штуками.

      Но есть с этим хозяйством несколько проблем:

      1. Не всё умеет собираться под arm
      2. Некоторые приложения умею запускаться только под 64-битами. Например, некоторые базы, в моём случаи это MongoDB
      3. Мало памяти. На 1Gb не всё запускается/собирается


      1. Chugumoto
        22.11.2017 15:32

        3. а zram не пробовали? для некоторых задач хорошо помогает…


    1. SSkryl Автор
      22.11.2017 12:14

      Идея отличная! Думаю, сейчас еще рано говорить о полноценном программно-определяемом ЦОД на Raspberry/Orange Pi, но для таких задач, как исполнение множества экземпляров приложения на множестве устройств в SDN-сети, уже, наверное, годится. Например, веб-приложения. Единственное — нужно посчитать, будет ли экономически оправдано.


      1. stychos
        22.11.2017 15:29

        Если ненагруженные, то будет. Более того, некоторые «облачные» провайдеры уже предоставляют vps-инстансы с arm-ядрами — думаю, они как-то осилили полноценный программно-определяемый ЦОД для этого, может даже на таких вот приблизительно машинках.


  1. Arxitektor
    21.11.2017 18:58

    А есть варианты таких дешевых и компактных пк с 2-4 сетевухами?
    для нормального построения сети?



    1. SSkryl Автор
      22.11.2017 12:12

      Если рассматривать вариант с 2-4 сетевыми портами, то без дополнительного PCI-E сетевого адаптера уже не обойтись. Соответсвенно, нужен PCI-E разъем на материнской плате и слот в корпусе. А это уже другой форм-фактор: микро-сервер, мини-tower и т.д.


    1. stychos
      22.11.2017 15:33

      Может, на роутерах собрать?


    1. avorsa
      22.11.2017 22:38

      Есть какие-то варианты Depo Neos Compact с двумя сетевыми 1Gbit портами.


  1. amarao
    21.11.2017 19:23

    А почему вы используете глупый esxi вместо умного kvm'а, который поддерживает nested hardware virtualization? Идеально же для лабораторий.


    1. SSkryl Автор
      22.11.2017 12:12

      Мы изначально хотели построить SDDC на стеке продуктов VMware. Сейчас планируем добавить KVM+oVirt+CEPH+NSX-T и сделать наш SDDC гетерогенным. На ESXi nested виртуализация тоже работает.


  1. vsapronov
    21.11.2017 21:54

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

    Потому что получился мобильный ЦОД для демонстраций и обучения, который можно принести к заказчику в чемодане. Или установить на танк.

    И когда меня спрашивают, на счет таких «танков», я говорю обычно: «русские, такие русские».

    Зачет!


    1. Chugumoto
      22.11.2017 15:36

      ну наверное это имелось ввиду про «неплохую виброзащиту нюков» :)


    1. navion
      22.11.2017 17:25

      На танк поставят скорее такой:


  1. Schalker
    22.11.2017 08:22

    Отлично. Завтра покажу колегам. Переведу на FB основные моменты « карманного кластера»


  1. swiing
    22.11.2017 13:59

    И как работает vSAN на гигобитной сети?
    Кстати если нужны ESXi драйвера для desktop железа есть вот эти ребята vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages у них много community драйверов для сетевух и SATA адаптеров.


    1. SSkryl Автор
      22.11.2017 14:00

      В рамках нашего небольшого кластера vSAN на 1 GbE сети производительность вполне приемлемая. Единственное, при развертывании больших OVA упираемся в физическую пропускную способность сети.


    1. stychos
      22.11.2017 15:45

      Года четыре назад бы эту ссылочку )