nova/doc/source/aggregates.rst
Joe Gordon a1e8fc6dd9 Update docs layout
* Explain these docs are for trunk (copied from ironic)
* All the docs in this repo are meant to be developer docs, so having a
  devref inside of the docs is redundant and just makes the docs more
  complicated to navigate. Move everything out of the devref folder and
  link to everything from main index.
* Move man pages into separate section. The man pages are pretty sparse
* right now, we should either make them useful or just delete them
* Remove dead docs from unused_docs list in doc/source/conf.py
* Shuffle docs landing page, move common referees to the top (API,
  hypervisor support matrix), Add a introduction section and more. The
  hope is the updated layout makes this document easier to navigate.
* Use maxdepth of 1
* Rename a few sections with what are hopefully better names

The next step is to prune out outdated documents and further cleanup
this page.

Change-Id: Iff453e47ccc902a0e72b1a5f6ce1ee939ff3a1a0
2015-05-15 10:47:18 -07:00

4.7 KiB

Host Aggregates

Host aggregates can be regarded as a mechanism to further partition an availability zone; while availability zones are visible to users, host aggregates are only visible to administrators. Host aggregates started out as a way to use Xen hypervisor resource pools, but has been generalized to provide a mechanism to allow administrators to assign key-value pairs to groups of machines. Each node can have multiple aggregates, each aggregate can have multiple key-value pairs, and the same key-value pair can be assigned to multiple aggregate. This information can be used in the scheduler to enable advanced scheduling, to set up xen hypervisor resources pools or to define logical groups for migration.

Xen Pool Host Aggregates

Originally all aggregates were Xen resource pools, now an aggregate can be set up as a resource pool by giving the aggregate the correct key-value pair.

You can use aggregates for XenServer resource pools when you have multiple compute nodes installed (only XenServer/XCP via xenapi driver is currently supported), and you want to leverage the capabilities of the underlying hypervisor resource pools. For example, you want to enable VM live migration (i.e. VM migration within the pool) or enable host maintenance with zero-downtime for guest instances. Please, note that VM migration across pools (i.e. storage migration) is not yet supported in XenServer/XCP, but will be added when available. Bear in mind that the two migration techniques are not mutually exclusive and can be used in combination for a higher level of flexibility in your cloud management.

Design

The OSAPI Admin API is extended to support the following operations:

  • Aggregates
    • list aggregates: returns a list of all the host-aggregates (optionally filtered by availability zone)
    • create aggregate: creates an aggregate, takes a friendly name, etc. returns an id
    • show aggregate: shows the details of an aggregate (id, name, availability_zone, hosts and metadata)
    • update aggregate: updates the name and availability zone of an aggregate
    • set metadata: sets the metadata on an aggregate to the values supplied
    • delete aggregate: deletes an aggregate, it fails if the aggregate is not empty
    • add host: adds a host to the aggregate
    • remove host: removes a host from the aggregate
  • Hosts
    • start host maintenance (or evacuate-host): disallow a host to serve API requests and migrate instances to other hosts of the aggregate
    • stop host maintenance: (or rebalance-host): put the host back into operational mode, migrating instances back onto that host

Using the Nova CLI

Using the nova command you can create, delete and manage aggregates. The following section outlines the list of available commands.

Usage

* aggregate-list                                                    Print a list of all aggregates.
* aggregate-create         <name> <availability_zone>               Create a new aggregate with the specified details.
* aggregate-delete         <id>                                     Delete the aggregate by its id.
* aggregate-details        <id>                                     Show details of the specified aggregate.
* aggregate-add-host       <id> <host>                              Add the host to the specified aggregate.
* aggregate-remove-host    <id> <host>                              Remove the specified host from the specified aggregate.
* aggregate-set-metadata   <id> <key=value> [<key=value> ...]       Update the metadata associated with the aggregate.
* aggregate-update         <id> <name> [<availability_zone>]        Update the aggregate's name and optionally availability zone.

* host-list                                                         List all hosts by service
* host-update              --maintenance [enable | disable]         Put/resume host into/from maintenance.