I have been asked the question about how do you overwrite a volume using the PowerShell SDK that is connected from a Windows Server a few times so here is how its done!
In this example I have a Windows Server 2016 system that has several volumes connected using Fibre Channel, the same steps apply if you are using iSCSI. The volume that I will be working with is PSRepository. This is an PowerShell Gallery folder that contains .ps1 file.
The steps to perform an overwrite:
(1) Connect to the FlashArray
PS C:\> $FlashArray = New-PfaArray -EndPoint 10.21.8.202 -Credentials (Get-Credential) -IgnoreCertificateError cmdlet Get-Credential at command pipeline position 1 Supply values for the following parameters: Credential
(2) Check the connection to the FlashArray. Optional step, just illustrating here that we have a connection to the FlashArray.
PS C:\> $FlashArray Disposed : False EndPoint : 10.21.8.202 UserName : pureuser ApiVersion : 1.7 Role : ArrayAdmin ApiToken : 58db6abf-1933-553f-1628-0c6e207aba1e
(3) Retrieve the volume. Optional step as I just want to illustrate the volume exists on the FlashArray.
PS C:\> Get-PfaVolumes -Array $FlashArray | Where-Object { $_.name -like '*PS*' } | Format-Table -AutoSize source serial created name size ------ ------ ------- ---- ---- 45084F3508BF4614000111A7 2016-11-02T16:21:05Z PSRepository 268435456000
(4) Create a snapshot of the PSRepository volume. For this example I use the Suffix and set to Overwrite. This is the snapshot we will restore (overwrite) in a few steps.
PS C:\> New-PfaVolumeSnapshots -Array $FlashArray -Sources PSRepository -Suffix Overwrite source : PSRepository serial : 45084F3508BF461400011AC1 created : 2017-05-12T16:51:46Z name : PSRepository.Overwrite size : 268435456000
To prove the overwrite operation takes place I have made copies of the Untitled.ps1 files into the same folder.
(5) Offline the Windows Server volume.
$Volume = Get-PfaVolume -Array $f -Name 'PSRepository' Get-Disk -SerialNumber $Volume.serial | Set-Disk -IsOffline $true
(6) Perform the overwrite operation with the snapshot we named PSRepository.Overwrite
PS C:\> New-PfaVolume -Array $FlashArray -Source PSRepository.OverWrite -VolumeName PSRepository -Overwrite source : PSRepository serial : 45084F3508BF4614000111A7 created : 2017-05-12T16:51:46Z name : PSRepository size : 268435456000
(7) Online the Windows Server volume.
$Volume = Get-PfaVolume -Array $f -Name 'PSRepository' Get-Disk -SerialNumber $Volume.serial | Set-Disk -IsOffline $false
From the screenshot below you can see the the original snapshot has overwritten the volume where we had made copies of the .ps1 files.
Go forth and automate!
Cheers,
Barkz