OpenStack Volume Consistency Groups

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 GroupsStatus
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
Lab goals and tasks

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.

Leave a Reply

Your email address will not be published.