Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:виртуализация:ubuntu_cloud [2012/09/29 21:22] [Установка вычислительного ресурса OpenStack (Nova)] |
wiki:руководство_по_ubuntu_server:виртуализация:ubuntu_cloud [2012/09/30 11:50] (текущий) [Термины] |
||
---|---|---|---|
Строка 62: | Строка 62: | ||
====Установка вычислительного ресурса OpenStack (Nova)==== | ====Установка вычислительного ресурса OpenStack (Nova)==== | ||
- | OpenStack Compute (Nova) is a cloud computing fabric controller (the main part of an IaaS system). It is written in Python, using the Eventlet and Twisted frameworks, and relies on the standard AMQP messaging protocol, and SQLAlchemy for data store access. | + | Вычислительный ресурс OpenStack (**Nova**) является диспетчером облачного процесса вычислений (основной частью системы **//IaaS//** - инфраструктура как сервис). Он написан на **Python** с использованием оболочек **Eventlet** и **Twisted** и опирается на стандарты **AMQP** протокола сообщений и **SQLAlchemy** для доступа хранилищам данных. |
- | + | ||
- | Install OpenStack Nova components | + | |
+ | Установим компоненты OpenStack Nova: | ||
+ | <code> | ||
sudo apt-get install nova-api nova-network nova-volume nova-objectstore nova-scheduler \ | sudo apt-get install nova-api nova-network nova-volume nova-objectstore nova-scheduler \ | ||
nova-compute euca2ools unzip | nova-compute euca2ools unzip | ||
+ | </code> | ||
- | Restart libvirt-bin just to make sure libvirtd is aware of ebtables. | + | Перезапустим **libvirt-bin** просто чтобы быть уверенными, что **libvirtd** знает об **//ebtables//** (фильтре для сетевых мостов): |
- | + | <code>sudo service libvirt-bin restar</code> | |
- | sudo service libvirt-bin restart | + | |
- | + | ||
- | Install RabbitMQ – Advanced Message Queuing Protocol (AMQP) | + | |
- | sudo apt-get install rabbitmq-server | + | Установим **RabbitMQ** - расширенный протокол очереди сообщений (AMQP): |
+ | <code>sudo apt-get install rabbitmq-server</code> | ||
- | Edit /etc/nova/nova.conf and add the following: | + | Отредактируем /etc/nova/nova.conf и добавим следующее: |
<code> | <code> | ||
# Nova config FlatDHCPManager | # Nova config FlatDHCPManager | ||
Строка 91: | Строка 90: | ||
</code> | </code> | ||
- | Restart OpenStack services | + | Перезапустим сервисы OpenStack: |
+ | <code> | ||
for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ | for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ | ||
do sudo stop $i; sleep 2; done | do sudo stop $i; sleep 2; done | ||
Строка 98: | Строка 97: | ||
for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ | for i in nova-api nova-network nova-objectstore nova-scheduler nova-volume nova-compute; \ | ||
do sudo start $i; sleep 2; done | do sudo start $i; sleep 2; done | ||
+ | </code> | ||
- | Migrate Nova database from sqlite db to MySQL db. It may take a while. | + | Перенесем базу данных Nova с sqlite на MySQL. Это может занять длительное время: |
- | + | <code>sudo nova-manage db sync</code> | |
- | sudo nova-manage db sync | + | |
- | + | ||
- | Define a specific private network where all your Instances will run. This will be used in the network of fixed Ips set inside nova.conf . | + | |
+ | Определим отдельную частную сеть, в которой будут работать все ваши элементы. Она будет использоваться с фиксированными адресами IP, указанными в nova.conf: | ||
+ | <code> | ||
sudo nova-manage network create --fixed_range_v4 10.0.0.0/24 --label private \ | sudo nova-manage network create --fixed_range_v4 10.0.0.0/24 --label private \ | ||
--bridge_interface br100 | --bridge_interface br100 | ||
+ | </code> | ||
- | Define a specific public network and allocate 6 (usable) Floating Public IP addresses for use with the instances starting from 10.153.107.72. | + | Определим отдельную общедоступную сеть и разместим в ней 6 плавающих IP адресов, начиная с 10.153.107.72, для использования элементами среды: |
- | + | <code>sudo nova-manage floating create --ip_range=10.153.107.72/29</code> | |
- | sudo nova-manage floating create --ip_range=10.153.107.72/29 | + | |
- | + | ||
- | Create a user (user1), a project (project1), download credentials and source its configuration file. | + | |
+ | Создадим пользователя (**//user1//**), проект (**//project1//**), загрузим учетную запись и получим конфигурационный файл: | ||
+ | <code> | ||
cd ; mkdir nova ; cd nova | cd ; mkdir nova ; cd nova | ||
sudo nova-manage user admin user1 | sudo nova-manage user admin user1 | ||
Строка 120: | Строка 119: | ||
unzip nova.zip | unzip nova.zip | ||
source novarc | source novarc | ||
+ | </code> | ||
- | Verify the OpenStack Compute installation by typing: | + | Проверм установку вычислительного ресурса OpenStack, набрав: |
+ | <code> | ||
sudo nova-manage service list | sudo nova-manage service list | ||
sudo nova-manage version list | sudo nova-manage version list | ||
+ | </code> | ||
- | If nova services don’t show up correctly restart OpenStack services as described previously. For more information please refer to the troubleshooting section on this guide. | + | Если сервисы **nova** не отработают корректно, перезапустите сервисы OpenStack, как описывалось выше. Для дополнительной информации смотрите секцию [[#поддержка_и_решение_проблем|Поддержка и решение проблем]] в этом руководстве. |
====Установка сервиса образов систем (Glance)==== | ====Установка сервиса образов систем (Glance)==== | ||
- | Nova uses Glance service to manage Operating System images that it needs for bringing up instances. Glance can use several types of storage backends such as filestore, s3 etc. Glance has two components - glance-api and glance-registry. These can be controlled using the concerned upstart service jobs. For this specific case we will be using mysql as a storage backend. | + | **Nova** использует сервис **Glance** для управления образами операционных систем, которые требуются для поднятия экземпляров системы. **Glance** может использовать различные типы систем хранилищ, такие как файловое хранение, S3 (Simple Storage Service) и пр. **Glance** состоит из двух компонентов: **//glance-api//** и **//glance-registry//**. Они могут управляться с использованием соответствующих задач загрузки сервисов. Для нашего примера в качестве хранилища мы будем использовать **mysql**. |
- | Install Glance | + | Установка **Glance**: |
- | + | <code>sudo apt-get install glance</code> | |
- | sudo apt-get install glance | + | |
- | + | ||
- | Create a database and user for glance | + | |
+ | Создадим базу данных и пользователя для **glance**: | ||
+ | <code> | ||
sudo mysql -uroot -ppassword -e "CREATE DATABASE glance;" | sudo mysql -uroot -ppassword -e "CREATE DATABASE glance;" | ||
sudo mysql -uroot -ppassword -e "GRANT ALL ON glance.* TO glanceuser@localhost \ | sudo mysql -uroot -ppassword -e "GRANT ALL ON glance.* TO glanceuser@localhost \ | ||
IDENTIFIED BY 'glancepassword' "; | IDENTIFIED BY 'glancepassword' "; | ||
+ | </code> | ||
- | Edit the file /etc/glance/glance-registry.conf and edit the line which contains the option "sql_connection =" to this: | + | Отредактируем файл /etc/glance/glance-registry.conf и изменим строку, содержащую опцию %%"sql_connection ="%%, на следующее: |
+ | <code>sql_connection = mysql://glanceuser:glancepassword@localhost/glance</code> | ||
- | sql_connection = mysql://glanceuser:glancepassword@localhost/glance | + | Удалим базу данных sqlite: |
+ | <code>rm -rf /var/lib/glance/glance.sqlite</code> | ||
- | Remove the sqlite database | + | Перезапустим **glance-registry** после внесенных изменений в /etc/glance/glance-registry.conf. База данных MySQL будет автоматически заполнена: |
+ | <code>sudo restart glance-registry</code> | ||
- | rm -rf /var/lib/glance/glance.sqlite | + | При поиске проблем посмотрите файлы журналов /var/log/glance/api.log и /var/log/glance/registry.log. |
- | + | ||
- | Restart glance-registry after making changes to /etc/glance/glance-registry.conf. The MySQL database will be automatically populated. | + | |
- | + | ||
- | sudo restart glance-registry | + | |
- | + | ||
- | If you find issues take a look at the log file in /var/log/glance/api.log and /var/log/glance/registry.log. | + | |
====Работающие экземпляры (instances)==== | ====Работающие экземпляры (instances)==== | ||
- | Before you can instantiate images, you first need to setup user credentials. Once this first step is achieved you also need to upload images that you want to run in the cloud. Once you have these images uploaded to the cloud you will be able to run and connect to them. Here are the steps you should follow to get OpenStack Nova running instances: | + | Прежде чем вы сможете предоставлять экземпляры образов систем, вам в первую очередь потребуется настроить пользовательские учетные записи. Как только первый шаг выполнен, вам еще потребуется загрузить образы систем, которые вы собираетесь запускать в облаке. Когда у вас в облаке будут загруженные образы систем, вы их сможете загрузить и подключиться. Здесь приведены шаги, чтобы получить работающие экземпляры OpenStack Nova: |
- | + | ||
- | Download, register and publish an Ubuntu cloud image | + | |
+ | Загрузите, зарегистрируйте и опубликуйте облачный образ Ubuntu: | ||
+ | <code> | ||
distro=lucid | distro=lucid | ||
wget http://cloud-images.ubuntu.com/$distro/current/$distro-server-cloudimg-amd64.tar.gz | 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 | cloud-publish-tarball "$distro"-server-cloudimg-amd64.tar.gz "$distro"_amd64 | ||
+ | </code> | ||
+ | <note>Здесь используется дистрибутив **//lucid//** (10.04), но скорее всего можно использовать любой поддерживаемый, например, **//precise//**. (//прим. пер.//)</note> | ||
- | Create a key pair and start an instance | + | Создайте ключевую пару для пользователя и подготовьте экземпляр системы: |
+ | <code> | ||
cd ~/nova | cd ~/nova | ||
source novarc | source novarc | ||
euca-add-keypair user1 > user1.priv | euca-add-keypair user1 > user1.priv | ||
chmod 0600 user1.priv | chmod 0600 user1.priv | ||
+ | </code> | ||
- | Allow icmp (ping) and ssh access to instances | + | Разрешите доступ по **icmp** (ping) и **ssh** к экземплярам: |
+ | <code> | ||
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0 | euca-authorize default -P tcp -p 22 -s 0.0.0.0/0 | ||
euca-authorize -P icmp -t -1:-1 default | euca-authorize -P icmp -t -1:-1 default | ||
+ | </code> | ||
- | Run an instance | + | Запустите экземпляр системы: |
+ | <code> | ||
ami=`euca-describe-images | awk {'print $2'} | grep -m1 ami` | ami=`euca-describe-images | awk {'print $2'} | grep -m1 ami` | ||
euca-run-instances $ami -k user1 -t m1.tiny | euca-run-instances $ami -k user1 -t m1.tiny | ||
euca-describe-instances | euca-describe-instances | ||
+ | </code> | ||
- | Assign public address to the instance. | + | Присвойте экземпляру адрес общедоступной сети: |
+ | <code> | ||
euca-allocate-address | euca-allocate-address | ||
euca-associate-address -i instance_id public_ip_address | euca-associate-address -i instance_id public_ip_address | ||
euca-describe-instances | euca-describe-instances | ||
+ | </code> | ||
- | You must enter above the instance_id (ami) and public_ip_address shown above by euca-describe-instances and euca-allocate-address commands. | + | Вы здесь должны ввести **//instance_id (ami)//** и **//public_ip_address//**, показанные выше командами **euca-describe-instances** и **euca-allocate-address**. |
- | Now you should be able to SSH to the instance | + | Теперь вы можете использовать SSH доступ к экземпляру: |
+ | <code>ssh -i user1.priv ubuntu@ipaddress</code> | ||
- | ssh -i user1.priv ubuntu@ipaddress | + | Для выключения экземпляра: |
- | + | <code>euca-terminate-instances instance_id</code> | |
- | To terminate instances | + | |
- | + | ||
- | euca-terminate-instances instance_id | + | |
====Установка хранилища инфраструктуры (Swift)==== | ====Установка хранилища инфраструктуры (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. | + | **Swift** является распределенным хранилищем высокой доступности соответствия **//object/blob//**. Оно используется инфраструктурой **OpenStack** для предоставления S3-подобных облачных сервисов хранения. Оно также совместимо с **S3 api** от **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. | + | Организации используют **Swift** для хранения больших объемов данных эффективно, безопасно и дешево, где приложения используют специальный **api** для обеспечения взаимодействия между приложениями и с объектами, сохраненными в **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. | + | Хотя вы можете установить **Swift** на единственный сервер, для промышленных сред требуется установка на несколько серверов. Если вы хотите установить хранилище объектов OpenStack (Swift) на отдельный сетевой сервер для разработки или тестирования, используйте инструкции установки **//'Swift все в одном'//** на Ubuntu. |
- | For more information see: http://swift.openstack.org/development_saio.html . | + | Дополнительная информация доступна по адресу: [[http://swift.openstack.org/development_saio.html]]. |
====Поддержка и решение проблем==== | ====Поддержка и решение проблем==== | ||
- | Community Support | + | Поддержка сообщества: |
- | OpenStack Mailing list | + | -- [[https://launchpad.net/~openstack|Список рассылки OpenStack]]. |
- | + | -- [[http://wiki.openstack.org/|Страница поиска по OpenStack Wiki]]. | |
- | The OpenStack Wiki search | + | -- [[https://bugs.launchpad.net/nova|Регистрация ошибок на Launchpad]]. |
- | + | -- Присоединяйтесь к **IRC** каналу **//#openstack//** на [[http://freenode.net/|freenode]]. | |
- | Launchpad bugs area | + | |
- | + | ||
- | Join the IRC channel #openstack on freenode. | + | |
====Ссылки==== | ====Ссылки==== | ||
- | Cloud Computing - Service models | + | -- [[http://en.wikipedia.org/wiki/Cloud_computing#Service_Models|Облачные вычисления - сервисные модели]]. |
- | + | -- [[https://help.ubuntu.com/12.04/serverguide/docs.openstack.org/trunk/openstack-compute/|Вычисления OpenStack]]. | |
- | OpenStack Compute | + | -- [[http://docs.openstack.org/diablo/openstack-compute/starter/content/GlanceMS-d2s21.html|Сервис образов OpenStack]]. |
- | + | -- [[https://help.ubuntu.com/12.04/serverguide/OpenStack%20Object%20Storage%20Administration%20Guide|Руководство администрирования хранилища объектов OpenStack]]. | |
- | OpenStack Image Service | + | -- [[http://docs.openstack.org/trunk/openstack-object-storage/admin/content/installing-openstack-object-storage-on-ubuntu.html|Установка хранилища объектов OpenStack на Ubuntu]]. |
- | + | -- [[http://cloudglossary.com/|Толковый словарь по облачным вычислениям]]. | |
- | 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. | + | Документация по облаку Ubuntu использует терминологию, которая некоторым может быть непонятна. Эта секция предоставляет словарь таких терминов и аббревиатур. |
- | + | ||
- | 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. | + | |
+ | -- **Облако (Cloud)** - объединенный набор физических машин, которые предлагают вычислительные ресурсы с помощью виртуальных машин, резервируемых и выделяемых динамически. | ||
+ | -- **IaaS - инфраструктура как сервис** - Сервисы облачной инфраструктуры, благодаря которым виртуальное окружение предоставляется провайдером в виде сервиса через интернет. Инфраструктура может включать сервера, сетевое оборудование и программное обеспечение. | ||
+ | -- **EBS** - Эластичное блочное хранилище. | ||
+ | -- **EC2** - Эластичное облако вычислений. Общедоступные облачные вычисления, предоставляемые Amazon на основе почасовой или погигабайтной оплаты. | ||
+ | -- **Узел (Node)** - физическая машина, которая может запускать виртуальные машины по команде контроллера узлов (node controller). Для Ubuntu это в основном означает, что центральный процессор (CPU) поддерживает расширения VT (аппаратной виртуализации) и может запускать гипервизор KVM. | ||
+ | -- **S3 - простой сервис хранения** - Решение Amazon для предоставления хранилища с погигабайтной оплатой для EC2. | ||
+ | -- **Облако Ubuntu** - Решение облачных вычислений для Ubuntu, основанное на OpenStack. | ||
+ | -- **ВМ (VM)** - виртуальная машина. | ||
+ | -- **VT** - технология виртуализации. Особенность некоторых современных процессоров, позволяющая ускорять работу виртуальных машин. | ||
---- | ---- |