OpenStack Volume Consistency Groups
About this lab
vTeam Specialization Program
Recently I was nominated to join the Pure Storage vTeam Specialization Program for New Stack. The idea behind the program is to provide a community within Pure for Puritans to learn and develop skills and grow into a subject matter expert.
The program consists of training and lab exercises that are focussed on developing experience in the New Stack space (Kubernetes, Ansible, Open Stack and more). And since I think there are more people out there how want to learn more about New Stack, I though I’d blog my progress of the lab exercises.
Lab instructions
Following on earlier labs where we build an OpenStack environment using DevStack and explored the OpenStack Horizon GUI, this lab we focus on using Open Stack Consistency Groups in combination with FlashArray.
Name: | Volume Consistency Groups | Status |
Description: | Manage consistency group in Cinder | |
Objective: | Create a consistency group with a volume and snap the CG | |
Task #1: | Create a generic volume group to support consistency groups | |
Task #2: | Create a volume in the CG | |
Task #3: | Examine the FlashArray to see the outcome | |
Task #4: | Snapshot the consistency group | |
Success Criteria: | Successfully create a consistency group and great a volume and snapshot associated with the CG |
While this blog is a post on it’s own, I will be using the Open Stack environment that I’ve installed before using DevStack.
Consistency Groups
Consistency groups provide a means to group certain volumes, which allows to make consistent snapshots of those volumes. A consistent snapshot means that the snapshot for all volumes in the group is created at the exact same point in time. When this is used for an application, such as a database, that uses multiple volumes, creating the snapshot for all volumes at the exact same point in time, allows the application to recover from the snapshot, since the data is in sync with each other. FlashArray uses Protection Groups to achieve this and in this lab, we’ll configure OpenStack to use the native FlashArray Protection Groups for creating Consistency Groups and Groups Snapshots.
Create a Group Type
The first step is to create a Group Type, which will subsequently be used for any Consistency Group that is created using the Pure Storage FlashArray.
- Navigate to Admin -> Volume -> Group Types
- Click + Cteate Group Type
- Enter a Name for the new Group Type (I will use Pure Storage FlashArray as a Name)
- Click Create Group Type

- Click on the View Specs button for the newly created Group Type
- Click the + Create Spec button
- Add the following Key and Value as shown in the image above
Key: consistent_group_snapshot_enabled Value: <is> True
- Now click Create and then Close
By adding the parameter:
consistent_group_snapshot_enabled='<is> True'
We tell OpenStack to use the FlashArray native Protection Group functionality. This will insure the exact point in time snapshot of all volumes part of the Consistency Group.
Create a Consistency Group
Now we are ready to create our first Consistency group. This is something a OpenStack consumer / enduser would use to create a group which contains all volumes of a specific server or application (eg. group of servers).
- Navigate to Project -> Volumes -> Groups
- Click the + Create Group button
- Enter a Name (I’ll use Pure 1 Group)
- Select Pure Storage FlashArray as Group Type
- Select the tab Manage Volume Types on the top
- Select the Volume Type to use for this group (I’ll use the Pure 1 Volumes Type which I created in the previous post)
- Click Create Group
Add Volumes to the Group
Now we are ready to add volumes to the Consistency Group. By now we know how to create volumes, so I’ll not go into the steps for that. However when we create a volume, we now specify the Group as shown below.

Fo my lab I have created two volumes, names Test vol 1
and Test vol 2
.
Create a Group Snapshot
Now we are ready to create our consistent Group Snapshot!
- Navigate to Project -> Volumes -> Groups
- Click on Create Snapshot for our Pure 1 group as shown below

- Enter a Snapshot Name for our snapshot
- Click Create Snapshot

Over to FlashArray
The previous step created the snapshot in OpenStack, so now let’s head over to FlashArray to see what happened there.
- Login to FlashArray
- Go to Storage -> Protection Groups
We should see a newly created protection group there. Going into the protection group, we can see the two volumes that are part of the protection group and we also see the snapshot that was created in the protection group.

So we now know that our test was successful. The Group we created, also created a Protection Group on FlashArray and creating the snapshot created a Protection Group snapshot on FlashArray, ensuring consistency of the snapshot for all volumes in the group.
Cleaning up OpenStack
Cleaning up OpenStack wasn’t part of this lab, be I thought I’d write down the steps anyways. As mentioned in the previous blog, you cannot remove a object in OpenStack if it still references other objects. To remove either the group of the volumes we’ve created, we need to follow the following steps:
- Go to the Group and select Remove volumes from Group from the drop down menu on the right (this will also remove our FlashArray Volumes from the Protection Group on FlashArray)
- Now we can delete the Group, which will also delete our Protection Group in FlashArray
- We can also now delete our volumes, since they are no longer linked to the Group.
Conclusion
And that concludes this OpenStack Volume Consistency Group lab. We’ve seen how we can configure OpenStack to use FlashArray Protection Groups to create Group Snapshots, which allows reliable snapshots for applications that have multiple volumes and/or multiple servers.
I hope you enjoyed reading this blog and look forward to see you in the next one.