Это старая версия документа.
Содержание
Облако Ubuntu
Облачные вычисления являются моделью вычислений, позволяющей предоставлять требуемые вычислительные мощности по запросу из общего набора имеющихся ресурсов. Такие ресурсы, как хранилище, вычислительная мощность, сеть и программное обеспечение, являются абстрактными и предоставляются как сервис через интернет в любом месте в любое время. Счет на данные ресурсы выставляется по времени использования, аналогично тому как оплачиваются электричество, вода или телефония. Инфраструктура облака Ubuntu использует программное обеспечение с открытым кодом OpenStack для создания в высшей степени масштабируемых облачных вычислений как для открытых, так и частных облаков.
Обзор
Это руководство показывает установку OpenStack с образа Ubuntu 12.04 LTS Server Edition и предполагает базовую сетевую топологию с единственной обслуживающей системой по принципу облачной системы "все в одном". Поскольку рассмотрение упрощено, данные инструкции как есть не предназначены для построения промышленных серверов, а только позволяют вам получить проверку концепции построения облака Ubuntu с использованием OpenStack.
Необходимые требования
Для развертывания минимальной инфраструктуры облака Ubuntu вам потребуется как минимум:
одна выделенная система.
два диапазона сетевых адресов (частная и доступная сети).
выбранный сервер поддерживает VT (виртуальную технологию на аппаратном уровне) поскольку мы будем использовать в качестве виртуальной платформы KVM. Другие гипервизоры, как QEMU, UML, Vmware ESX/ESXi и XEN, тоже поддерживаются. Также поддерживается LXC (Linux Containers) через использование libvirt.
Проверьте, что ваша система поддерживает kvm, выполнив sudo kvm-ok в линукс-терминале.
Минимальная топология, рекомендованная для промышленного использования предполагает три узла - один мастер-сервер для работы nova сервисов (кроме вычислений) и два сервера для запуска вычислительной среды nova. Такая установка не является избыточной и включает единую точку отказа (SPoF) в виде мастер-сервера.
Предварительная настройка сети
Перед тем, как устанавливать OpenStack нам требуется убедиться, что установлена поддержка сетевых мостов, база данных MySQL и сервер времени ntp. Это будет гарантировать, что мы будем содержать машины и сетевые узлы синхронизированными.
В этом примере "частная(private) сеть" будет из диапазона 10.0.0.0/24 на интерфейсе eth1. Все внутренние взаимодействия между экземплярами системы будут проходить там, в то время как "общедоступная(public) сеть" будет из диапазона 10.153.107.0/29 на интерфейсе eth0.
Установка поддержки мостов
sudo apt-get install bridge-utils
Установка и настройка NTP
sudo apt-get install ntp
Следующие две строки добавьте в файл /etc/ntp.conf:
server 127.127.1.0 fudge 127.127.1.0 stratum 10
Перезапустите сервис ntp:
sudo service ntp restart
Установка и настройка MySQL
sudo apt-get install mysql-server
Создайте базу данных и mysql пользователя для OpenStack:
sudo mysql -uroot -ppassword -e "CREATE DATABASE nova;" sudo mysql -uroot -ppassword -e "GRANT ALL ON nova.* TO novauser@localhost \ IDENTIFIED BY 'novapassword' ";
Символ продолжения строки "\" подразумевает, что вы включаете следующую строку как продолжение текущей команды.
Установка вычислительного ресурса OpenStack (Nova)
Вычислительный ресурс OpenStack (Nova) является диспетчером облачного процесса вычислений (основной частью системы IaaS - инфраструктура как сервис). Он написан на Python с использованием оболочек Eventlet и Twisted и опирается на стандарты AMQP протокола сообщений и SQLAlchemy для доступа хранилищам данных.
Установим компоненты OpenStack Nova:
sudo apt-get install nova-api nova-network nova-volume nova-objectstore nova-scheduler \ nova-compute euca2ools unzip
Перезапустим libvirt-bin просто чтобы быть уверенными, что libvirtd знает об ebtables (фильтре для сетевых мостов):
sudo service libvirt-bin restar
Установим RabbitMQ - расширенный протокол очереди сообщений (AMQP):
sudo apt-get install rabbitmq-server
Отредактируем /etc/nova/nova.conf и добавим следующее:
# Nova config FlatDHCPManager --sql_connection=mysql://novauser:novapassword@localhost/nova --flat_injected=true --network_manager=nova.network.manager.FlatDHCPManager --fixed_range=10.0.0.0/24 --floating_range=10.153.107.72/29 --flat_network_dhcp_start=10.0.0.2 --flat_network_bridge=br100 --flat_interface=eth1 --public_interface=eth0
Перезапустим сервисы OpenStack:
for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ do sudo stop $i; sleep 2; done for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ do sudo start $i; sleep 2; done
Перенесем базу данных Nova с sqlite на MySQL. Это может занять длительное время:
sudo nova-manage db sync
Определим отдельную частную сеть, в которой будут работать все ваши элементы. Она будет использоваться с фиксированными адресами IP, указанными в nova.conf:
sudo nova-manage network create --fixed_range_v4 10.0.0.0/24 --label private \ --bridge_interface br100
Определим отдельную общедоступную сеть и разместим в ней 6 плавающих IP адресов, начиная с 10.153.107.72, для использования элементами среды:
sudo nova-manage floating create --ip_range=10.153.107.72/29
Создадим пользователя (user1), проект (project1), загрузим учетную запись и получим конфигурационный файл:
cd ; mkdir nova ; cd nova sudo nova-manage user admin user1 sudo nova-manage project create project1 user1 sudo nova-manage project zipfile project1 user1 unzip nova.zip source novarc
Проверм установку вычислительного ресурса OpenStack, набрав:
sudo nova-manage service list sudo nova-manage version list
Если сервисы nova не отработают корректно, перезапустите сервисы OpenStack, как описывалось выше. Для дополнительной информации смотрите секцию Поддержка и решение проблем в этом руководстве.
Установка сервиса образов систем (Glance)
Nova использует сервис Glance для управления образами операционных систем, которые требуются для поднятия экземпляров системы. Glance может использовать различные типы систем хранилищ, такие как файловое хранение, S3 (Simple Storage Service) и пр. Glance состоит из двух компонентов: glance-api и glance-registry. Они могут управляться с использованием соответствующих задач загрузки сервисов. Для нашего примера в качестве хранилища мы будем использовать mysql.
Установка Glance:
sudo apt-get install glance
Создадим базу данных и пользователя для glance:
sudo mysql -uroot -ppassword -e "CREATE DATABASE glance;" sudo mysql -uroot -ppassword -e "GRANT ALL ON glance.* TO glanceuser@localhost \ IDENTIFIED BY 'glancepassword' ";
Отредактируем файл /etc/glance/glance-registry.conf и изменим строку, содержащую опцию "sql_connection =", на следующее:
sql_connection = mysql://glanceuser:glancepassword@localhost/glance
Удалим базу данных sqlite:
rm -rf /var/lib/glance/glance.sqlite
Перезапустим glance-registry после внесенных изменений в /etc/glance/glance-registry.conf. База данных MySQL будет автоматически заполнена:
sudo restart glance-registry
При поиске проблем посмотрите файлы журналов /var/log/glance/api.log и /var/log/glance/registry.log.
Работающие экземпляры (instances)
Прежде чем вы сможете предоставлять экземпляры образов систем, вам в первую очередь потребуется настроить пользовательские учетные записи. Как только первый шаг выполнен, вам еще потребуется загрузить образы систем, которые вы собираетесь запускать в облаке. Когда у вас в облаке будут загруженные образы систем, вы их сможете загрузить и подключиться. Здесь приведены шаги, чтобы получить работающие экземпляры OpenStack Nova:
Загрузите, зарегистрируйте и опубликуйте облачный образ Ubuntu:
distro=lucid wget http://cloud-images.ubuntu.com/$distro/current/$distro-server-cloudimg-amd64.tar.gz cloud-publish-tarball "$distro"-server-cloudimg-amd64.tar.gz "$distro"_amd64
Создайте ключевую пару для пользователя и подготовьте экземпляр системы:
cd ~/nova source novarc euca-add-keypair user1 > user1.priv chmod 0600 user1.priv
Разрешите доступ по icmp (ping) и ssh к экземплярам:
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0 euca-authorize -P icmp -t -1:-1 default
Запустите экземпляр системы:
ami=`euca-describe-images | awk {'print $2'} | grep -m1 ami` euca-run-instances $ami -k user1 -t m1.tiny euca-describe-instances
Присвойте экземпляру адрес общедоступной сети:
euca-allocate-address euca-associate-address -i instance_id public_ip_address euca-describe-instances
Вы должны ввести выше instance_id (ami) и public_ip_address, показанные выше командами euca-describe-instances и euca-allocate-address.
Теперь вы можете использовать SSH доступ к экземпляру:
ssh -i user1.priv ubuntu@ipaddress
Для выключения экземпляра:
euca-terminate-instances instance_id
Установка хранилища инфраструктуры (Swift)
Swift is a highly available, distributed, eventually consistent object/blob store. It is used by the OpenStack Infrastructure to provide S3 like cloud storage services. It is also S3 api compatible with amazon.
Organizations use Swift to store lots of data efficiently, safely, and cheaply where applications use an special api to interface between the applications and objects stored in Swift.
Although you can install Swift on a single server, a multiple-server installation is required for production environments. If you want to install OpenStack Object Storage (Swift) on a single node for development or testing purposes, use the Swift All In One instructions on Ubuntu.
For more information see: http://swift.openstack.org/development_saio.html.
Поддержка и решение проблем
Community Support
OpenStack Mailing list
The OpenStack Wiki search
Launchpad bugs area
Join the IRC channel #openstack on freenode.
Ссылки
Cloud Computing - Service models
OpenStack Compute
OpenStack Image Service
OpenStack Object Storage Administration Guide
Installing OpenStack Object Storage on Ubuntu
http://cloudglossary.com/
Термины
The Ubuntu Cloud documentation uses terminology that might be unfamiliar to some readers. This page is intended to provide a glossary of such terms and acronyms.
Cloud - A federated set of physical machines that offer computing resources through virtual machines, provisioned and recollected dynamically.
IaaS - Infrastructure as a Service — Cloud infrastructure services, whereby a virtualized environment is delivered as a service over the Internet by the provider. The infrastructure can include servers, network equipment, and software.
EBS - Elastic Block Storage.
EC2 - Elastic Compute Cloud. Amazon's pay-by-the-hour, pay-by-the-gigabyte public cloud computing offering.
Node - A node is a physical machine that's capable of running virtual machines, running a node controller. Within Ubuntu, this generally means that the CPU has VT extensions, and can run the KVM hypervisor.
S3 - Simple Storage Service. Amazon's pay-by-the-gigabyte persistent storage solution for EC2.
Ubuntu Cloud - Ubuntu Cloud. Ubuntu's cloud computing solution, based on OpenStack.
VM - Virtual Machine.
VT - Virtualization Technology. An optional feature of some modern CPUs, allowing for accelerated virtual machine hosting.