Saturday, 28 June 2014

SRDF Asynchronous (SRDF/A)

SRDF/A is a long distance disaster restart solution from EMC with fast application response time. In SRDF/S as the host gets the I/O complete message from the primary array only when the I/O is written successfully at primary as well as Secondary array cache and an acknowledgement for the same has been provided to the primary array and the host as well. Now suppose if these 2 array are located very far from each other geographically, it will certainly have the impact on the performance for the host and application as well. So for long distance solution SRDF/S is not a desirable solution. To overcome this and to provide a faster response time, EMC has come up with another long distance replication solution called SRDF/A or Asynchronous SRDF.

So what happens exactly in SRDF/A ? In SRDF/A, primary array does not wait for the acknowledgement from the secondary array, rather it sends the acknowledgement back to the host as soon as it completes writing data to it's cache and later on data transmission will happen over the SRDF links. In this operation, host write I/Os will be accumulated in the delta sets in the primary and secondary array cache, dependent-write consistency of each delta sets will be managed and delta sets will be transferred across SRDF links in cycles.

So let's talk about delta sets and cycles. These delta sets and cycles are very important to achieve dependent write consistency and is possible only by the processing of the ordered delta sets and cycles between the primary array and secondary array.

Before we discuss further, have a look at the below diagram.




Now let's take a look at how the actual operation takes place. Enginuity has actually divided delta sets primarily in 4 types, "Capture", "Transmit", "Receive" and "Apply" and divided cycles in to 2 types, "Active" and "Inactive".

  • The "Active cycle" on the primary array will have the current host writes or "N" data updates in the "Capture delta set".
P.S. "N" means current data, "N-1" means data in the previous cycle and "N-2" means data before the previous cycle.
  • The inactive cycle in primary array will have "N-1" data set that is transferred to the secondary array.
  • The primary "inactive cycle" is the "transmit delta set" and secondary array "inactive cycle" is the receive delta set and will be having the "N-1" data sets.
  •  The active cycle on the secondary array contains "N-2" data updates in the "apply delta set". This is guaranteed dependent-write consistent image in the event of a disaster or failure.
There are various features used by SRDF/A to avoid the link loss, to improve performance and to recover from a failure scenarios. For example:

  • Reserve Capacity
    • Transmit Idle
    • DSE Pool
  • Group Level Pacing
  • Device Level Pacing
  • Write Folding
  • Write Pacing
  • Tolerance Mode
I will be talking about these in coming posts.

2 comments: