Сам себе AWS. Часть 0

    Доброго времени суток, %username%!

    Сегодня я расскажу тебе, как при помощи напильника, кучки серверов и такой-то матери собрать что-то смутно похожее на EC2 от Amazon.
    Статья получилась больше обзорная, так что придётся разбить её на несколько частей.

    image
    Я тебя слепила из того что было.

    Это — демостенд, 6 х i5-3570T/8Gb RAM/рассыпуха всяких дисков.

    Как-то встала у меня задача упорядочить все офисные сервисы, хаотично разбросанные по зоопарку серверов и операционок (у меня тут даже OpenBSD где-то бегает). И так вышло, что я давно хотел посмотреть на облака, а реального тесткейса не было. Так я и решил изучить, что нынче есть интересного в мире open-source и можно ли это применить в боевых условиях.

    На текущий момент я посмотрел такие решения как MaaS + Juju имени Cannonical, RDO имени RedHat, Foreman с плагином и Fuel.

    Забегая немного вперёд — Fuel для меня оказался самым адекватным, но пройдёмся по порядку.

    MaaS

    image
    Простой и аскетичный дизайн

    MaaS представляет собою концепцию Metal as a Service, по сути — занимается менеджментом «голого» железа. Вы можете выбрать какую версию убунты установить на тот или иной сервер, узнать его ТТХ и по сути всё. Сервера можно разделять по регионам доступности. Так же умеет работать с виртуалками через libvirtd. Интересное начинается когда вы прикручиваете ко всему этому Juju — теперь вы можете сказать «установи мне бложек» и оно выберет из списка доступного метала железку и накатит туда весь необходимый софт, как то mysql, apache, wordpress/drupal/etc. Мило, удобно, но когда я попытался подобным образом развернуть OpenStack, всё встало колом. Возможно я делал что-то не так, возможно что-то не так делали создатели конфигов для juju. Но в итоге мне не удалось нормально развернуть контроллер на одном сервере. Под каждый компонент контроллера оно хотело отдельную железку. Т.е. нужен вам keystone?, не вопрос — вот отдельный сервер под keystone. И так со всем. Ко всему этому добавилась моя нелюбовь к ubuntu как серверной ОС, так что решение пришлось отложить.

    RDO

    Этот проект мне понравился гораздо больше. Его преимущество было в одной команде: packstack --allinone. Вот так легко и незатейливо вы получаете рабочий OpenStack на одном сервере. Тут вам и контроллер и рабочая нода. Хотите кастомизации? не вопрос — редактируете полученный после первого запуска answer-file и запускаете packstack снова, указывая в качестве конфига этот файл. Легко, приятно, удобно. Смущало только одно — очень мало документации. Приходилось убивать кучу времени на решение странных ошибок, например потому, что забыл прикрутить нужный репозиторий. Местами даже приходилось править документацию на их сайте, чтобы она соответствовала текущей действительности, поскольку много вещей было написано для OpenStack Havana, а с тех пор много чего поменялось.
    Возможно сейчас, зная гораздо больше про OpenStack и его внутреннюю работу, я бы дал второй шанс для RDO. Но новичку построить что-то отличное от стандартной конфигурации предлагаемой скриптом будет сложно. Кроме того, система предполагает что у вас уже подготовлены сервера и на них установлена Centos/RedHat minimal. Так что никаких PXE и прочих прелестей.

    Foreman

    image
    Тысячи графиков, начальство будет счастливо

    Сам по себе The Foreman это вебинтерфейс для управления puppet'овыми конфигами и в этой роли он вполне удобен и интересен. Но помимо этого он умеет и provisioning. Так что, как и с MaaS, вы можете сказать серверу грузиться по сети, а дальше управлять установкой через удобную вебморду. Имея такое удобное решение сложно было не прийти к идее разворачивания клауда на его основе. И всякие народные умельцы начали это потихоньку реализовывать. На текущий момент в nightly build'ах есть плагин foreman-installer-staypuft. С его помощью вы устанавливаете как сам Foreman, так и необходимые плагины. Удобство этой конструкции в том, что буквально из одной точки вы можете установить ОС (причём как Linux-based, так и Windows), после чего раздать нужные роли и установить необходимый набор софта. Или развернуть клауд, и опять же из вебморды foreman'а назначить роли для инстансов в этом клауде. Есть только одно существенное НО — ночные сборки достаточно нестабильны.
    Возможно со временем это решение доделают и оно будет вполне production-ready, но на текущий момент можно только баловаться и отправлять багрепорты разработчикам. Благо они активно читают гугло-группу.

    Fuel

    image
    У них похоже есть дизайнер

    На текущий момент самое совершенное решение по разворачиванию клауда от достаточно именитой компании Mirantis. По сути — это заточенный исключительно на разворачивания клауда софт. Как и rdo/foreman — делает он это с помощью puppet'овых скриптов. Установка controller + 3 compute node занимает около 30 минут, зависит от скорости ваших винтов. Можно создавать как High availability, так и non-HA кластер. Умеет из коробки работать с Ceph, в версии 5.1 так же добавили драйвера для Mellanox'овых сетевух, что в комбинации LVM+Infiniband позволяет использовать RDMA (пока не проверял в действии, жду когда приедет свитч и сетевухи). Огромным плюсом является наличие большого количества документации.

    В следующий раз я расскажу вам что же собственно у меня вышло сделать при помощи Fuel, немного про особенности ceph, как использовать несколько гипервизоров в одном клауде и как упростить себе жизнь автоматизировав всё и вся. А если ко мне таки доедет InfiniBand, то, возможно, и про особенности его работы с ceph и openstack.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 17

      +3
      Я правильно понимаю что ни все доступны бесплатно?
        0
        именно!
          0
          Это ж OpenStack все.
            +2
            Да, все они доступны бесплатно и все они разворачивают одну вещь — www.openstack.org/
            В принципе вы и сами можете его развернуть, но тут всё автоматизировано.
            0
            C CoreOS пробовали разбираться, как оно там?
              0
              Не пробовал. Я изначально нацелился на OpenStack и копал в его сторону. Насколько я понимаю, CoreOS заточен под lxc контейнеры и docker. Мне же надо иметь возможность запускать как линуксы так и винду.
              0
              Я правильно понял, что OpenStack — это платформа для создания систем для распределенных вычислений? Просмотрел статью в Вики, но всё равно не совсем понятно, что именно оно делает.
                +1
                А AWS пробовали? Это тоже самое, только на вашем железе.
                  0
                  Нет, не доводилось. Думаю, если бы пробовал, то вопроса бы не возникло. Намёк понял, почитаю об AWS, спасибо :)
                  0
                  Набор сервисов позволяющий на своем железе создать облачную инфраструктуру.
                  0
                  А что за платы на картинке и БП, домой думал такое собрать?
                    0
                    Мать — Intel DH67. А БП — meanwell
                    0
                    Так для себя четкой формулы не могу вывести что выгоднее — AWS (RackSpace, Softlayer, etc) или Private Cloud на своем железе (OpenStack, VmWare, etc)?

                    Пока что так рассуждаю:
                    — При малых операционных объемах и низкой требуемой мощности — AWS (позволяет уменьшать расходы на ресурсы до нуля)
                    — При средних операционных объемах и высокой требуемой мощности — Свое железо (позволяет максимально эффективно использовать вложенные средства, при известной траектории роста. Минимальная изменчивость инфраструктуры позволяет экономить на поддержке)
                    — При очень высоких операционных объемах и высокой требуемой мощности (также использование SAAS решений от Amazon) — опять AWS (позволяет контролировать расходы на обслуживание инфраструктуры а также позволяет быть максимально гибким в создании новых инфраструктур за минимальное время).

                    Кто как считает, было бы интересно послушать мнение Хабра?
                      0
                      Если нагрузки нет совсем, то лучше использовать PAAS, что-то вроде Heroku, это вообще снимает всю боль по администрированию чего-либо, git push и поехали.
                      При малых/средних объемах обычное железо рулит, оно будет шустрее, на нем можно спокойно развернуть виртуализацию.
                      AWS же, при использовании влоб — сильно дорогой. На десятке-другом c1.xlarge инстансов цена легко прыгает до нескольких тысяч в месяц.
                      Но хорошая новость, что нагрузка, как правило не бывает пиковой все время, она часто варьируется по времени. Если настроить Auto-scaling и использовать Spot Instances, можно ощутимо экономить, при этом всегда имея запас по прочности. С обычным железом такого не получится — купил и сиди с ним, даже, если нагрузка 5%.
                      Однако, если нагрузка существенная все время, то AWS объективно проигрывает по цене, но ситуация, благодаря высокой конкуренции, все время улучшается.
                      0
                      Давайте называть вещи своими именами OpenStack не AWS. Если надо поднять AWS на своем железе, то пока есть только один вариант — Eucalyptus.
                        0
                        а как же tripleO и spinalstack?
                          0
                          а как у Fuel с пробрасыванием gpu ресурсов в контейнеры?

                          Only users with full accounts can post comments. Log in, please.