Separación de la nube – Hosts agrupados y Zonas de disponibilidad (Nova)

Estos terminos estan íntimamente ligados, incluso en la manera en que son configurados. Ambos responden a la necesidad de agrupar lógicamente los nodos de computo y se diferencian en el nivel de acceso o visibilidad para cada uno.

Host agrupado

Asociación que ofrece a los administradores de la nube agrupar lógicamente diferentes nodos de computo de tal manera que se facilite algunas tareas para su administración y mantenimiento. Generalmente esta información sirve para la toma de decisiones del nova-scheduler.

A lo largo de este ejemplo, se utilizara un host agrupado llamado SSD_DC_P3608 para representar un grupo de nodos de computo que tengan una característica del disco duro en común.

stack@devstack:~$ openstack aggregate create SSD_DC_P3608
+-------------------+----------------------------+
| Field             | Value                      |
+-------------------+----------------------------+
| availability_zone | None                       |
| created_at        | 2017-01-26T05:30:08.257388 |
| deleted           | False                      |
| deleted_at        | None                       |
| id                | 1                          |
| name              | SSD_DC_P3608               |
| updated_at        | None                       |
+-------------------+----------------------------+

Lo siguiente a realizar es configurar las propiedades que diferenciaran este grupo y seran utilizadas por el servicio de nova-scheduler durante la toma de decisiones. Ademas de agregar el nodo de computo al grupo.

stack@devstack:~$ openstack aggregate set --property ssd=true SSD_DC_P3608
stack@devstack:~$ nova-manage host list
host                            zone           
0.0.0.0                         internal       
devstack                        internal
stack@devstack:~$ openstack aggregate add host SSD_DC_P3608 devstack
+-------------------+----------------------------+
| Field             | Value                      |
+-------------------+----------------------------+
| availability_zone | None                       |
| created_at        | 2017-01-26T05:30:08.000000 |
| deleted           | False                      |
| deleted_at        | None                       |
| hosts             | [u'devstack']              |
| id                | 1                          |
| metadata          | {u'ssd': u'true'}          |
| name              | SSD_DC_P3608               |
| updated_at        | None                       |
+-------------------+----------------------------+

El ultimo paso es asociar la propiedad que diferencia al host agrupado con el tipo de flavor que podría seleccionar el usuario de la nube.

stack@devstack:~$ openstack flavor set m1.tiny --property ssd=true
stack@devstack:~$ openstack flavor show m1.tiny
+----------------------------+------------+
| Field                      | Value      |
+----------------------------+------------+
| OS-FLV-DISABLED:disabled   | False      |
| OS-FLV-EXT-DATA:ephemeral  | 0          |
| access_project_ids         | None       |
| disk                       | 1          |
| id                         | 1          |
| name                       | m1.tiny    |
| os-flavor-access:is_public | True       |
| properties                 | ssd='true' |
| ram                        | 512        |
| rxtx_factor                | 1.0        |
| swap                       |            |
| vcpus                      | 1          |
+----------------------------+------------+

El usuario de la nube no percibira la existencia de host agrupados ni las propiedades definidas en el flavor. Aunque de antemano sabemos que internamente el nova-scheduler a traves del AggregateInstanceExtraSpecsFilter tomara en cuenta la metadata definida el flavor m1.tiny durante la creación de la instancia, y considerara solo los nodos de computo que pertenezcan a el host aggregate SSD_DC_P3608. Nota: AggregateInstanceExtraSpecsFilter (Current Implementation) vs AggregateInstanceTypeFilter (New Implementation).

Zonas de disponibilidad

Perspectiva de OpenStack Compute(Nova)

Este termino refiere al hecho de compartir un host aggregate a los usuarios de la nube para hacer uso de sus características.

stack@devstack:~$ openstack aggregate set --zone fast-io SSD_DC_P3608
stack@devstack:~$ openstack availability zone list
+-----------+-------------+
| Zone Name | Zone Status |
+-----------+-------------+
| internal  | available   |
| fast-io   | available   |
| nova      | available   |
| nova      | available   |
| nova      | available   |
+-----------+-------------+

Por ultimo, cabe mencionar que es posible administrar los host aggregates y zonas de disponibilidad desde la interfaz web. Utilizando las credenciales de administrador en la pestaña de Host Aggregates.