# Pure Storage Configurations

### the Overview <a href="#overview" id="overview"></a>

Pure Storage FlashArray systems deliver all-flash storage with inline deduplication, compression, and replication. <code class="expression">space.vars.product\_name</code> integrates with these arrays through the Pure Storage driver, supporting both iSCSI and Fibre Channel protocols.

### Prerequisites

Before you configure the Pure Storage iSCSI backend, complete these requirements:

* Pure Storage FlashArray running Purity//FA 4.8 or later.
* Create a Pure Storage user account with admin rights for Platform9. This user must have permissions to create, delete, and manage volumes, snapshots, and host connections.
* Generate an API token for the Platform9 user account on the Pure Storage array.
* Create a Pure Storage host group for all Platform9 hypervisors. Platform9 uses the host group for volume mapping and access control.
* Configure iSCSI connectivity between hosts and the array. Verify hosts can reach the Pure Storage iSCSI network.

{% hint style="info" %}
Required packages (`py-pure-client`, `multipath-tools`, `sysfsutils`, `sg3-utils`) are automatically installed and configured by Platform9 during host configuration.
{% endhint %}

### API token authentication

Pure Storage arrays require API token authentication for Platform9 integration.

**To generate an API token:**

1. Create a Pure Storage user account with admin rights equivalent to the default `pureuser` account.
2. Log in to the Pure Storage array management interface.
3. Navigate to **Settings > Users**.
4. Select the admin user account created for Platform9.
5. Generate an API token for this user.
6. Copy the API token value for use in the volume backend configuration.

{% hint style="info" %}
Required permissions&#x20;

The Pure Storage user account must have full admin rights to create, delete, and manage volumes, snapshots, and host connections. Without these permissions, volume operations will fail.
{% endhint %}

### Volume backend configuration

```ini
[pure_iscsi_backend]
volume_driver = cinder.volume.drivers.pure.PureISCSIDriver
volume_backend_name = pure_iscsi
san_ip = <PURE_MGMT_IP>
pure_api_token = <PURE_API_TOKEN>
pure_iscsi_cidr = <ISCSI_NETWORK_CIDR>
use_multipath_for_image_xfer = true
pure_automatic_max_oversubscription_ratio = true
```

### Configuration parameters

* **volume\_backend\_name**: User-defined name for this storage backend. Choose a descriptive name that identifies this Pure Storage backend in your environment.
* **pure\_api\_token**: Authentication token generated from the Pure Storage array for the Platform9 user account. Token-based authentication is more secure than username/password authentication and is the recommended method.
* **pure\_iscsi\_cidr**: Network CIDR for the iSCSI storage network (for example, `10.0.0.0/24`). This defines which network interfaces the driver uses for iSCSI connectivity.
* **use\_multipath\_for\_image\_xfer**: Enables multipath for image transfers, improving reliability during volume creation from images.
* **pure\_automatic\_max\_oversubscription\_ratio**: Enables automatic calculation of the oversubscription ratio based on available array capacity. When enabled, Pure Storage dynamically manages thin provisioning ratios.

### Compute multipath configuration

For FC and iSCSI multipath support, configure hypervisor role on all hypervisor hosts:

```ini
# /opt/pf9/etc/nova/conf.d/nova_override.conf

[libvirt]
# For iSCSI multipath
iscsi_use_multipath = true

# For Fibre Channel multipath
volume_use_multipath = true
```

This configuration enables the compute service to properly discover and use multipath devices when attaching volumes to instances.

### Optional parameters

**Manual oversubscription ratio:**

If you need to manually control the oversubscription ratio instead of using automatic calculation, add:

```ini
# Manual oversubscription ratio
max_over_subscription_ratio = 20
```

**Replication configuration:**

If using Pure ActiveCluster for replication, add:

```ini
# Replication configuration (if using Pure ActiveCluster)
replication_device = backend_id:<TARGET_ARRAY_NAME>,san_ip:<TARGET_MGMT_IP>,api_token:<TARGET_API_TOKEN>
```

### Configuration notes

* Data-reduction features (deduplication and compression) are automatic and inline. No additional configuration is required.
* Pure Storage supports both synchronous and asynchronous replication when properly configured.
* Snapshots are instant and space-efficient, enabling rapid backup and recovery workflows.
* The driver automatically collects performance metrics from the array. Operations continue normally even if metric collection is temporarily unavailable.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.platform9.com/private-cloud-director/2025.10/storage/block-storage/volume-backend-configuration-examples/pure-storage-configurations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
