Ubuntu openstack что это
Установка OpenStack на одном сервере с Ubuntu 20.04 LTS
1219 просмотров 2 2021-04-14
Введение
В этой статье мы расскажем как быстро развернуть OpenStack на одном сервере Ubuntu 20.04 LTS.
Сразу оговорим, что если вам необходимо установить высокопроизводительную и масштабируемую облачную инфраструктуру OpenStack, то вариант с размещением основных узлов OpenStack на одной ноде вам не подойдет. Как мы видели из предыдущей статьи, разворачивание даже одного из компонентов OpenStack (Swift) для нагруженных систем требует группу серверов. Решение из этой статьи больше подойдет для задач тестирования, разработки, разворачивания небольших сервисов и т.п.
Технические требования к установке OpenStack:
Установка Microstack
Установку будем производить при помощи Microstack – специального пакета развертывания OpenStack. Этот способ установки очень удобен, так как нам нет необходимости вручную устанавливать и конфигурировать каждый узел OpenStack. За нас это сделает Microstack. Итак, приступим.
Производить установку Microstack мы будет при помощи удобной системы развертывания пакетов Snappy. Установим утилиту для работы со Snappy:
Проверим корректность установки, скачав тестовый пакет и запустив его.
Вывод в случае успеха:
Далее выполним саму установку Microstack как snap-приложение :
Инициализация Microstack
В ходе инициализации Microstack настраивает все необходимые сущности для корректной работы облака OpenStack (узлы с настроенным сетевым взаимодействием между ними, СУБД MySQL, брокер очередей RabbitMQ, основные сервисы для OpenStack).
В ходе установки и инициализации мы получаем основные ключевые компоненты OpenStack:
Для инициализации выполним команду:
После завершения инициализации мы можем обратиться к OpenStack через web-интерфейс по ссылке:
Логин по умолчанию – admin. Пароль необходимо сгенерировать командой:
Через web-интерфейс мы можем выполнять основные операции с наши облаком. Например, заводить новых пользователей, создавать экземпляры и т.п.
Также с OpenStack мы можем работать, используя интерфейс командной строки (CLI). Чтобы получить список всех команд введем:
Синтаксис MicroStack CLI схож с python-openstackclient. Также более подробно с Microstack вы можете ознакомиться на странице официальной документации.
Запуск экземпляра OpenStack
Экземплярами в OpenStack называются исполняемые в пределах облака виртуальные машины. Запустим экземпляр test командой:
В данном примере мы использовали образ легковесного дистрибутива Linux – CirrOS.
В случае успешного создания в выводе команда предоставит нам данные как подключиться к экземпляру по SSH.
И можем смело с ним работать. Для того, чтобы отключиться от экземпляра используем команду exit.
Созданными экземплярами мы можем управлять из web-браузера. Для этого переходим на страницу нашего облака (http://наш_адрес _сервера/) и находим слева вкладку Instances.
Вывод
В статье мы рассмотрели как произвести установку OpenStack на одном сервере. Познакомились с Microstack и запустили свой первый экземпляр в виде виртуальной машины в облаке OpenStack.
Облако Ubuntu
Содержание
Облако Ubuntu
Облачные вычисления являются моделью вычислений, позволяющей предоставлять требуемые вычислительные мощности по запросу из общего набора имеющихся ресурсов. Такие ресурсы, как хранилище, вычислительная мощность, сеть и программное обеспечение, являются абстрактными и предоставляются как сервис через интернет в любом месте в любое время. Счет на данные ресурсы выставляется по времени использования, аналогично тому как оплачиваются электричество, вода или телефония. Инфраструктура облака Ubuntu использует программное обеспечение с открытым кодом OpenStack для создания в высшей степени масштабируемых облачных вычислений как для открытых, так и частных облаков.
Обзор
Необходимые требования
Для развертывания минимальной инфраструктуры облака Ubuntu вам потребуется как минимум:
одна выделенная система.
два диапазона сетевых адресов (частная и доступная сети).
выбранный сервер поддерживает VT (виртуальную технологию на аппаратном уровне) поскольку мы будем использовать в качестве виртуальной платформы KVM. Другие гипервизоры, как QEMU, UML, Vmware ESX/ESXi и XEN, тоже поддерживаются. Также поддерживается LXC (Linux Containers) через использование libvirt.
Проверьте, что ваша система поддерживает kvm, выполнив sudo kvm-ok в линукс-терминале.
Предварительная настройка сети
Перед тем, как устанавливать OpenStack нам требуется убедиться, что установлена поддержка сетевых мостов, база данных MySQL и сервер времени ntp. Это будет гарантировать, что мы будем содержать машины и сетевые узлы синхронизированными.
В этом примере «частная(private) сеть» будет из диапазона 10.0.0.0/24 на интерфейсе eth1. Все внутренние взаимодействия между экземплярами системы будут проходить там, в то время как «общедоступная(public) сеть» будет из диапазона 10.153.107.0/29 на интерфейсе eth0.
Установка поддержки мостов
Установка и настройка NTP
Следующие две строки добавьте в файл /etc/ntp.conf:
Перезапустите сервис ntp:
Установка и настройка MySQL
Создайте базу данных и mysql пользователя для OpenStack:
Символ продолжения строки «\» подразумевает, что вы включаете следующую строку как продолжение текущей команды.
Установка вычислительного ресурса OpenStack (Nova)
Установим компоненты OpenStack Nova:
Перезапустим libvirt-bin просто чтобы быть уверенными, что libvirtd знает об ebtables (фильтре для сетевых мостов):
Отредактируем /etc/nova/nova.conf и добавим следующее:
Перезапустим сервисы OpenStack:
Перенесем базу данных Nova с sqlite на MySQL. Это может занять длительное время:
Определим отдельную частную сеть, в которой будут работать все ваши элементы. Она будет использоваться с фиксированными адресами IP, указанными в nova.conf:
Определим отдельную общедоступную сеть и разместим в ней 6 плавающих IP адресов, начиная с 10.153.107.72, для использования элементами среды:
Создадим пользователя (user1), проект (project1), загрузим учетную запись и получим конфигурационный файл:
Проверм установку вычислительного ресурса OpenStack, набрав:
Если сервисы nova не отработают корректно, перезапустите сервисы OpenStack, как описывалось выше. Для дополнительной информации смотрите секцию Поддержка и решение проблем в этом руководстве.
Установка сервиса образов систем (Glance)
Nova использует сервис Glance для управления образами операционных систем, которые требуются для поднятия экземпляров системы. Glance может использовать различные типы систем хранилищ, такие как файловое хранение, S3 (Simple Storage Service) и пр. Glance состоит из двух компонентов: glance-api и glance-registry. Они могут управляться с использованием соответствующих задач загрузки сервисов. Для нашего примера в качестве хранилища мы будем использовать mysql.
Установка Glance:
Создадим базу данных и пользователя для glance:
Отредактируем файл /etc/glance/glance-registry.conf и изменим строку, содержащую опцию «sql_connection =», на следующее:
Удалим базу данных sqlite:
Перезапустим glance-registry после внесенных изменений в /etc/glance/glance-registry.conf. База данных MySQL будет автоматически заполнена:
При поиске проблем посмотрите файлы журналов /var/log/glance/api.log и /var/log/glance/registry.log.
Работающие экземпляры (instances)
Прежде чем вы сможете предоставлять экземпляры образов систем, вам в первую очередь потребуется настроить пользовательские учетные записи. Как только первый шаг выполнен, вам еще потребуется загрузить образы систем, которые вы собираетесь запускать в облаке. Когда у вас в облаке будут загруженные образы систем, вы их сможете загрузить и подключиться. Здесь приведены шаги, чтобы получить работающие экземпляры OpenStack Nova:
Загрузите, зарегистрируйте и опубликуйте облачный образ Ubuntu:
Создайте ключевую пару для пользователя и подготовьте экземпляр системы:
Разрешите доступ по icmp (ping) и ssh к экземплярам:
Запустите экземпляр системы:
Присвойте экземпляру адрес общедоступной сети:
Вы здесь должны ввести instance_id (ami) и public_ip_address, показанные выше командами euca-describe-instances и euca-allocate-address.
Теперь вы можете использовать SSH доступ к экземпляру:
Для выключения экземпляра:
Установка хранилища инфраструктуры (Swift)
Swift является распределенным хранилищем высокой доступности соответствия object/blob. Оно используется инфраструктурой OpenStack для предоставления S3-подобных облачных сервисов хранения. Оно также совместимо с S3 api от Amazon.
Организации используют Swift для хранения больших объемов данных эффективно, безопасно и дешево, где приложения используют специальный api для обеспечения взаимодействия между приложениями и с объектами, сохраненными в Swift.
Хотя вы можете установить Swift на единственный сервер, для промышленных сред требуется установка на несколько серверов. Если вы хотите установить хранилище объектов OpenStack (Swift) на отдельный сетевой сервер для разработки или тестирования, используйте инструкции установки ‘Swift все в одном’ на Ubuntu.
Облако в Ubuntu своими руками
В этой статье не будет долгой и порой скучной теории о том, что такое OpenStack, зачем его использовать Мы сразу приступим к самому интересному — к установке OpenStack в Ubuntu 16.04.
Устанавливать OpenStack можно, как на физический компьютер, например, на личный ноутбук или на виртуальную машину в облаке. Мы будем использовать собственные виртуальные машины.
Как минимум, понадобится машина с двумя процессорами, 4 Гб «оперативки», доступом к Интернету, а также доступными извне портами 22 и 80. Для установки OpenStack мы будем использовать DevStack, который предоставляет набор инструментов для установки основных сервисов OpenStack из исходников, необходимых для разработки и тестирования. Так вот, DevStack поддерживает Ubuntu 16.04/17.04, Fedora 24/25, CentOS 7, а также некоторые версии Debian и OpenSUSE. Если у вас нет особых предпочтений, то наиболее тщательно тестировалась работа DevStack на Ubuntu 16.04, именно поэтому данная версия и выбрана в качестве целевой (хотя уже доступна 18.04).
Конфигурация нашей виртуальной машины будет превышать минимальные системные требования — 4 процессора, 8 Гб памяти:
Конфигурация виртуальной машины
Сразу нужно заметить, что машина, на которую будет установлен DevStack, должна быть выделенной для него и только для него. Никаких других функций машина выполнять не должна. Желательно выполнять установку DevStack на чистую машину, на которую не устанавливалось другое ПО.
После создания виртуальной машины войдите на нее по ssh. Первым делом нам нужно создать пользователя и предоставить ему права sudo. Сделаем это:
Первая команда создает пользователя с именем stack. Вторая – предоставляет ему sudo-права.
В результате вы должны увидеть вывод:
stack ALL=(ALL) NOPASSWD: ALL
Пользователь stack создан
Войдите под пользователем stack и загрузите DevStack:
Данная команда клонировала релиз Pike. При желании вы можете загрузить более свежие релизы Rocky или Queens. Список релизов доступен по адресу https://releases.openstack.org/.
После клонирования сразу перейдите в каталог devstack:
Внедрение OpenStack и куда двигаться дальше?
Рассмотрев разницу в дизайнерских подходах в традиционных системах и облачных платформах OpenStack, мы можем перейти к разнице в подходах построения приложений и надежной и высокодоступной инфраструктуры. OpenStack был создан для того, чтобы обеспечить массовый запуск сотен, тысяч и даже десятков тысяч однотипных (как правило) виртуальных серверов для хостинга приложений с собственными средствами обеспечения отказоустойчивости. Сама платформа не предлагает высокой доступности отдельно взятого виртуального сервера.
Многие пользователи традиционных систем часто принимают это как недостаток и незрелость платформы OpenStack. Тем не менее, это утверждение основано на недопонимании различных дизайнерских принципов унаследованных приложений и облачных вычислений.
Часть 2.
В чем разница подходов облака и традиционной инфраструктуры?
Если сравнить запущенные экземпляры виртуальных серверов с животными, то традиционные платформы обеспечивают принцип работы «домашний питомец», а OpenStack – подход «стадо» (иногда встречается термин «свиноферма»).
Каждый домашний питомец уникален: у него есть имя, свои повадки и характер. Кот Вася у соседа и ваша Мурка – это две совершенно разные кошки. Если ваш кот болеет – вы ведете его к ветеринару, вы его лечите, заботитесь о его состоянии, вы его кормите и ухаживаете за ним.
Напротив, все животные в стаде для вас выглядят одинаково. Вы кормите их одновременно, вакцинируете их всех разом. Если животное погибает, это плохо, но все же в стаде может вырасти другое, которое будет выполнять требуемую функцию. Сравнение подходов к виртуальной инфраструктуре отображено на картинке внизу:
Только поняв эту непривычную нам разницу в концепции и подходах, предлагаемой разработчиками и идеологами облачной платформы OpenStack, можно переходить к вопросам его практического применения.
Когда стоит задуматься о внедрении OpenStack?
Прежде чем приступить к внедрению очередной новой технологии (включая OpenStack) нужно определить экономическую целесообразность данного действия. Например, внедрять OpenStack для хостинга одного или двух десятков виртуальных серверов, скорее всего, нецелесообразно. Понимание необходимости сокращения стоимости инфраструктуры толкает многих заказчиков внедрять OpenStack для всех типов нагрузки, что неправильно и иногда приводит к негативным последствиям. Нужно точно и грамотно оценить все риски, и прежде всего ожидаемый тип нагрузки, для которого платформа внедряется. Существуют варианты построения недорогой платформы виртуализации на базе других открытых технологий. Благоприятными условиями использования платформы OpenStack, с точки зрения ICL Services являются:
Некоторые коммерческие дистрибутивы OpenStack предлагают поддержку высокой доступности виртуальных серверов. Разумеется, круг использования таких дистрибутивов несколько шире, чем описано здесь.
Исходя из условий использования, мы можем предложить следующие сценарии эффективного применения решений на базе OpenStack:
* Разумеется, возможны и другие сценарии использования данного продукта.
ICL Services имеет богатый опыт в проектировании и внедрении решений любой сложности на базе Linux и Open Source технологий для зарубежных и российских заказчиков. Компанией было разработано и внедрено облачное решение для корпоративных клиентов – ICL Cloud, которое активно используется для внутренних нужд, а также для предоставления облачных сервисов собственной разработки.
Какой дистрибутив OpenStack выбрать?
Многие компании задаются вопросом: «Какой дистрибутив OpenStack следует использовать для построения частного облака?». Ответ на этот вопрос вытекает из задач, которые будут решаться данной платформой, а также накладываемых требований к надежности и SLA.
Существуют бесплатные и коммерческие сборки платформы OpenStack.
Свободные сборки OpenStack (Community OpenStack, RDO OpenStack) вполне могут быть использованы для изучения данной технологии, построения рабочих моделей, а также тестирования функциональности с целью определения пригодности продукта для тех или иных задач.
Свободные версии OpenStack привлекательны прежде всего тем, что они бесплатны (отсутствие платы за лицензии).
Именно на базе свободных версий OpenStack многие российские (в том числе крупные компании) сейчас предпочитают строить собственные облачные среды для тестирования и разработки ПО. Они легко воспроизводимы и при потере могут быть воссозданы заново без существенного ущерба для бизнеса. Но использование бесплатных версий OpenStack в Enterprise секторе весьма затруднительно ввиду больших рисков и отсутствия поддержки вендором.
Рост спроса на облачные решения и нежелание потерять долю рынка приводят к тому, что ведущие производители ПО создают собственные сборки OpenStack. Некоторые производители развивают определенные возможности OpenStack, что является их конкурентным преимуществом.
Краткий список продуктов доступен ниже:
Можно ли использовать OpenStack для управления ресурсами в VMware vSphere?
Свободные версии OpenStack, а также многие коммерческие дистрибутивы предлагают поддержку VMware vSphere. Это позволяет совместить всю надежность и функциональность решений VMware с гибкостью облачных технологий OpenStack. Кроме того, компания VMware предлагает VMware Integrated OpenStack, уже оптимизированный для интеграции с продуктами виртуализации vSphere.
Какие компетенции нужны для внедрения и поддержки OpenStack?
Многие компании внедряют или собираются внедрять OpenStack собственными силами. Следует отметить, что внедрение и качественная поддержка OpenStack требует наличия высококвалифицированных специалистов с достаточно широким кругом компетенций. Это более ярко выражено при использовании свободных/бесплатных версий. Коммерческие дистрибутивы упрощают задачу из-за наличия средств автоматического развертывания, обновления и т.п.
Кроме того, OpenStack взаимодействует с большим количеством инфраструктурных ресурсов, что требует знаний в разных областях.
Ключевые компетенции для специалистов внедрения и поддержки:
Нужен OpenStack. Что дальше?
Некоторые тестовые инсталляции OpenStack могут быть внедрены средними и крупными компаниями самостоятельно при наличии высококвалифицированных Linux специалистов. Наша практика показывает, что подобного рода внедрения часто отпугивают потенциальных пользователей OpenStack из-за неправильных ожиданий, отсутствия экспертизы, а также
некачественно выполненного развертывания. Компании тратят очень много ресурсов и зачастую сдаются на половине пути, начиная рассматривать альтернативные варианты.
Промышленные внедрения, как правило, требуют привлечения компаний-экспертов, специализирующихся на облачных решениях, учитывая большое количество рисков и моментов, которые требуют акцентирования внимания, а также сложности межкомпонентных связей и внимания к мелочам. Привлечение экспертов позволяет существенно сократить сроки внедрения и уменьшить риски.
Платформа имеет богатый функционал и покрывает большую часть задач. Кроме того, доступно множество расширений OpenStack, решающих различные задачи. Но, рано или поздно, потребности многих клиентов выходят за рамки возможностей базовой платформы OpenStack. Открытый исходный код и модульная архитектура OpenStack позволяют расширять функциональность решения за счет разработки новых или изменения существующих модулей платформы.
У меня уже есть VMware vSphere и OpenStack. Куда двигаться дальше?
Наличие двух и более различных платформ виртуализации может быть неудобно. В тех случаях, когда требуется единый инструмент для управления различными провайдерами инфраструктуры (VMware, OpenStack, Amazon, Hyper-V) может потребоваться внедрение платформы управления гибридными облаком, что обеспечит пользователям единый доступ через одну консоль, а приложение будет запускать те или иные виртуальны серверы в требуемой платформе.
Среди доступных на рынке подобных платформ:
Примеры платформ управления гетерогенным облаком:
Vmware vRealize
ManageIQ/Red Hat CloudForms
Ericsson Cloud Manager
Install OpenStack yourself
Try OpenStack on your workstation, set up a micro cloud or deploy a production-grade OpenStack cluster across hundreds of physical machines. You will use MicroStack or OpenStack Charms depending on the requirements.
If you run into any issues, or if you want OpenStack consulting, support or fully managed service, speak to an expert.
Single-node, multi-node or large-scale cluster?
Choose the OpenStack installation option that suits you best:
Single-node OpenStack deployment
These instructions use MicroStack ‐ OpenStack in a snap, MicroStack is a pure upstream OpenStack distribution designed for small scale and edge deployments, that can be installed and maintained with a minimal effort.
NOTE: MicroStack is in a beta state. We encourage you to test it, give us your feedback and ask questions.
Installation
The installation step consists solely of installing the MicroStack snap.
Requirements:
You will need a multi-core processor and at least 8 GiB of memory and 100 GiB of disk space. MicroStack has been tested on x86-based physical and virtual (KVM) machines running either Ubuntu 18.04 LTS or Ubuntu 20.04 LTS.
At this time use devmode and the beta channel:
Information on the installed snap can be viewed like this:
Here we see that OpenStack Ussuri has been deployed!
Initialisation
The initialisation step automatically deploys, configures, and starts OpenStack services. In particular, it will create the database, networks, an image, several flavors, and ICMP/SSH security groups. This can all be done within 10 to 20 minutes depending on your machine:
Verification
The purpose of the verification step is to confirm that the cloud is in working order and to discover some of the defaults used by MicroStack. Verification will consist of the following actions:
Query OpenStack
The standard openstack client comes pre-installed and is invoked like so:
To list the default image:
To get the default list of flavors:
Create an instance
To create an instance named ‘test’ based on the ‘cirros’ image:
Note:
The launch command can be replaced with the traditional microstack.openstack server create command.
Connect to the instance
Output from the microstack launch command includes all the information needed to connect to the instance over SSH:
Note:
The launch command, upon its initial invocation, will set up a default OpenStack keypair.
Access the instance using the private SSH key associated with the default keypair:
Access the cloud dashboard
You can log in to the web UI by pointing your browser to the following URL:
The username is ‘admin’ and the password is obtained in this way:
Upon logging in you should see the created instance:
To learn more about MicroStack, visit https://microstack.run.
Multi-node OpenStack deployment
These instructions use MicroStack ‐ in a snap. MicroStack is a pure upstream OpenStack distribution, designed for small scale and edge deployments, that can be installed and maintained with a minimal effort.
NOTE: MicroStack is in a beta state. We encourage you to test it, give us your feedback and ask questions.
Installation
The installation step consists solely of installing the MicroStack snap.
Requirements:
You will need a multi-core processor and at least 8 GiB of memory and 100 GiB of disk space. MicroStack has been tested on x86-based physical and virtual (KVM) machines running either Ubuntu 18.04 LTS or Ubuntu 20.04 LTS.
At this time use devmode and the beta channel:
Install the snap on the machine designate as the control node and on any machines designated as compute nodes.
Information on the installed snap can be viewed like this:
Here we see that OpenStack Ussuri has been deployed!
Initialisation
Both the control node and the compute nodes must be initialised.
Control node
Perform this step on the machine designated as the control node.
The control node initialisation step automatically deploys, configures, and starts OpenStack services. In particular, it will create the database, networks, an image, several flavors, and ICMP/SSH security groups. This can all be done within 10 to 20 minutes depending on your machine:
When finished, generate a connection string that a designated compute node will need in order to join the cluster:
Compute node
Perform this step on a machine designated as a compute node using the previously generated connection string.
Since the compute node only manages the OpenStack compute service a compute node’s initialisation step is much shorter than that of a control node’s. It can take as little as 30 seconds for a compute node to join the cluster:
Note:
Each additional compute node will require a new connection string to be generated. Add as many compute nodes as desired by repeating the join process.
Verification
The purpose of the verification step is to confirm that the cloud is in working order and to discover some of the defaults used by MicroStack. Verification will consist of the following actions:
Query OpenStack
The commands in this section can be invoked on either the control node or on a compute node.
The standard openstack client comes pre-installed and is invoked like so:
To list the default image:
To get the default list of flavors:
Create an instance
The commands in this section can be invoked on either the control node or on a compute node.
The instance will be created on a compute node that the creating node sees as an availability zone, which in turn is based on hypervisor names.
To get the list of hypervisors:
There should be at least two. One that is bundled with the control node and one for each compute node.
Important:
To create an instance from a compute node you will need to first manually import an OpenStack keypair (i.e. ssh-keygen and microstack.openstack keypair create ).
From the control node, to create an instance (on hypervisor ‘pmatulis-ss-mstack-2’) named ‘test’ that is based on the ‘cirros’ image:
Note:
The launch command can be replaced with the traditional microstack.openstack server create command.
Connect to the instance
Output from the microstack launch command includes all the information needed to connect to the instance over SSH:
Important:
When connecting to the instance over SSH from a compute node, OpenStack security groups will need to be configured.
From the control node, access the instance using the private SSH key associated with the default keypair:
Access the cloud dashboard
You can log in to the web UI by pointing your browser to the following URL:
The username is ‘admin’ and the password is obtained in this way:
Upon logging in you should see both hypervisors and a single instance running on hypervisor ‘pmatulis-ss-mstack-2.project.serverstack’:
To learn more about MicroStack, visit https://microstack.run.
Large-scale deployment
These instructions use OpenStack Charms. OpenStack Charms are the foundation of Canonical’s Charmed OpenStack distribution which is an enterprise private cloud, designed to run mission-critical workloads.
Find the documentation for «Installation» of OpenStack Charms Deployment Guide here.
NOTE: In order to qualify for the Private Cloud Build (PCB) service, Ubuntu Advantage for Infrastructure (UA-I) support subscription and Managed OpenStack, at least 12 nodes are required for Charmed OpenStack. Please contact your Canonical sales representative for detailed information on minimum hardware requirements
To learn more about OpenStack Charms, visit OpenStack Charms Deployment Guide.