Simple Provisioning Script to Create Multiple Volumes and Adding to a PGroup

Got this question today that a customer was looking for a provisioning script that allowed them to create several hundred volumes with assigned prefixes and then add them to a Protection Group to help them scale out a deployment.

The below script helps with that workflow and provides a basis for other feature additions.


  • FlashArray IP/Name
  • Credentials, this can be automated using a previous blog post here.
  • Customer prefix, eg. XYZCorp
  • Volume size (GB)
  • # of volumes to create


$FlashArray = Read-Host 'FlashArray IP/Name'
$EndPoint = New-PfaArray -EndPoint $FlashArray -Credentials (Get-Credential) -IgnoreCertificateError
$CustomerPrefix = Read-Host 'Customer Prefix'
$VolumeSize = Read-Host 'Volume Size (GB)'
$NumberOfVolumes = Read-Host 'Number of Volumes to create'

$Volumes = @()
for($i = 1; $i -le $NumberOfVolumes; $i++){
    New-PfaVolume -Array $EndPoint -VolumeName "$CustomerPrefix-Vol$i" -Unit G -Size $VolumeSize
    $Volumes += "$CustomerPrefix-Vol$i"
$Volumes -join ","

$AssigntoCustomerPGroup = Read-Host "Assign to $CustomerPrefix-PGroup (Y/N)"
if ($AssigntoCustomerPGroup.ToUpper() -eq 'Y') {
    New-PfaProtectionGroup -Array $EndPoint -Name "$CustomerPrefix-PGroup" -Volumes $Volumes
else {
    Write-Warning 'No Protection Group created.'

Hope this is useful!


Add Comment

Required fields are marked *. Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.