ГЛАВА 7
Пример построения
Поскольку OpenStack чрезвачайно настраиваем с использованием очень большого количества параметров серверов и сети, трудно написать документацию, которая охватывала бы все возможные реализации OpenStack.
По этой причине данное руководство приводит один пример построения для упрощения задачи документирования, а также сориентировать данное руководство таким образом, чтобы сконцентрироваться на конфигурации, в которой авторы имеют опыт развертывания.
Пользуйтесь переводом существенно переработанной и дополенной 2й редакции (12-дек-2014),
находящейся теперь и в режиме постоянно обновляемой документации
(последняя пока доступна только на англ.яз.).
Обзор
Редакция OpenStack |
Folsom |
Операционная система хоста |
Ubuntu 12.04 LTS |
Репозиторий пакетов OpenStack |
Ubuntu Cloud Archive(https://wiki.ubuntu.com/ServerTeam/CloudArchive)* |
Гипервизор |
KVM |
База данных |
MySQL* |
Очередь сообщений |
RabbitMQ |
Сетевая служба |
nova-network |
Приложение управления сетью |
FlatDHCP |
Единственный nova-network или множественные хосты? |
мультихост* |
Служба образов (glance) |
файлы на сервере |
Драйвер службы идентификации (keystone) |
SQL |
Сервер службы блочного хранилища (cinder) |
LVM/iSCSI |
Сервер миграции в реальном времени |
разделяемое хранилище с использованием NFS* |
Хранилище объектов |
OpenStack Object Storage (swift) |
Звездочка (*) указывает отклонения примера построения от установок по умолчанию
Следующие свойства OpenStack поддерживаются примером построения приводимом в данном руководстве, но не являются обязательными:
- инструментальная панель (dashboard)
- блочное хранилище
- плавающая адресация IP
- миграция в реальном масштабе времени
- хранилище объектов
Обоснование
Этот пример построения был выбран на основе текущего набора свойств по умолчанию OpenStack Folsom, с акцентом на стабильность.
В частности, если ни один из авторов руководства не имел опыта развертывания редакции OpenStack Folsom с определенным сервером или конфигурацией, мы не рассматривали их в качестве примера построения.
Мы считаем, что многие облака, которые в настоящее время используют OpenStack в своей деятельнсти, выполнили подобный выбор.
Вначале вы должны выбрать операционную систему, которая будет работать на всех физических узлах.
Хотя OpenStack поддерживается множеством дистрибутивов Linux, мы использовали Ubuntu 12.04 LTS (Long Term Support), которая используется большинством в сообществе разработчиков, имеет полный набор возможностей по сравнению с другими дистрибутивами, а также имеет четкие планы дальнейшей поддержки.
Мы рекомендуем вам не использовать пакеты установки,используемые по умолчанию Ubuntu OpenStack, а вместо этого воспользоваться Архивом Ubuntu Cloud (https://wiki.ubuntu.com/ServerTeam/CloudArchive).
Архив Cloud является канонически поддерживаемым хранилищем пакетов, что позволяет перейти к будущим версиям OpenStack, оставаясь с Ubuntu 12.04.
KVM в качестве дополнения гипервизора является выбором Ubuntu - будучи хорошо подогнанной парой в терминах поддержки, а также из-за значительной степени внимания, получаемого им от сообщества разработчиков OpenStack (в том числе от авторов, которые в основном используют KVM).
Он также полностью укомплектован, свободен от лицензионных сборов и ограничений.
MySQL следует аналогичной тенденции.
Несмотря на недавнюю смену собственника, эта база данных является наиболее протестированой для использования с OpenStack и мощно документирована для работы под Ubuntu.
Мы уклонились от использования базы данных по умолчанию, SQLite, поскольку SQLite не соответствует требованиям к использованию на практике для баз данных.
Выбор RabbitMQ по сравнению с другими AMQP совместимыми вариантами, которые набирают возрастающую поддержку в OpenStack, такими как ZeroMQ и Qpid, связан с простотой его использования с Ubuntu и значительного объема тестирования на практике.
Он также является единственным вариантом, поддерживает такие свойства, как Compute Cell.
Мы рекомендуем кластеризацию с использованием RabbitMQ, поскольку он является неотъемлемой составляющей системы, и довольно прост в реализации в связи с его встроенной природой.
Как уже говорилось в предыдущих главах, есть несколько вариантов создания сетей в OpenStack Compute.
Мы рекомендуем FlatDHCP при использовании режима работы в сети Multi-Host для обеспечения высокой доступности, запускающего по одному демону nove-network на хост OpenStack Compute.
Это обеспечивает надежный механизм гарантии изоляции прерываний работы сети в отдельных вычислительных хостах, а также позволяет прямое использование аппаратных сетевых шлюзов.
Миграция в реальном времени обеспечивается посредством совместного использования СХД с NFS в качестве распределенной файловой системы.
Признавая, что для многих маломасштабных реализациях работа службы хранения объектов только для хранения образов виртуальных машин выглядит слишком дорогой, для каталога образов OpenStack и службы предоставления услуг (Glance) мы выбрали файловые сервера.
Если проектирумое вами облако также предполагает запускать службу хранения объектов, будет просто использовать Object Storage вместо файловых серверов, причем это является рекомендуемым решением.
Мы отдали предпочтение серверу SQL в качестве службы идентификации (keystone) над другими, например LDAP.
Эти сервера просты в установке и надежны.
Авторы признают, что для многих установок желательна связь с существующими службами каталогов, и предупреждают о необходимости точного понимания массива доступных опций (http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-identity.html#configuring-keystone-for-ldap-backend)
Служба блочного хранения (cinder) изначально устанавливается на внешних узлах- хранилищах и использует плагин LVM/iSCSI.
Большинство плагинов службы блочного хранения привязаны к продуктам и реализациям определенного производителя, что ограничивает их использование для потребителей рассматриваемых аппаратных платформ, однако LVM/iSCSI является надежной и стабильной службой при работе на серийно выпускаемой вычислительной технике.
В то время как облако может работать без инструментальной панели (Dashboard) OpenStack, мы расцениваем ее как незаменимую, причем не только для взаимодействия пользователя с облаком, но и в качестве инструмента для операторов.
Кроме того, использование инструментальной панели из Django превращает ее в гибкую структуру для расширения.
Почему бы не воспользоваться сетевой службой OpenStack (quantum)?
В данном руководстве мы не обсуждаем сетевую службу OpenStack (quantum), поскольку все авторы данного руководства имеют опыт промышленного развертывания исключительно с использованием nova-network.
Кроме того, она пока не поддерживает мульти-хостовые сети.
Зачем использовать мульти-хостовые сети?
При развертывании OpenStack по умолчанию, именно единcтвенная служба nova-network , которая работает в облаке (обычно на контроллере облака), предоставляет такие услуги, как трансляция сетевых адресов (NAT), DHCP, DNS для гостевых экземпляров.
Если отказывает один узел, который управляет службой nova-network, вы не сможете получить доступ к экземплярам, а экземпляры не смогут получить доступ в интернет.
В случае возникновения чрезмерного сетевого трафика, единственный узел, управляющий службой nova-network , может стать узким местом, и выйти из состава облака.
Режим с мульти-хостом (Прим.пер.: текущее описание - http://docs.openstack.org/high-availability-guide/content/ch-network.html, устаревшая ссылка из оригинала: http://docs.openstack.org/folsom/openstack-compute/admin/content/existing-ha-networking-options.html#d6e8906) является вариантом с высоким уровнем доступности для конфигурации сети, в которой сервис nova-network выполняется на каждом вычислительном узле в противоположность работе только на единственном узле.
Подробное описание
Эталонная архитектура состоит из нескольких вычислительных узлов, контроллера облака, внешнего сервера хранения NFS для хранения экземпляров и сервера блочного хранилища для хранения томов (volume) OpenStack .
Служба сетевого времени (Network Time Protocol, NTP) синхронизирует время для всех узлов.
FlatDHCPManager в режиме мульти-хоста используется для построения сети.

Контроллер облака выполняет: инструментальную панель, службы API, базу данных (MySQL), сервер очереди сообщений (RabbitMQ), планировщик для выбора вычислительных ресурсов (nova-scheduler ), службы идентификации (keystone, nova-consoleauth ), службы образов (glance-api , glance-registry ), службы для консолей доступа гостей, а также службы блочного хранения, включающие планировщик для ресурсов хранения (cinder-api и cinder-scheduler ).
Вычислительные узлы находятся там, где проводятся вычисления, и в нашем примере применения они выполняют гипервизор (KVM), libvirt (драйвер для гипервизора, котрый позволяет динамическую миграцию с узла на узел), nova-compute , nova-api-metadata (как правило, используется только при работе в режиме мульти-хоста, он извлекает метаданные определенного экземпляра), nova-vncproxy и nova-network .
Сеть состоит из двух коммутаторов, один для управления или частного трафика, и второй, накрывающий общий доступ в том числе плавающий IP-адреса.
Для поддержки этого, контроллер облака и вычислительные узлы имеют по две сетевых карты.
Серверы хранения блочных данных OpenStack и NFS необходимы исключительно для доступа в частной сети и, следовательно, им нужна только одна сетевая карта, однако, если это возможно , рекомендуется связанная конфигурация с несколькими работающими в одном сервере платами.
Плавающий IP доступ идет напрямую в интернет, в то время как доступ связный IP проходит через NAT.

Дополнительные расширения
Вы можете расширить рассмотренную архитектуру следующим образом:
Что дальше?
Поздравляем! На текущий момент вы должны иметь надежный проект для вашего облака.
Теперь мы рекомендуем вам обратиться к Руководству по установке и развертыванию OpenStack - Ubuntu (http://docs.openstack.org/havana/install-guide/install/apt/), которое содержит пошаговое руководство о том, как вручную установить пакеты OpenStack и зависимости в вашем облаке.
Хотя важно для оператора быть знакомы с шагов, участвующих в развертывании OpenStack, мы также настоятельно рекомендуем вам оценить инструментов настройки, такие как Puppet или Chef, которые могут помочь автоматизировать этот процесс развертывания.
Хотя оператору важно быть знакомым с последовательностью развертывания OpenStack, мы также настоятельно рекомендуем вам оценить инструменты настройки, такие как Puppet или Chef, которые могут помочь в автоматизации такого процесса развертывания.
В оставшейся части руководства, мы предполагаем, что вы успешно развернули облако OpenStack и способны выполнять основные операции, такие как добавление образов, загрузку экземпляров, и подкдючение томов..
Поскольку ваше внимание возращается к стабильной работе, мы рекомендуем вам первоначально пролистать оставшиеся части книги, чтобы получить представление о содержании.
Часть этой информации является полезной для предварительного прочтения, так что вы можете определить установившуюся практику применения и упростить свою жизнь в долгосрочной перспективе.
Другая информация является более полезной в качестве примеров, к которым вы можете обращаться, когда происходит неожиданное событие, например, сбой питания или поиск неисправностей при определенной проблеме.
|
|