PowerCLI and VVols Part IV: Correlating a Windows NTFS to a VMDK

My last post in this series was about getting a VVol UUID and figuring out what volume on a FlashArray it is. But what about the step before that? If I have a guest OS file system how do I even figure out what VMDK it is?

There is a basic option, which can potentially be used, which is correlating the bus ID and the unit ID of the device in the guest and matching it to what VMware displays for the virtual disks.

But that always felt to me as somewhat inexact.  What if you accidentally look at the wrong VM object and then do something to a volume you do not mean to? Or the opposite?

Not ideal. Luckily there is a more exact approach. I will focus this particular post on Windows. I will look at Linux in an upcoming one.

Continue reading “PowerCLI and VVols Part IV: Correlating a Windows NTFS to a VMDK”

Detecting what FlashArray VMFS Volumes Have Dead Space

Another UNMAP post, are you shocked? A common question that came up was what volumes have dead space? What datastores should I run UNMAP on?

My usual response was, well it is hard to say. Dead space is introduced when you move a VM or you delete one. The array will not release the space until you either delete the physical volume, overwrite it, or issue UNMAP. Until vSphere 6.5, UNMAP for VMFS was not automatic. You had to run a CLI command to do it. So that leads back to the question, well I have 100 datastores, which ones should I run it on?

So to find out, you need to know two things:

  1. How much space the file system reports as currently being used.
  2. How much space the array is physically storing for the volume hosting that file system.

Continue reading “Detecting what FlashArray VMFS Volumes Have Dead Space”

Deeper detail on using parameters with the FlashArray Python toolkit

Last week I posted about getting started with the Python toolkit, now I wanted to go a little deeper today on using the toolkit beyond connecting/creating a volume. A question I have seen more than once is:

“okay, I understand connecting and getting basic information, but what if I want to pull statistics or more advanced information from the array besides what the default commands? The API glossary for the toolkit doesn’t say explicitly how I can get the information I want”

In short, just because the Python glossary doesn’t explicitly say how to do something or even if you can, it does not mean you can’t. It really depends on what the REST API can do.

Let me explain.

Continue reading “Deeper detail on using parameters with the FlashArray Python toolkit”

Pure Storage Python Toolkit Intro with Windows

Most of my scripting work here at Pure Storage has mostly been via PowerShell or at times Javascript (for like vRO). But I think it is time to get back into Python especially because of the VMware support for it now.

Pure Storage has an automation toolkit that helps get you started managing the FlashArray so you don’t have to deal with the direct REST work in your Python scripts. You can find information about that here:


Continue reading “Pure Storage Python Toolkit Intro with Windows”

FlashArray Host Group Creation PowerShell Script for VMware Clusters

New script to automatically create hosts groups on FlashArrays based on VMware ESXi clusters. This is a script I’ve had out for awhile but only recently revisited and realized it was way out of date and frankly, not very good. So I trashed most of it and re-wrote it. You can find it here:


It is pretty self-explanatory I suppose, but it’s good to review the finer points before you run it. Continue reading “FlashArray Host Group Creation PowerShell Script for VMware Clusters”

Using PowerShell with the VMware Log Insight REST API

I have quite a few PowerShell scripts these days and I run a bunch of them quite often. All of my scripts log information to a file so I can see what happened but I decided I wanted to log them into something that could help me analyze or quickly review the data. Something better than looking at a bunch of text files. One of my favorite products, VMware Log Insight was the first thing I thought of. The ingestion REST API makes the most sense. Took a little time to figure out the best way to do it, but it’s working great now. To the details!

Continue reading “Using PowerShell with the VMware Log Insight REST API”

FlashArray VMware Best Practices PowerCLI Scripts

I wrote a post recently on the updates made to the PowerCLI 6.3 R1 esxcli implementation, so the logical next step was to implement this new behavior into my PowerCLI scripts that use esxcli. I still have a few scripts to update, but my two best practice-related scripts are ready to go. The two scripts are:

  1. Script to check and set best practices. Download here:
  2. Script to just check best practices, and lists issues in a report. Download here.

While I was updating them for esxcli changes, I figured i might as well improve them too, so there are quite a few changes for both. Let’s take a look.

Continue reading “FlashArray VMware Best Practices PowerCLI Scripts”

VMFS Snapshots and the FlashArray Part V: How to snapshot a VMFS on the FlashArray

This is part 5 of this 7 part series. Questions around managing VMFS snapshots have been cropping up a lot lately and I realized I didn’t have a lot of specific Pure Storage and VMware resignaturing information out there. Especially around scripting all of this and the various options to do this. So I put a long series out here about how to do all of this.

The series being:

  1. Mounting an unresolved VMFS
  2. Why not force mount?
  3. Why might a VMFS resignature operation fail?
  4. How to correlate a VMFS and a FlashArray volume
  5. How to snapshot a VMFS on the FlashArray
  6. How to mount a VMFS FlashArray snapshot
  7. Restoring a single VM from a FlashArray snapshot

Continue reading “VMFS Snapshots and the FlashArray Part V: How to snapshot a VMFS on the FlashArray”

FlashArray UNMAP Script with the Pure Storage PowerShell SDK and PowerActions

I have officially decided to “retire” my UNMAP script that uses direct REST calls to find before and after capacity changes for given volumes. I am only updating the one that uses the Pure Storage PowerShell SDK from this point on–using this is much more robust, not tied to direct API versions and greatly simplifies managing the data in the script.clip_image006

I have also created a second version for use in the VMware Fling called PowerActions. This allows the script to be executed from the vSphere Web Client.

Continue reading “FlashArray UNMAP Script with the Pure Storage PowerShell SDK and PowerActions”