> For the complete documentation index, see [llms.txt](https://docs.storware.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.storware.eu/protecting-storage-providers/storage-providers/everpure-storage-integration-for-openstack.md).

# Everpure storage integration for OpenStack

### Overview

Native Pure Storage integration extends the OpenStack **Disk Attachment with Generic Incremental** backup strategy with array-native block tracking for full and incremental backups of volumes stored on Pure Storage arrays.

Storware Backup & Recovery retrieves allocated or changed block information directly through the Pure Storage REST API. The existing OpenStack snapshot workflow remains unchanged.

### Requirements and Limitations

* The OpenStack environment must use the **Disk Attachment with Generic Incremental** backup strategy.
* A **Pure Storage Provider** must be configured and assigned to the appropriate OpenStack storage.
* The integration supports **Pure Storage REST API version 2.54**. The array must support this API version.
* The Pure Storage Provider is used only as the underlying storage integration for OpenStack backups. Standalone inventory synchronization and direct backup or restore of Pure Storage volumes through the Storage Provider are not supported.
* The Pure Storage integration requires only a user account with read-only permissions.

### Network Connectivity

The Storware Node performing backup operations must have HTTPS access to the Pure Storage REST API endpoint.

| Source        | Destination                            | Port    | Purpose                                            |
| ------------- | -------------------------------------- | ------- | -------------------------------------------------- |
| Storware Node | Pure Storage array management endpoint | TCP 443 | HTTPS communication with the Pure Storage REST API |

## Create a Pure Storage Provider

1. Go to **Storage → Storage Providers** and click **Create**.
2. Select **Pure** as the Storage Provider type.
3. Complete the required fields:

| Field     | Description                                                                                                                                       |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**  | Display name of the Storage Provider.                                                                                                             |
| **URL**   | Pure Storage REST API endpoint, in the format `http(s)://{host}/api/{api_version}`. For API version 2.54, use `https://<ARRAY_ADDRESS>/api/2.54`. |
| **Token** | API token used to authenticate with the Pure Storage REST API.                                                                                    |

4. Save the configuration.

#### Provider Validation

Before saving the provider, Storware Backup & Recovery:

1. Validates the URL format.
2. Connects to the configured Pure Storage endpoint.
3. Retrieves the API versions supported by the array using `GET /api/api_version`.
4. Checks that the configured API version is supported by both the array and the installed Storware Backup & Recovery version.

If any validation step fails, the provider cannot be created. Correct the configuration or connectivity issue and try again.

### Assign the Provider to OpenStack Storage

Creating the Pure Storage Provider does not enable the integration by itself. Assign it to the OpenStack storage that represents the Pure-backed volume type:

1. Open the appropriate **OpenStack Virtualization Provider**.
2. Go to the **Storage** tab.
3. Edit the storage corresponding to the Pure-backed volume type.
4. Select the previously created **Pure Storage Provider**.
5. Save the configuration.

All disks associated with that OpenStack storage will use the assigned Pure Storage Provider during native Pure backup operations.

### Full Backups

Full backups follow the standard **Disk Attachment with Generic Incremental** workflow. The integration retrieves allocated block information directly from the Pure Storage REST API to identify the blocks to include in the backup.

The OpenStack snapshot workflow remains unchanged.

### Incremental Backups

Incremental backups follow the same workflow, using the Pure Storage REST API to identify blocks changed between two snapshots.

This block information determines which data must be included in the incremental backup. The OpenStack snapshot workflow remains unchanged.
