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.