One of the key feature of Pure Storage FlashArray that is heavily used by most of the database customers is FlashRecover Snapshot. Snapshot is a key part of the data protection services offered by all modern Storage vendors and Pure Storage has taken into next level with its implementation.
Storage Snapshot is the point in time state of a volume(s). Same analogy as to that of photography. It is implemented with pointers of reference to the source volume. Once a snapshot is taken, the original volume is available to its application without any interruption whereas the snapshot can be used for secondary purposes like database cloning, application availability, instant backup & recovery etc.,
There are different types of snapshot implementations named Copy-on-Write and Redirect-on-Write. Pure Storage FlashRecover snapshots are implemented using redirect-on-write but uses distributed three-dimensional metadata that introduces a level of redirection for each volume. When a block is written or overwritten on FlashArray, new blocks are allocated for the incoming writes/overwrites and the redirection layer is updated to reflect the most recent data on flash. As data grows, the metadata optimization process actively collapses the metadata to reduce block lookup which makes data reads faster.
Key features/advantages of Pure Storage FlashArray’s FlashRecover snapshots are
Pure Storage FlashArrays implement FlashRecover data protection and recovery technology includes the capability for taking scheduled and ad-hoc snapshots of protection groups (pgroups) or storage volumes (luns). FlashRecover snapshots contain metadata that describes the volume(s) at the snapshot instant, but they occupy data space only when data is written to volumes after they are taken. They are both immutable and invisible to hosts. To enable a host to use the content of a snapshot, it should be cloned either creating new volumes or overwriting the contents of existing ones.
Like snapshots, clone volumes initially share data with the snapshots and/or volumes from which they originated. When a host overwrites blocks on either clone or the originating volume, array software preserves the original block contents so that from the host view, volume and clone are independent LUNs. Because snapshots are never altered, all volumes cloned from a given snapshot are initially identical.
In the upcoming posts I will be covering various database cloning scenarios.