I have read several explanations regarding consistency groups and have seen and heard about them many times over. I do understand the general applications of consistency groups, but I want to know how they work from a technical point of view to really know how and when to use them exactly.
In an SRDF/S sense, you will NEED a CG if you have an application that spans multiple RDF groups and / or multiple arrays. CG provides a method to provide crash consistency on the R2 side when the above configuration in place. It uses the Enguinity Consistency Assist (ECA) feature of the array to ensure that the same PIT is achieved on All R2 devices when replication stops to any RDF group/ device within the CG.
You may also choose to implement CG on a single RDF group. The use case here is that all devices MUST be replicating in a CG. In other words you cannot manually suspend a single device in a CG. CG provides an assurance that you will not have a situation where only some devices in a group are replicating (inadvertently or otherwise).
With CG, when there is an issue with a single device that that cannot write to the R2, CG will suspend all devices in the group to get a consistent PIT on the R2 (a congroup trip event).
Why would an application span multiple RDF groups / multiple arrays?
What is PIT?
Other than that, I understood the technical aspect of CG, very interesting. However, could you please explain what could happen if I don't have CG enabled on such an application? What are the consequences exactly?
PIT=Point In Time.
A multi-array environment is an example of the potential for a an application to be presented data form different arrays.
If you have an application that spans multiple RDF groups and no CG, in a disaster scenario, writes to one RDF group may stop before writes to the other RDFG(s). So on the R2 end, you do not have a consistent PIT across all devices on which to restart your application. Effectively you have lost your DR position via corrupted R2.
Lets take a Oracle RAC for example. When provisioning storage to them I need to enable the "Consistent LUN" option so that they can be part of a "Consistency group" so that their data doesn't become unsynchronized and corrupted? I understand how that could happen when if different LUNs are mirrored to different RDF groups, but why would it span several RDF groups?
I hope I'm not mixing things up here, just really want to get to the bottom of this. Thanks.
I see. Lets put consistent LUNs aside for now, I do indeed remember that it has to do with the addressing of LUNs. This is the reason I wanted to break everything down so I won't mix different concepts together.
My questions would be:
1) How do I enable "Consistency groups" as a feature and what does the word "group" mean exactly in this case? For instance, an RDF group consists of certain devices that are used for SRDF, what does a consistency group consist of and can I decide what devices are a part of it?
2) Could you paint a general picture of why and when I would want to implement multiple RDF groups?