> For the complete documentation index, see [llms.txt](https://docs.platform9.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform9.com/private-cloud-director/2026.4/storage/block-storage/volume-backend-configuration-examples/infinidat-infinibox-storage-configurations.md).

# Infinidat InfiniBox Storage Configurations

Infinidat InfiniBox storage systems provide enterprise-grade block storage with high availability and performance. Platform9 <code class="expression">space.vars.product\_name</code> integrates with InfiniBox arrays through the Infinidat driver, supporting both iSCSI and Fibre Channel (FC) connectivity for volume operations, including provisioning, snapshots, cloning, and live migration.

{% hint style="info" %}
Boot from SAN is not supported

Infinidat InfiniBox is supported as a block storage backend for data volumes attached to running instances. It is not supported as a boot volume backend.

Booting an instance directly from an InfiniBox volume (boot from volume) is not supported. The InfiniBox WWN (World Wide Name) presentation behavior causes volume attachment to fail during instance boot.

Use local (ephemeral) storage for instance root disks, or a different supported backend for boot from volume. This limitation applies only to instance boot volumes. It does not apply to the hypervisor host operating system, and it does not affect data volumes on InfiniBox.
{% endhint %}

Select a storage protocol below to view the complete configuration steps for your environment.

{% tabs %}
{% tab title="Infinidat InfiniBox - iSCSI" %}
InfiniBox arrays provide block storage over IP networks through iSCSI, offering flexible connectivity using standard Ethernet infrastructure.

**Prerequisites**

Before you configure the Infinidat iSCSI backend, complete these requirements:

* Administrative access to the InfiniBox storage array management interface.
* Create a storage pool on the InfiniBox array. Platform9 provisions all volumes from the specified pool.
* Create a dedicated user account with pool administrator privileges on the InfiniBox array. This account requires permissions to create, delete, and manage volumes within the designated pool.
* Configure one or more iSCSI network spaces on the InfiniBox array. Network spaces define the iSCSI portal IPs that hosts use to access storage. Refer to InfiniBox documentation for network space configuration procedures.
* Ensure each node has a unique IQN (iSCSI Qualified Name). No two nodes should share the same IQN.
* Configure all iSCSI initiators to automatically log in to targets during node boot.
* For multipath configurations, use two Ethernet ports with IP addresses from the same subnet to connect to the storage target.
* Install required packages on all hypervisor hosts and block-storage hosts:

```bash
apt-get install open-iscsi multipath-tools
```

{% hint style="info" %}
The `infinisdk` Python package is automatically installed and managed by Platform9's block storage service. Manual installation is not required.
{% endhint %}

* Verify network connectivity between Platform9 hosts and the InfiniBox management interface and iSCSI network spaces.

**Configure multipathing**

Configure the multipath daemon on all hypervisor hosts and block-storage hosts. Create or update `/etc/multipath.conf`:

```ini
defaults {
    user_friendly_names no
    find_multipaths yes
}

blacklist {
    wwid <WWID_OF_LOCAL_DISK>
}
```

Replace `<WWID_OF_LOCAL_DISK>` with your local disk's WWID. Find the WWID using:

```bash
/lib/udev/scsi_id -gud /dev/sda
```

Restart the multipath daemon:

```bash
sudo systemctl restart multipath-tools
```

For iSCSI multipath support, add the following to `/opt/pf9/etc/nova/conf.d/nova_override.conf` and restart `pf9-ostackhost`:

```ini
[libvirt]
iscsi_use_multipath = true
```

For iSCSI multipath support, add the following to `/opt/pf9/etc/glance/conf.d/glance-api.conf` and restart `pf9-glance-api`:

```ini
[DEFAULT]
cinder_use_multipath = True
```

**Volume backend configuration**

Infinidat-specific configuration parameters, shown below, are entered in the **Persistent Storage Connectivity** section of the **Cluster Blueprint** in the Private Cloud Director Web UI. These parameters are then automatically propagated to hosts that have the **Block Storage Role** assigned via **Infrastructure > Cluster Hosts**.

```ini
[infinidat_iscsi_backend]
volume_driver = cinder.volume.drivers.infinidat.InfiniboxVolumeDriver
volume_backend_name = infinidat_iscsi
san_ip = <INFINIBOX_MANAGEMENT_IP>
san_login = <USERNAME>
san_password = <PASSWORD>
infinidat_pool_name = <POOL_NAME>
infinidat_iscsi_netspaces = <NETSPACE_NAME_LIST>
infinidat_storage_protocol = iscsi
driver_use_ssl = false
suppress_requests_ssl_warnings = true
san_thin_provision = true
infinidat_use_compression = false
use_multipath_for_image_xfer = true
enforce_multipath_for_xfer = true
image_volume_cache_enabled = true
image_volume_cache_max_count = 50
image_volume_cache_max_size_gb = 200
```

**Configuration parameters**

* **san\_ip** (Required): Management IP address of the InfiniBox array. Used for all API communication with the storage system.
* **san\_login** (Required): Username for InfiniBox authentication. Must have pool administrator privileges.
* **san\_password** (Required): Password for InfiniBox authentication.
* **infinidat\_pool\_name** (Required): Name of the storage pool on the InfiniBox array for volume provisioning.
* **infinidat\_iscsi\_netspaces** (Required): Comma-separated list of iSCSI network space names for iSCSI portal IPs connectivity.
* **infinidat\_storage\_protocol** (Required): Storage protocol type, set to `iscsi`.
* **driver\_use\_ssl** (Optional): Enables HTTPS for API communication, set to `true` for HTTPS or `false` for HTTP. Default: `false`.
* **suppress\_requests\_ssl\_warnings** (Optional): Suppresses SSL certificate warnings for self-signed certificates. Default: `true`.
* **san\_thin\_provision** (Optional): Enables thin provisioning for volumes, set to `true`. Default: `true`.
* **infinidat\_use\_compression** (Optional): Controls volume compression for new volumes. Default: `false`.
* **use\_multipath\_for\_image\_xfer** (Optional): Enables multipath for image transfers. Default: `true`.
* **enforce\_multipath\_for\_xfer** (Optional): Requires multipath connectivity for volume operations. Default: `true`.
* **image\_volume\_cache\_enabled** (Optional): Enables image-volume caching to reduce transfer time. Default: `true`.
* **image\_volume\_cache\_max\_count** (Optional): Maximum number of cached image volumes. Default: `50`.
* **image\_volume\_cache\_max\_size\_gb** (Optional): Maximum total size of cached image volumes in GB. Default: `200`.

**Image caching limitation**

Image volume caching may not function as expected. VMs may download images independently instead of using cached volumes. Monitor cache usage to verify caching behavior in your environment.

**Configuration notes**

* Compression settings for new volumes inherit from the parent storage pool configuration by default. Use the `infinidat_use_compression` parameter to override pool defaults for all new volumes.
* Multipath is strongly recommended for production environments to provide redundancy and higher availability during storage failures.
* Specify multiple iSCSI network spaces in `infinidat_iscsi_netspaces` for multipath redundancy.
* Verify all iSCSI network space IPs are accessible from hypervisor hosts before configuring the backend.
  {% endtab %}

{% tab title="Infinidat InfiniBox - Fibre Channel" %}
InfiniBox arrays provide high-performance block storage through Fibre Channel connectivity, offering low latency and high throughput for enterprise workloads.

**Prerequisites**

Before you configure the Infinidat Fibre Channel backend, complete these requirements:

* Administrative access to the InfiniBox storage array management interface.
* Create a storage pool on the InfiniBox array. Platform9 provisions all volumes from the specified pool.
* Create a dedicated user account with pool administrator privileges on the InfiniBox array. This account requires permissions to create, delete, and manage volumes within the designated pool.
* Install Fibre Channel HBAs on all hypervisor hosts and block-storage hosts.
* Configure FC zoning between hosts and the InfiniBox array so hosts can discover and access storage LUNs.
* Identify the Fibre Channel target port WWNs on the InfiniBox array that hosts will use to access storage.
* Install required packages on all hypervisor hosts and block-storage hosts:

```bash
apt-get install multipath-tools
```

* Verify network connectivity between Platform9 hosts and the InfiniBox management interface.

**Configure multipathing**

Configure the multipath daemon on all hypervisor hosts and block-storage hosts. Create or update `/etc/multipath.conf`:

```ini
defaults {
    user_friendly_names no
    find_multipaths yes
}

blacklist {
    wwid <WWID_OF_LOCAL_DISK>
}
```

Replace `<WWID_OF_LOCAL_DISK>` with your local disk's WWID. Find the WWID using:

```bash
/lib/udev/scsi_id -gud /dev/sda
```

Restart the multipath daemon:

```bash
sudo systemctl restart multipath-tools
```

**Volume backend configuration**

Infinidat-specific configuration parameters, shown below, are entered in the **Persistent Storage Connectivity** section of the **Cluster Blueprint** in the Private Cloud Director Web UI. These parameters are then automatically propagated to hosts that have the **Block Storage Role** assigned via **Infrastructure > Cluster Hosts**.

```ini
[infinidat_fc_backend]
volume_driver = cinder.volume.drivers.infinidat.InfiniboxVolumeDriver
volume_backend_name = infinidat_fc
san_ip = <INFINIBOX_MANAGEMENT_IP>
san_login = <USERNAME>
san_password = <PASSWORD>
infinidat_pool_name = <POOL_NAME>
infinidat_storage_protocol = fc
driver_use_ssl = false
suppress_requests_ssl_warnings = true
san_thin_provision = true
infinidat_use_compression = false
reserved_percentage = 0
max_over_subscription_ratio = 20
image_volume_cache_enabled = true
image_volume_cache_max_count = 50
image_volume_cache_max_size_gb = 200
```

**Configuration parameters**

* **san\_ip** (Required): Management IP address of the InfiniBox array. Used for all API communication with the storage system.
* **san\_login** (Required): Username for InfiniBox authentication. Must have pool administrator privileges.
* **san\_password** (Required): Password for InfiniBox authentication.
* **infinidat\_pool\_name** (Required): Name of the storage pool on the InfiniBox array for volume provisioning.
* **infinidat\_storage\_protocol** (Required): Storage protocol type, set to `fc`.
* **driver\_use\_ssl** (Optional): Enables HTTPS for API communication. Default: `false`.
* **suppress\_requests\_ssl\_warnings** (Optional): Suppresses SSL certificate warnings for self-signed certificates. Default: `true`.
* **san\_thin\_provision** (Optional): Enables thin provisioning for volumes. Default: `true`.
* **infinidat\_use\_compression** (Optional): Controls volume compression for new volumes. Default: `false`.
* **reserved\_percentage** (Optional): Percentage of backend capacity reserved and not exposed to the scheduler. Default: `0`.
* **max\_over\_subscription\_ratio** (Optional): Maximum allowed over-subscription ratio for thin provisioning. Default: `20`.
* **image\_volume\_cache\_enabled** (Optional): Enables image-volume caching to reduce image transfer time. Default: `true`.
* **image\_volume\_cache\_max\_count** (Optional): Maximum number of cached image volumes. Default: `50`.
* **image\_volume\_cache\_max\_size\_gb** (Optional): Maximum total size of cached image volumes in GB. Default: `200`.

**Configuration notes**

* Compression settings for new volumes inherit from the parent storage pool configuration by default. Use the `infinidat_use_compression` parameter to override pool defaults for all new volumes.
* Multipath is strongly recommended for production environments to provide redundancy and higher availability during storage failures.
  {% endtab %}
  {% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.platform9.com/private-cloud-director/2026.4/storage/block-storage/volume-backend-configuration-examples/infinidat-infinibox-storage-configurations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
