Wednesday, April 13, 2016

Switching to newly added Storage node on RDO Mitaka

UPDATE 04/16/2016
Recently in RDO Blog Ivan Chavero stated [1] :-
  "You know, I think that people think that Packstack is dead because it's not recommended for production use. Only if you really know what you're doing, you should use it in production, but it's not recommended. TripleO  is the recommended stuff for production, and Packstack is for doing the experiments, and proof-of-concept stuff."
END UPDATE

I'm not very humble and I think that I understand very well what I'm doing.
It doesn't mean at all that I underestimate Triple0 power or I am lazy to switch
to new advanced  technique,  I just cannot allow myself i7 5960X, ASUS X99
Deluxe and 64 GB DDR4 RAM as home desktop running 6-7 VMs at a time
with reasonable performance. 

Suppose that your original answer-file been used for Controller/Network +(N)*Compute Node deployment has been updated as follows to separate Storage Node from Controller. Controller has IP 192.169.142.127, Compute has IP 192.169.142.137. Following lines in classic ML2&OVS&VXLAN deployment answer-file are supposed to be updated.

   EXCLUDE_SERVERS=192.169.142.127,192.169.142.137
   . . . . . . .
   CONFIG_UNSUPPORTED=y
   . . . . . . .
   CONFIG_STORAGE_HOST=192.169.142.117
   . . . . . . .  
   CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
   CONFIG_NEUTRON_OVS_TUNNEL_SUBNETS=12.0.0.0/24

As far as updates above are correct new node 192.169.142.117 will be added
to landscape, however endpoints for storage services in keystone database
wouldn't be updated. So before stopping services on Controller keystone
database is supposed to be hacked. Cinder may be tuned manipulating bindings cinder-types to required volume-groupes via cinder.conf on 192.169.142.117.

Proceed as follows :-


[root@ip-192-169-142-127 ~(keystone_admin)]# openstack service list
+----------------------------------+---------------+--------------+
| ID                               | Name          | Type         |
+----------------------------------+---------------+--------------+
| 006561e9e76d451babd166c64db158ad | aodh          | alarming     |
| 26e4d65c5cd0436eafc612cdb3b2c312 | ceilometer    | metering     |
| 3fdd235db27a4bedb9e567bd91cd700b | neutron       | network      |
| 4cff835269044e69911ddcbac8c76304 | cinder        | volume       |
| 57f308c2ef874a53a9425919898f17ec | gnocchi       | metric       |
| 580f54f330ac436ab88c27c1e3ee48b1 | keystone      | identity     |
| 68c17e649e9d4148b19adb2dfe073c58 | nova          | compute      |
| cdf348b7a1824901905c3196855402d3 | novav3        | computev3    |
| da669e2205964332ae4b2efccd546429 | cinderv2      | volumev2     |
| dd3f27372c5941f7a21226ace027447d | Image Service | image        |
| ee6cd3ad36624a7cb028cb022a108a81 | swift         | object-store |
| f14bd0b25fcb4635b628f9a71a007c7f | cinderv3      | volumev3     |
+----------------------------------+---------------+--------------+


*****************************************************************************
Keystone database still contains IP of old Storage Server (Glance)
*****************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user  root --password=7207ae344ed04957  keystone -e "select interface, url from endpoint where service_id =  (select id from service where service.type = 'image');"

+-----------+-----------------------------+
| interface | url                         |
+-----------+-----------------------------+
| admin     | http://192.169.142.127:9292 |
| internal  | http://192.169.142.127:9292 |
| public    | http://192.169.142.127:9292 |
+-----------+-----------------------------+

**************************************************************************
Updating "url" field of endpoint table with IP of new Storage Server
***************************************************************************

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:9292' where  interface ='internal' and  service_id =  (select id from service where service.type = 'image');"

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:9292' where  interface ='public' and  service_id =  (select id from service where service.type = 'image');"

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:9292' where  interface ='admin' and  service_id =  (select id from service where service.type = 'image');"

***************************************
Make sure updates are done
***************************************

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user  root --password=7207ae344ed04957  keystone -e "select interface, url from endpoint where service_id =  (select id from service where service.type = 'image');"

+-----------+-----------------------------+
| interface | url                         |
+-----------+-----------------------------+
| admin     | http://192.169.142.117:9292 |
| internal  | http://192.169.142.117:9292 |
| public    | http://192.169.142.117:9292 |
+-----------+-----------------------------+

*****************************************************************************
Keystone database still contains IP of old Storage Server (Swift)
*****************************************************************************


[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user  root --password=7207ae344ed04957  keystone -e "select interface, url from endpoint where service_id =  (select id from service where service.type = 'object-store');"

+-----------+---------------------------------------------------+
| interface | url                                               |
+-----------+---------------------------------------------------+
| internal  | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| public    | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| admin     | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where  interface ='admin' and  service_id =  (select id from service where service.type = 'object-store');"

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where  interface ='internal' and  service_id =  (select id from service where service.type = 'object-store');"

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user root --password=7207ae344ed04957  keystone -e "update endpoint set   url  = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where  interface ='public' and  service_id =  (select id from service where service.type = 'object-store');"

******************************************
 Make sure updates are done
******************************************

[root@ip-192-169-142-127 ~(keystone_admin)]# mysql  --user  root --password=7207ae344ed04957  keystone -e "select interface, url from endpoint where service_id =  (select id from service where service.type = 'object-store');"

+-----------+---------------------------------------------------+
| interface | url                                             |
+-----------+---------------------------------------------------+
| internal | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| public    | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| admin    | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+


# service httpd restart