Pure Storage Plugin v3 for vRealize Orchestrator

We just released an updated plugin for vRO today that is fully certified by VMware and is available on the VMware marketplace:

Download it here.

What are the new features? Well a lot–some various bug fixes, but this is mostly about new features:

  • ActiveCluster support
  • Enhanced protection group information
  • Throughput limits
  • Volume Groups
  • Pure1 REST API integration
  • Protocol Endpoints
  • Host Personality

Installation and Configuration

The first step is to upgrade or install, which is the same process. Download from the link above the .vmoapp file and then go to your vRO instance via the Control Center webpage. https:///<vro FQDN>:8281/vco

Depending on your version of vRO this may look slightly different, I am on 7.6.

Click on Manage Plugin-Ins. Find the .vmoapp file and click Upload then accept the EULA.

Restart the management services and login to vRO (I am using vRO 7.6, so I will use the HTML-5 web client).

Log back into the client and you will be able to see our workflows, actions, and inventory. The first thing you do (if this is a new installation) is to authenticate your FlashArrays. You can do this manually, or you can use the new Pure1 integration!

Pure1 Integration

This version of the plugin includes the required libraries to authenticate to the Pure1 REST API–which greatly expands what can be done in vRO with Pure Storage.

The Pure1 workflows are not natively included in the plugin today (this is how I have been delivering new workflows in general–put them in a package, get feedback and then finally roll them fully into the plugin–this allows us to iterate the workflows faster. You can get the workflow package here:


It will be posted on the VMware Market Place soon. Note that you DO need the 3.x version of the vRO plugin for this to work.

One of the workflows available is automatic array registration:

This workflow does the following things:

  • Enter in FlashArray credentials
  • Connects to Pure1
  • Pulls all of your FlashArray names and virtual IPs
  • Does a DNS lookup of the IP to get a FQDN if possible. There is an advanced option to skip any FlashArrays that cannot be resolved–by default it will not skip them.
  • Pings the FQDN or IP to see if it is reachable. If it is not, then it is skipped.
  • For each array, it will accepts the certificate and register the array with provided credentials. If the creds are not entered, or they are wrong, it will then ask you for correct credentials for arrays that need it.
  • The FlashArray will then be available in the vRO inventory.

Here is a quick demo of Pure1 authentication and automated registration:

Intelligent Provisioning

Pure1, among many things, receives array call home data and crunches the data to provide forecasting, trending, and sizing. One of the metrics it calculates is something called the busy meter. The busy meter is a percentage–which indicates how loaded the array actually is.


Pure1 takes all kinds of functions into account, front-end workload, replication etc. In then says, oh this array is 34% busy–this allows you to actually understand how much more this array can take. A simple measure of IOPS or throughput doesn’t really mean anything by itself.

The workflow package has the ability now to help you make more intelligent storage placement choices across your arrays. Using the busy meter, the workflows will make the best choice for whatever you need to provision. The basic algorithm now that I use is this:

  • Pull the busy meter for each array. This will be calculated from the past 30 days of operation. It will use the maximum as well–not the average. The idea being that if the array is 95% busy every night at 8PM, it probably isnt the best option. Though you can change both of these options. You can opt for the average, and you can also just have it look at the past week, or the past day.
  • Find the least busy array. If the least busy array is more than 75% full from a capacity perspective, it will look for the next least busy array. This value is configurable if needed.
  • If an array is more than 90% full, it will never be selected.
    This value is configurable if needed–but must be higher than the previous value.

The workflow will return the best array–so you never need to choose an array! This workflow is called “Pick Target FlashArray from Pure1”

There are currently four other “busy” related workflows:

Find Percent Total Busy of FlashArray –this will return the value of the busy meter for this array

Create new VMFS Datastore with Intelligent FlashArray Selection–this takes in a VMware cluster, a datastore name and and a new size. This will look at the VMware cluster, find the FlashArrays that actually have physical connectivity to it, then choose the best array for placement.

Select Optimal VMFS Datastore via Pure1–Pass in two or more datastores and it will find a datastore on the FlashArray that is least busy. If there is more than one datastore passed in on that FlashArray, it will choose the datastore with the most available space. You can manually choose a selection of datastores, or pass in a VMware host cluster, or a datastore cluster.

Select Optimal VVol Datastore via Pure1–You can pass in a VMware host cluster, or a selection of VVol datastores, and then it will find the VVol datastore on the least busy FlashArray.

See a video demo of this here:

Pure1 Tagging

There is also Pure1 tagging integration. The ability to change tags, create tags, retrieve tags, delete them, etc. Pretty straight forward, check out this video:

Keep an eye on this package–there will be a lot more around Pure1 in here.

Other new features in the plugin

What else is in 3.0? Well a lot of new inventory objects!

Pods, volume groups, individual pgroup snapshots, protocol endpoints, are the main ones. So this provides much better control around ActiveCluster and VVols.

Workflows around configuring ActiveCluster and adding/removing volumes, managing volume groups, assigning throughput limits and more. A lot of new stuff in this release! Enjoy.

4 Replies to “Pure Storage Plugin v3 for vRealize Orchestrator”

  1. Cody, how can I snapshot a protection group in vRO? Looking through documentation, I still only see snapshot single volume or snapshot multiple volumes. I’d like to use vRO to take on-demand snapshots of protection group and present the snapshot to a different VM w/o impacting the source VM at all.

    1. Maggie–yeah we can do this in the plugin today. I just need to look at the plugin API (about to board a flight).I don’t think we have a native workflow, but it is definitely in there as I have used it. You should join our Slack Code team. Join here: https://codeinvite.purestorage.com/ and there is an #orchestrator channel. We can chat quickly there. But otherwise, I will post the API here as soon as I get a chance.

Leave a Reply

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

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