Expanding a FlashArray Volume and LVM Storage in Proxmox VE

Proxmox

Audience
Public
Source Type
Documentation

This article describes how to grow the usable capacity of a Proxmox VE storage volume that is backed by an Everpure™ FlashArray™.

  • Root or sudo CLI access to every Proxmox node that maps the volume.

  • Administrative access to the FlashArray, through either the purevol CLI or the FlashArray GUI.

  • The volume is already connected and in use as LVM. (Not LVM-thin : Thin pools use a different capacity model and are out of scope for this procedure).

  • The transport protocol in use is known (NVMe-TCP, iSCSI, or Fibre Channel): The rescan command differs for each protocol.

  • For shared or clustered storage, a list of all nodes that have the volume mapped.

  • Confirm the new target size. Resize is increase-only.

This procedure moves outward from the array to the guest: Resize the volume on the FlashArray, rescan the device on each Proxmox host, then extend the LVM stack (physical volume → volume group → logical volume) and, where applicable, the filesystem or VM disk.

The entire flow is online and non-disruptive. The FlashArray resize is instant, the host rescan does not interrupt I/O, and both ext4 and XFS can be grown while mounted. No reboot or downtime is required at any stage.

FlashArray volumes are increase-only: Capacity can be added but a volume cannot be shrunk. Confirm the target size before applying the change.

  1. Resize the volume on the FlashArray to its new size by running the following command from the FlashArray CLI:
    purevol setattr --size <new-size> <volume-name>
    To grow a volume to 4 TiB, enter the following command:
    purevol setattr --size 4T proxmox-lvm-vol01

    Alternatively, in the FlashArray GUI, open Storage > Volumes, select the volume, and choose Edit > Resize.

  2. Rescan the device on Proxmox hosts by completing the following steps:
    1. Run the rescan on every node that maps the volume, using the specific command for the transport protocol, as shown in the following examples:

      NVMe-TCP

      nvme ns-rescan /dev/nvme<X>

      iSCSI

      iscsiadm -m node --rescan
      echo "- - -" > /sys/class/scsi_host/host*/scan

      Fibre Channel

      echo "1" > /sys/class/scsi_host/host*/scan
    2. After rescanning, confirm that the host sees the new size. For multipath devices, refresh the map so the new size propagates:
      lsblk
      multipath -ll
      multipath -r

      `multipath -r` forces a size refresh on the multipath device. Do not proceed to step 3 until `lsblk` / `multipath -ll` reports the new capacity. If `pvresize` later shows no change, it is almost always because the host-side rescan did not complete.

  3. Extend the LVM stack by completing the following steps:
    1. On one node, grow the physical volume to fill the resized device, then extend the logical volume:
      pvresize /dev/<device path>

      `pvresize` grows the PV—and therefore the VG—into the newly available space.

    2. When the storage is LVM used for VM disk images, the logical volume has no filesystem. After extending the LV, resize the individual VM disk, or the added space is simply unused:
      qm resize <vmid> <disk> +100G

      You can also resize the disk from the Proxmox GUI. Under VM > Hardware, select the disk, then go to Disk Action > Resize.

  4. Refresh and verify across the cluster nodes by completing the following steps:
    1. For shared or clustered LVM, make the other nodes aware of the new size:
      pvscan --cache
      vgchange -ay
    2. If the Proxmox GUI still shows the old size after the LVM layer has been updated, the status daemon is holding a stale value. Restart it on the affected node:
      systemctl restart pvestatd
    3. Confirm the final capacity on each node:
      pvs
      vgs
      lvs
      df -h        # for filesystem-backed LVs

      All nodes should report the new size, and the additional capacity should be available to guests.

The following section provides troubleshooting information for this procedure.

`pvresize` reports no change in size
The host-side rescan in step 2 did not complete. Re-run the protocol-specific rescan, then `multipath -r`, and confirm that `lsblk`/`multipath -ll` shows the new size before retrying `pvresize`.
GUI shows a stale (old) size
Restart the status daemon on the node: `systemctl restart pvestatd`.
New size not visible on other cluster nodes
Run `pvscan --cache` then `vgchange -ay` on each node.
Note: See KB0022807 (LVM volume not visible on other Proxmox nodes).
Added space not usable inside a VM
For raw LVM image storage, the LV was extended but the VM disk was not. Resize the disk with `qm resize` or the GUI, then grow the guest's filesystem from within the VM.
Resize appears to be rejected on the FlashArray
Volumes are increase-only—confirm the new size is larger than the current size.