I used to write a lot about how to manage CLARiiON and VNX storage environments with EMC’s naviseccli tool. I’ve been doing some stuff with Pure Storage FlashArrays in our lab and thought it might be worth covering off some of the basics of their CLI. This will obviously be no replacement for the official administration guide, but I thought it might come in useful as a starting point.
Unlike EMC’s CLI, there’s no executable to install – it’s all on the controllers. If you’re using Windows, PuTTY is still a good choice as an ssh client. Otherwise the macOS ssh client does a reasonable job too. When you first setup your FlashArray, a virtual IP (VIP) was configured. It’s easiest to connect to the VIP, and Purity then directs your session to whichever controller is the current primary controller. Note that you can also connect via the physical IP address if that’s how you want to do things.
The first step is to login to the array as pureuser, with the password that you’ve definitely changed from the default one.
login as: pureuser
Last login: Fri Aug 10 09:36:05 2018 from 10.xxx.xxx.xxx
Mon Aug 13 10:01:52 2018
Welcome pureuser. This is Purity Version 4.10.4 on FlashArray purearray
“purehelp” is the command to run to list available commands.
If you want to get some additional help with a command, you can run “command -h” (or –help).
pureuser@purearray> purevol -h
usage: purevol [-h]
add add volumes to protection groups
connect connect one or more volumes to a host
copy copy a volume or snapshot to one or more volumes
create create one or more volumes
destroy destroy one or more volumes or snapshots
disconnect disconnect one or more volumes from a host
eradicate eradicate one or more volumes or snapshots
list display information about volumes or snapshots
listobj list objects associated with one or more volumes
monitor display I/O performance information
recover recover one or more destroyed volumes or snapshots
remove remove volumes from protection groups
rename rename a volume or snapshot
setattr set volume attributes (increase size)
snap take snapshots of one or more volumes
truncate truncate one or more volumes (reduce size)
-h, --help show this help message and exit
There’s also a facility to access the man page for commands. Just run “pureman command” to access it.
Want to see how much capacity there is on the array? Run “purearray list –space”.
pureuser@purearray> purearray list --space
Name Capacity Parity Thin Provisioning Data Reduction Total Reduction Volumes Snapshots Shared Space System Total
purearray 12.45T 100% 86% 2.4 to 1 17.3 to 1 350.66M 3.42G 3.01T 0.00 3.01T
Need to check the software version or generally availability of the controllers? Run “purearray list –controller”.
pureuser@purearray> purearray list --controller
Name Mode Model Version Status
CT0 secondary FA-450 4.10.4 ready
CT1 primary FA-450 4.10.4 ready
Connecting A Host
To connect a host to an array (assuming you’ve already zoned it to the array), you’d use the following commands.
purehost create hostname
purehost create -wwnlist WWNs hostname
purevol connect --host [host] [volume]
You might need to create a Host Group if you’re running ESXi and want to have multiple hosts accessing the same volumes. Here’re the commands you’ll need. Firstly, create the Host Group.
purehgroup create [hostgroup]
Add the hosts to the Host Group (these hosts should already exist on the array)
purehgroup setattr --hostlist host1,host2,host3 [hostgroup]
You can then assign volumes to the Host Group
purehgroup connect --vol [volume] [hostgroup]
Other Volume Operations
Some other neat (and sometimes destructive) things you can do with volumes are listed below.
To resize a volume, use the following commands.
purevol setattr --size 500G [volume]
purevol truncate --size 20GB [volume]
Note that a snapshot is available for 24 hours to roll back if required. This is good if you’ve shrunk a volume to be smaller than the data on it and have consequently munted the filesystem.
When you destroy a volume it immediately becomes unavailable to host, but remains on the array for 24 hours. Note that you’ll need to remove the volume from any hosts connected to it first.
purevol disconnect [volume] --host [hostname]
purevol destroy [volume]
If you’re running short of capacity, or are just curious about when a deleted volume will disappear, use the following command.
purevol list --pending
If you need the capacity back immediately, the deleted volume can be eradicated with the following comamnd.
purevol eradicate [volume]
The Pure CLI is obviously not a new thing, and plenty of bright folks have already done a few articles about how you can use it as part of a provisioning workflow. This one from Chadd Kenney is a little old now but still demonstrates how you can bring it all together to do something pretty useful. You can obviously extend that to do some pretty interesting stuff, and there’s solid parity between the GUI and CLI in the Purity environment.
It seems like a small thing, but the fact that there’s no need to install an executable is a big thing in my book. Array vendors (and infrastructure vendors in general) insisting on installing some shell extension or command environment is a pain in the arse, and should be seen as an act of hostility akin to requiring Java to complete simple administration tasks. The sooner we get everyone working with either HTML5 or simple ssh access the better. In any csase, I hope this was a useful introduction to the Purity CLI. Check out the Administration Guide for more information.