Water's Home

Just another Life Style

0%

Highly available Nova API

Create Nova Service & Endpoint

[root@controller1 ~]# openstack service create –name nova –description “OpenStack Compute” compute
+————-+———————————-+
Field Value
+————-+———————————-+
description OpenStack Compute
enabled True
id 365c1378f8c641ba81f48efa7c62cd29
name nova
type compute
+————-+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne compute public http://controller:8774/v2.1
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id 2afb267d1bd34f9388f9568321313167
interface public
region RegionOne
region_id RegionOne
service_id 365c1378f8c641ba81f48efa7c62cd29
service_name nova
service_type compute
url http://controller:8774/v2.1
+————–+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne compute internal http://controller:8774/v2.1
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id 92de622e904546cc9bd1ca4087529e98
interface internal
region RegionOne
region_id RegionOne
service_id 365c1378f8c641ba81f48efa7c62cd29
service_name nova
service_type compute
url http://controller:8774/v2.1
+————–+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne compute admin http://controller:8774/v2.1
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id 9295b974edec4e06842ee4db2e2d2458
interface admin
region RegionOne
region_id RegionOne
service_id 365c1378f8c641ba81f48efa7c62cd29
service_name nova
service_type compute
url http://controller:8774/v2.1
+————–+———————————-+

Create Placement & Endpoint

[root@controller1 ~]# openstack user create –domain default –password=placement placement
+———————+———————————-+
Field Value
+———————+———————————-+
domain_id default
enabled True
id c18a3e3bf63c4114924fb6b31b3305fd
name placement
options {}
password_expires_at None
+———————+———————————-+
[root@controller1 ~]# openstack role add –project service –user placement admin
[root@controller1 ~]# openstack service create –name placement –description “Placement API” placement
+————-+———————————-+
Field Value
+————-+———————————-+
description Placement API
enabled True
id 99a48fd2c3bf496287fa1fcf82376c02
name placement
type placement
+————-+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne placement public http://controller:8778
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id c271472e882f49c3a77c518296d4045c
interface public
region RegionOne
region_id RegionOne
service_id 99a48fd2c3bf496287fa1fcf82376c02
service_name placement
service_type placement
url http://controller:8778
+————–+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne placement internal http://controller:8778
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id b04f59956eca4d8cab4b3a41a071fc6b
interface internal
region RegionOne
region_id RegionOne
service_id 99a48fd2c3bf496287fa1fcf82376c02
service_name placement
service_type placement
url http://controller:8778
+————–+———————————-+
[root@controller1 ~]# openstack endpoint create –region RegionOne placement admin http://controller:8778
+————–+———————————-+
Field Value
+————–+———————————-+
enabled True
id 582bf2a041734838adbf92d7dd4b602e
interface admin
region RegionOne
region_id RegionOne
service_id 99a48fd2c3bf496287fa1fcf82376c02
service_name placement
service_type placement
url http://controller:8778
+————–+———————————-+

Install Nova

[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-cert openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y

Configure Nova

[root@controller1 ~]# cp /etc/nova/nova.conf{,.bak}

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT my_ip controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT use_neutron True
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT osapi_compute_listen controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT osapi_compute_listen_port 8774
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT metadata_listen controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT metadata_listen_port 8775
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:openstack@controller:5673

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf database connection mysql+pymysql://nova:nova@controller/nova
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:nova@controller/nova_api

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf api auth_strategy keystone

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken memcached_servers controller1:11211,controller2:11211,controller3:11211
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken auth_type password
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken project_domain_name default
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken user_domain_name default
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken project_name service
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken username nova
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf keystone_authtoken password nova

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf vnc enabled true
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf vnc vncserver_listen controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf vnc vncserver_proxyclient_address controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf vnc novncproxy_host controller1
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf vnc novncproxy_port 6080

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf glance api_servers http://controller:9292

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement os_region_name RegionOne
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement project_domain_name Default
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement project_name service
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement auth_type password
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement user_domain_name Default
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement auth_url http://controller:35357/v3
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement username placement
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf placement password placement

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300

[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf cache enabled true
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf cache backend oslo_cache.memcache_pool
[root@controller1 ~]# openstack-config –set /etc/nova/nova.conf cache memcache_servers controller1:11211,controller2:11211,controller3:11211

Configure Nova-Placement

Refer to “CLOUD COMPUTING —> OpenStack Pike Installation —> 7.Nova”

[root@controller1 ~]# echo “

#Placement API

= 2.4>
Require all granted

  Order allow,deny
  Allow from all

“>>/etc/httpd/conf.d/00-nova-placement-api.conf
[root@controller1 ~]# “
[root@controller1 ~]# systemctl restart httpd

Synchronize Database

[root@controller1 ~]# su -s /bin/sh -c “nova-manage api_db sync” nova
[root@controller1 ~]# su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova
[root@controller1 ~]# su -s /bin/sh -c “nova-manage cell_v2 create_cell –name=cell1 –verbose” nova
[root@controller1 ~]# su -s /bin/sh -c “nova-manage db sync” nova

List Nova Cell

[root@controller1 ~]# nova-manage cell_v2 list_cells
+——-+————————————–+—————————————–+————————————————-+
Name UUID Transport URL Database Connection
+——-+————————————–+—————————————–+————————————————-+
cell0 00000000-0000-0000-0000-000000000000 none:/ mysql+pymysql://nova:****@controller/nova_cell0
cell1 b55310bc-6d58-4c8d-9b7c-014b77cd48ac rabbit://openstack:****@controller:5673 mysql+pymysql://nova:****@controller/nova
+——-+————————————–+—————————————–+————————————————-+

Replace Default IP

[root@controller1 ~]# sed -i ‘s/8778/9778/‘ /etc/httpd/conf.d/00-nova-placement-api.conf
[root@controller1 ~]# systemctl restart httpd

Configure HA With HAProxy

[root@controller1 ~]# echo ‘

##nova_compute
listen nova_compute_api_cluster
bind controller:8774
balance source
option tcpka
option httpchk
option tcplog
server controller1 controller1:8774 check inter 2000 rise 2 fall 5
server controller2 controller2:8774 check inter 2000 rise 2 fall 5
server controller3 controller3:8774 check inter 2000 rise 2 fall 5
#Nova-api-metadata
listen Nova-api-metadata_cluster
bind controller:8775
balance source
option tcpka
option httpchk
option tcplog
server controller1 controller1:8775 check inter 2000 rise 2 fall 5
server controller2 controller2:8775 check inter 2000 rise 2 fall 5
server controller3 controller3:8775 check inter 2000 rise 2 fall 5
#nova_placement
listen nova_placement_cluster
bind controller:8778
balance source
option tcpka
option tcplog
server controller1 controller1:9778 check inter 2000 rise 2 fall 5
server controller2 controller2:9778 check inter 2000 rise 2 fall 5
server controller3 controller3:9778 check inter 2000 rise 2 fall 5
‘>>/etc/haproxy/haproxy.cfg
[root@controller1 ~]# ‘
[root@controller1 ~]# systemctl restart haproxy.service

netstat -antpgrep haproxy
netstat -antpegrep ‘8774877587786080’

Start Nova Service

[root@controller ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller ~]# systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller ~]# systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

List Nova Status

[root@controller1 ~]# openstack catalog list
+———–+———–+—————————————–+
Name Type Endpoints
+———–+———–+—————————————–+
glance image RegionOne
internal: http://controller:9292
RegionOne
admin: http://controller:9292
RegionOne
public: http://controller:9292

nova compute RegionOne
public: http://controller:8774/v2.1
RegionOne
admin: http://controller:8774/v2.1
RegionOne
internal: http://controller:8774/v2.1

placement placement RegionOne
admin: http://controller:8778
RegionOne
internal: http://controller:8778
RegionOne
public: http://controller:8778

neutron network RegionOne
admin: http://controller:9696
RegionOne
public: http://controller:9696
RegionOne
internal: http://controller:9696

keystone identity RegionOne
admin: http://controller:35357/v3/
RegionOne
internal: http://controller:5000/v3/
RegionOne
public: http://controller:5000/v3/

+———–+———–+—————————————–+
[root@controller1 ~]# nova-status upgrade check
+——————————————————————–+
Upgrade Check Results
+——————————————————————–+
Check: Cells v2
Result: Success
Details: No host mappings or compute nodes were found. Remember to
run command ‘nova-manage cell_v2 discover_hosts’ when new
compute hosts are deployed.
+——————————————————————–+
Check: Placement API
Result: Success
Details: None
+——————————————————————–+
Check: Resource Providers
Result: Success
Details: There are no compute resource providers in the Placement
service nor are there compute nodes in the database.
Remember to configure new compute nodes to report into the
Placement service. See
http://docs.openstack.org/developer/nova/placement.html
for more details.
+——————————————————————–+
[root@controller1 ~]# openstack compute service list
+—-+——————+————-+———-+———+——-+—————————-+
ID Binary Host Zone Status State Updated At
+—-+——————+————-+———-+———+——-+—————————-+
15 nova-conductor controller1 internal enabled up 2017-12-19T09:02:58.000000
18 nova-scheduler controller1 internal enabled up 2017-12-19T09:02:56.000000
21 nova-consoleauth controller1 internal enabled up 2017-12-19T09:02:59.000000
27 nova-consoleauth controller2 internal enabled up 2017-12-19T09:03:04.000000
30 nova-conductor controller2 internal enabled up 2017-12-19T09:03:03.000000
39 nova-scheduler controller2 internal enabled up 2017-12-19T09:02:57.000000
42 nova-consoleauth controller3 internal enabled up 2017-12-19T09:03:04.000000
45 nova-conductor controller3 internal enabled up 2017-12-19T09:03:05.000000
54 nova-scheduler controller3 internal enabled up 2017-12-19T09:02:59.000000
57 nova-compute compute01 nova enabled up 2017-12-19T09:02:59.000000
+—-+——————+————-+———-+———+——-+—————————-+

Install On Other Controller Nodes

[root@controller2 ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api -y

[root@controller2 ~]# rsync -avzP -e ‘ssh -p 22’ controller1:/etc/nova/* /etc/nova/
[root@controller2 ~]# rsync -avzP -e ‘ssh -p 22’ controller1:/etc/httpd/conf.d/00-nova-placement-api.conf /etc/httpd/conf.d/
[root@controller2 ~]# rsync -avzP -e ‘ssh -p 22’ controller1:/etc/haproxy/* /etc/haproxy/

[root@controller2 ~]# sed -i ‘1,9s/controller1/controller2/‘ /etc/nova/nova.conf
[root@controller3 ~]# sed -i ‘1,9s/controller1/controller3/‘ /etc/nova/nova.conf

[root@controller2 ~]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller2 ~]# systemctl restart openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller2 ~]# systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service

[root@controller2 ~]# systemctl restart httpd haproxy

Discover New Compute Node

[root@controller1 ~]# su -s /bin/sh -c “nova-manage cell_v2 discover_hosts –verbose” nova
Found 2 cell mappings.
Skipping cell0 since it does not contain hosts.
Getting compute nodes from cell ‘cell1’: b55310bc-6d58-4c8d-9b7c-014b77cd48ac
Found 0 unmapped computes in cell: b55310bc-6d58-4c8d-9b7c-014b77cd48ac
[root@controller1 ~]# openstack compute service list
+—-+——————+————-+———-+———+——-+—————————-+
ID Binary Host Zone Status State Updated At
+—-+——————+————-+———-+———+——-+—————————-+
15 nova-conductor controller1 internal enabled up 2017-12-19T09:28:08.000000
18 nova-scheduler controller1 internal enabled up 2017-12-19T09:28:16.000000
21 nova-consoleauth controller1 internal enabled up 2017-12-19T09:28:10.000000
27 nova-consoleauth controller2 internal enabled up 2017-12-19T09:28:15.000000
30 nova-conductor controller2 internal enabled up 2017-12-19T09:28:13.000000
39 nova-scheduler controller2 internal enabled up 2017-12-19T09:28:17.000000
42 nova-consoleauth controller3 internal enabled up 2017-12-19T09:28:15.000000
45 nova-conductor controller3 internal enabled up 2017-12-19T09:28:15.000000
54 nova-scheduler controller3 internal enabled up 2017-12-19T09:28:09.000000
57 nova-compute compute01 nova enabled up 2017-12-19T09:28:10.000000
60 nova-compute compute02 nova enabled up 2017-12-19T09:28:16.000000
+—-+——————+————-+———-+———+——-+—————————-+