Openstack для домашнего облачного хостинга

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

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

Итак, у меня есть 2 собранных ПК (2-го поколения i5-процессор, 4 ГБ RAM каждый, каждый 80-Гбайт HDD), на котором я планирую учиться. Я хотел бы воссоздать среду хостинга, в которой я хотел бы иметь возможность размещать веб-сайты, делать резервные копии, включать балансировку нагрузки (при необходимости). Я думал по очереди Openstack . Хост-OS, который я думал использовать, – CentOS или Fedora.

Мои вопросы:

  1. Лучше ли устанавливать Openstack поверх одной из вышеупомянутых ОС или сначала иметь виртуализацию среды с ESxi / Xen, а затем установить Openstack? (Я собираюсь использовать все эти технологии в первый раз)

  2. Скажем, есть веб-сайт с db MySQL в виртуальной среде, возможно ли иметь одну виртуальную машину в качестве интерфейса и другую виртуальную машину в качестве сервера БД? Это влияет на производительность в любом случае?

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

Есть список списков, которые я нашел относительно создания вашей собственной среды, но на сегодняшний день я нашел это самым интересным.

Это большая тема, но я постараюсь ее сократить.

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

  1. Вы будете устанавливать Cloud Controller и хотя бы один вычислительный узел. Узлы вычислений должны быть физическими машинами, поскольку арендаторы в облаке будут выполняться на вычислительных узлах как виртуальные машины. Другая машина может быть контроллером. Установите Linux, затем установите OpenStack и его предварительные требования через yum / other mgr. Вы можете загружать предварительно настроенные изображения CirrOS для регистрации в облаке и тестирования облачного API. KVM – это гипервизор по умолчанию для OpenStack, и он отлично работает для меня.

  2. Общепринятой практикой является разделение базы данных с интерфейсом приложения, будь то виртуальное или физическое. В большинстве случаев производительность будет увеличиваться из-за снижения активности на обеих машинах (при условии подключения к локальной сети 100mb +).

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

Мои два цента: я бы использовал Foreman для развертывания этого, так что вы можете легко записать его и начать все, когда захотите. Изучите кукольный наизусть любой инструмент развертывания, который вы используете – почти все они являются оболочками вокруг Puppet в любом случае (заметным исключением является Crowbar, в котором используется шеф-повар). Убедитесь, что FQDN хостов содержат более одной точки и что сервер Foreman также является контроллером ОС. Для простоты используйте nova-network not Quantum / Neutron. Не беспокойтесь о производительности в малейшей степени в настройке с двумя машинами и когда вы просто учитесь. НТН!

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