# Configuring Multiple OpenStack Regions

Platform9 Managed OpenStack enables administrators to manage multiple *regions* as part of their OpenStack cloud infrastructure. Datacenter resources in separate *regions* are managed by distinct sets of OpenStack management services (Nova/Glance/Cinder, etc.) but share a single Keystone identity server, and thus a single set of user, tenant and role settings.

An administrator might choose to add additional regions

* To manage geographically separate datacenters. Platform9 will try to locate the controller software near your resources to help minimize latency and improve performance.
* To create separated datacenters for the purpose of disaster recovery.
* To manage distinct virtualization technologies. An administrator with both QEMU/KVM and VMware vSphere resources might manage each as a separate region.

In version 1.5, users will notice a new menu at the top of the Platform9 user interface that allows them to select from a list of regions. Choosing a particular region gives them control over the resources managed by that region's services.

<figure><img src="https://2491133324-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTp3vmrOuO3dQilOzN2fE%2Fuploads%2Fgit-blob-84be51444d13a2df701d3b0cd4e89d6e09b0c7f9%2F1605561624.png?alt=media" alt=""><figcaption></figcaption></figure>

Note that hosts, images, instances, networks and cinder volumes are all secluded within the region. Resources from a particular region are only available when that region is selected.

**Regions and the Keystone Service Catalog**

When using the OpenStack command line clients, it's important to understand how regions help the clients (WebUI or command-line) locate the various services. The Keystone identity service assists with connection to cloud management services by maintaining a catalog of the endpoints for each of the other services. Each endpoint listed in the Keystone service catalog contains:

* The service type (compute, image, volume, orchestration etc)
* The service name (Nova, Glance, Cinder, Heat, etc)
* The name of the region in which the service operates.
* The HTTP REST endpoint URL.

Given the Keystone service catalog, a client can find a URL for the service and region he wishes to use.

In general, a client wishing to send a request to one of the management services follows this sequence:

* Connect to keystone and request an authentication token.
* Get the service catalog.
* Find the endpoint of the service in the desired region.
* Connect to the endpoint and make the request.

For multi-region clouds, when using the OpenStack command line clients, it will be necessary to include the region name in the command line. For example, to get a list of instances in region `williamsport-pa`, the Nova client must be invoked as follows:

{% tabs %}
{% tab title="OpenStack" %}

```bash
nova --os-region williamport-pa list
```

{% endtab %}
{% endtabs %}

This tells Nova to list the instances managed by the nova-api service in the `williamsport-pa` region. Other OpenStack command line clients have a similar command line setting to select the region for the call.
