Tato příručka vám pomůže nakonfigurovat službu Nova (Compute) v prostředí OpenStak, v OpenStack je výpočetní služba (uzel) hostitelem cloudových výpočetních systémů. OpenStack compute je hlavní součástí IaaS, spolupracuje s KeyStone pro ověřování, image service pro disk a image a dashboard pro uživatelské a administrativní rozhraní.
OpenStack Compute může horizontálně škálovat na standardním hardwaru a stahovat obrázky pro spuštění výpočetní instance.
Instalace a konfigurace uzlu řadiče:
Nakonfigurujeme službu Compute na uzlu Controller, přihlásíme se k serveru MySQL jako uživatel root.
# mysql -u root -p
Vytvořte databázi nova.
CREATE DATABASE nova;
Udělte správná oprávnění databázi nova.
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
Nahraďte „heslo “ s vhodným heslem. Ukončete MySQL.
Načtěte své pověření správce ze skriptu prostředí.
# source admin-openrc.sh
Vytvořte uživatele nova pro vytváření přihlašovacích údajů služby.
# openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | a25d5cdc7efa4375b0907dd615eebde0 | | name | nova | +-----------+----------------------------------+
Přidejte roli správce k uživateli nova.
# openstack role add --project service --user nova admin
Vytvořte entitu služby nova.
# openstack service create --name nova --description "Nova" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Nova | | enabled | True | | id | ad302b8a4e884decb8ed0f4fdf319ba1 | | name | nova | | type | compute | +-------------+----------------------------------+
Vytvořte koncový bod rozhraní API služby nova.
# openstack endpoint create --region RegionOne compute public http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 3d7bba2b7c3446e7975f8b74c0cab712 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute internal http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 240d4430f1c442439c3835c12abf7533 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+ # openstack endpoint create --region RegionOne compute admin http://controller:8774/v2/%\(tenant_id\)s +--------------+-----------------------------------------+ | Field | Value | +--------------+-----------------------------------------+ | enabled | True | | id | 758d41f12fff4617bc7e4c12bd4502fc | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | ad302b8a4e884decb8ed0f4fdf319ba1 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2/%(tenant_id)s | +--------------+-----------------------------------------+
Instalace a konfigurace komponent Compute controller:
Nainstalujte níže uvedené balíčky na uzel řadiče.
# apt-get install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
Upravte soubor /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Upravte níže uvedená nastavení a ujistěte se, že jste položky umístili do správných sekcí. Pokud nenaleznete existující sekci pro níže uvedené položky, možná budete muset přidat tyto konkrétní sekce do souboru.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Controller Node my_ip = 192.168.12.21 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver enabled_apis=osapi_compute,metadata [vnc] ## Management IP of Controller Node vncserver_listen = $my_ip vncserver_proxyclient_address = $my_ip [database] connection = mysql+pymysql://nova:password@controller/nova ## Replace "password" with the password you chose for nova database [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
Naplňte výpočetní databázi.
# su -s /bin/sh -c "nova-manage db sync" nova
Restartujte výpočetní služby.
# service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart
Odeberte soubor databáze SQLite.
# rm -f /var/lib/nova/nova.sqlite
Nainstalujte a nakonfigurujte Nova (na výpočetním uzlu):
Nyní nainstalujeme a nakonfigurujeme službu Compute na výpočetním uzlu, tato služba podporuje více hypervizorů pro nasazení instancí (VM). Náš výpočetní uzel používá hypervizor QEMU s rozšířením KVM pro podporu hardwarově akcelerované virtualizace.
Ověřte, zda váš počítač podporuje virtualizaci hardwaru.
# egrep -c '(vmx|svm)' /proc/cpuinfo 1
Pokud příkaz vrátí hodnotu 1 nebo více, váš výpočetní uzel podporuje virtualizaci.
Ujistěte se, že jste povolili úložiště OpenStack Kilo na Compute Node, nebo jej povolte podle níže uvedených kroků.
Nainstalujte svazek klíčů a úložiště archivu Ubuntu Cloud.
# apt-get install software-properties-common # add-apt-repository cloud-archive:liberty
Upgradujte svůj systém.
# apt-get update && apt-get dist-upgrade
Nainstalujte následující balíčky na každý výpočetní uzel.
# apt-get install nova-compute sysfsutils
Upravte /etc/nova/nova-compute.conf, abyste povolili QEMU.
# vi /etc/nova/nova-compute.conf
Změňte virt_type=kvm na qemu v sekci libvirt.
[libvirt] ... virt_type = qemu
Upravte soubor /etc/nova/nova.conf.
# vi /etc/nova/nova.conf
Upravte níže uvedená nastavení a nezapomeňte umístit položky do správných sekcí.
[DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone ## Management IP of Compute Node my_ip = 192.168.12.22 network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ. [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service [glance] host = controller ## Replace controller with your controller hostname [oslo_concurrency] lock_path = /var/lib/nova/tmp
Restartujte výpočetní službu.
# service nova-compute restart
Odeberte soubor databáze SQLite.
# rm -f /var/lib/nova/nova.sqlite
Ověřte operaci:
Načtěte přihlašovací údaje správce na Controller Node.
# source admin-openrc.sh
Vypište součásti výpočetní služby, které chcete ověřit, a spusťte následující příkaz v uzlu řadiče.
# nova service-list +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:25.000000 | - | | 2 | nova-cert | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 3 | nova-conductor | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:28.000000 | - | | 4 | nova-scheduler | controller.itzgeek.local | internal | enabled | up | 2015-11-25T14:11:24.000000 | - | | 5 | nova-compute | compute.itzgeek.local | nova | enabled | up | 2015-11-25T14:11:30.000000 | - | +----+------------------+--------------------------+----------+---------+-------+----------------------------+-----------------+
Měli byste získat výstup se čtyřmi servisními komponentami povolenými na řídicím uzlu a jednou servisní komponentou na výpočetním uzlu.
Uveďte snímky v katalogu obrazových služeb, abyste ověřili konektivitu mezi výpočetní a obrazovou službou.
# nova image-list +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | b19c4522-df31-4331-a2e1-5992abcd4ded | Ubuntu_14.04-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
To je vše!!!, úspěšně jste nakonfigurovali službu Nova. Dále je třeba nakonfigurovat OpenStack Networking (Neutron).