If you have a primary LUN which is replicated using MirrorView/S and you decide to run SnapView snapshots on the remote side, consider that writes to the secondary LUN may have to wait for the COFW activity to complete before an acknowledgement is sent back to the primary array.
So if you’re performing tests on the remote site by using SnapView snapshots, you may want to consider suspending the MirrorView session(s) first in order to guarantee performance on the production site.
A good scenario would be to create clones from the temporary fractured mirrors and as soon as the clones are fully in sync, split the clone from its primary – being the MirrorView secondary – and start the resync in MirrorView.
After the write from the primary array (1) a COFW (Copy On First Write) (2) must take place if the write (1) overwrites a block that hasn’t been written to yet in order to maintain the point in time of the snapshot. After the COFW (2) is complete the acknowledgement (ACK) (3) can be sent back to the primary array.
So even if the snapshot isn’t used by a host, there’s already an increased activity on the remote array.
If the snapshot is in use by a host that writes to the snapshot, an unchanged block on the secondary LUN need to be copied to the RLP (Reserved LUN Pool) first before the overwrite can take place. This will also slow down any ACKs that need to be sent back to the primary array.
Conclusion
Be very careful when starting SnapView sessions on a secondary LUN and even more careful when using the secondary LUNs since it can have a severe impact on the response times of the primary LUN.
Follow me on social media