[This blog was written by Tamir Segal – Sr. Product Manager for XtremIO]
I am frequently approached by people asking me: What is so unique about XtremIO Snapshots?
After all, snapshots have been around for a long time. Well, to make a long story short, XtremIO implements an improved version of the Redirect-on-Write snapshot architecture, with all snapshot metadata managed in the array’s shared-global scale-out memory, making writeable snapshots more flexible, fast and efficient than ever before.
A good way to think about XtremIO snapshots is to think about film photography compared to digital. Both methods give you great image quality. And on the surface they do the same thing – they capture a moment in time accurately and with high fidelity. But how each works under the covers is very different and digital photography holds some key advantages:
1. Digital is completely instant. Take the photo and view it right now. If you don’t like it or don’t need it anymore, delete it and instantly reclaim the space.
2. Digital makes editing easy. You can change the photo at will and save the changed versions.
3. Digital is space-efficient. You can fit thousands of digital photos into a modern media card (based on flash!)
Conventional snapshots are like film photography. You get a nice image of real life, but you don’t get all the advantages of digital photography. We all know how digital photography changed the world. It may be ambitious to say that XtremIO snapshots will be so profound, but they certainly do enable new use cases and capabilities. Let’s look at how they do this.
XtremIO snapshots are tightly integrated into the XtremIO array architecture. Just like all metadata in XtremIO arrays, snapshot metadata is maintained entirely in-memory so that look-ups do not require and SSD accesses. XtremIO put tremendous effort into developing efficient snapshot data structures that support fast creation. The result is that XtremIO snapshots provide the same performance as a production volume (same read IOPS, same write IOPS, same latency – even for writeable snapshots), regardless of the snapshot’s tree span or depth. This has never before been possible. It’s like the first two benefits of digital photography above – XtremIO snapshots can be instantly created, and since they’re inherently writeable with no performance drawbacks, “editing” or using snapshots as high performance volumes, opens up entirely new use cases for snapshots. Storage administrators are used to thinking of snapshots for read-only and low performance uses only. With XtremIO snapshots can be used for anything.
Snapshots on XtremIO get all the same data services as any other volume. Any write to a production volume or a snapshot in the cluster goes through the same set of inline processes. It is fingerprinted, deduplicated, compressed, encrypted, and written to the global thin-provisioned storage pool. Thin provisioning saving is always on (as it is for any volume in the system).
How are Snapshots created?
Very easily. Just follow these three easy steps to create and map a snapshot:
No performance impact? Is it really true?
Yes! XtremIO uses a sophisticated data structure in the array’s memory to manage all the metadata required for snapshots. Only new writes to a snapshot consume metadata. The non-written blocks are either unallocated or are used from the data structure of their ancestors. This means that there is no metadata copy operation involved for the process of creating a snapshot. It also means that the creation process is fast (no metadata bloat). With XtremIO snapshots you don’t need to reserve space ahead of time or set up separate snapshot volume areas. And you won’t fill up your array with snapshot metadata because no metadata copying is involved with XtremIO snapshots – ever – not even for writeable snapshots.
In order to avoid time-wasting scans of metadata, XtremIO’s snapshot data structures hold an in-memory map which facilitates an index-like shortcut to where data resides in the snapshot tree hierarchy. This means that read operations take the same time, regardless of the snapshot hierarchy (span or depth), and have the same read and write performance as the production volume. No configuration, manual optimization or special setting is required to enable them. The array doesn’t have to scan volumes of data to figure out which version of volume contains the proper data block – it can figure this out instantly through this map.
Can I create a snapshot of a snapshot? How does it work?
Yes, XtremIO snapshots support advanced topologies and you can have a cascade of snapshots. This cascade can be very deep, span widely, or be both or anything in between. Since snapshots are managed just like volumes, a snapshot can be created from any volume or snapshot in the system with no limitations. The result of snapping a snapshot is yet another volume in the system that can be accessed in read/write mode. This is also the reason why XtremIO arrays don’t have a clone function. Cloning was the answer to the weak performance of legacy snapshot implementations that is no longer needed once you can get:
- High performing snapshots that are both user data and metadata space efficient
- Equivalent performance between snapshots and volumes
- Unlimited snapshot topology (snap on snaps)
- Large number of snapshots
Can I create a cross-consistent snapshot?
Sure, cross-consistent snapshotting is fully supported. It can be achieved either by selecting a set of volumes to be snapshotted in a single operation, or by snapshotting a folder – an entity that groups a set of volumes together. This operation results in a snapshot per volume in the set; each snapshot appears as a volume in the cluster.
What happens to a snapshot if I delete its parent/production volume?
Nothing. You can delete any volume or snapshot within a snapshot hierarchy without impacting other snapshots in the hierarchy. This is true even when you delete a snapshot nested within the hierarchy. All snapshots taken before or after the snapshot’s creation remain intact in the XtremIO cluster.
How can I benefit from XtremIO snapshots?
In many ways:
- Free business to consolidate all workloads – Businesses no longer need to carve up their datacenter assets into dedicated silos and manage them separately. Entire application environments – from production to reporting and analytics, to backup, to dev/test can now be consolidated efficiently leveraging XtremIO’s snapshots.
Consolidation of dev and test with production on a single system with multiple copies
- XtremIO snapshots are TRULY FREE – Snapshots on XtremIO are literally FREE because they are a part of the default, built-in feature set of the XtremIO operating software. Snapshots are also figuratively FREE, being fully writeable and metadata efficient. Snapshots represent full copies of production data sets with zero incremental SSD capacity cost and optimal incremental memory cost.
- XtremIO Snapshots are PENALTY FREE – Snapshots are “1st class citizens”, completely at par with parent volumes for any mix, type or pattern of host IOs. Businesses have complete flexibility to leverage snapshots to create backup copies or dev/test copies – and test code under real production conditions – without any “snapshot penalty”.
- XtremIO snapshots are free to scale – XtremIO snapshots scale-out in performance and capacity like all regular XtremIO volumes. Highly optimized distributed metadata ensure that all metadata remain completely in-memory. Customers get high performance, and highly predictable performance while growing their data sets to petabyte scale.
- Databases for ALL – XtremIO snapshots maximize developer productivity by provisioning dedicated high performance databases to be used exclusively by each developer. This is easily achieved by provisioning a snapshot per developer. XtremIO customers doing this today tell us they’re developing their application code 30% faster and with higher quality since the test environment now runs with the same performance as production – helping them eliminate bugs that used to only be found once production load was put on the application.
- Any hierarchy for ANY use case – XtremIO snapshots are completely agnostic to hierarchy. Unlike traditional snapshot implementations, the location of an XtremIO snapshot in a hierarchical topology does not influence (or degrade) its performance in any way, regardless of the IO workload.
- 1-Minute RPO with backups – Volumes can be easily snapped once every minute to create full application consistent copies that can then be relocated to backup appliances (e.g. DataDomain) for archival. Once the backup is complete, the snapshot can easily and quickly be deleted – all while production volumes meet application SLAs.
- A zero cost, zero impact copy machine – Built on XtremIO’s innovative, world-class architecture, XtremIO snapshots embrace the true potential of flash and usher in the new era of a solid-state data center. With XtremIO snapshots, cloning or copying large datasets (or databases) and all associated management overhead become a relic of the past. Customers will be well served to use XtremIO snapshots to instantly make available any number of copies of large datasets for full production use. The uses described here are only the beginning.
Today, digital photography has almost completely supplanted film photography and for good reason. XtremIO customers are leveraging XtremIO’s unique snapshot capabilities to change the way they roll-out and run entire application stacks. If you only used digital cameras to take 24 photos at a time (the way you would with a film camera before the film ran out), you never took rapid photos and kept only the best ones, and you never once edited a photo, you’d be missing out on the wonderfulness of digital photography. Likewise, if you think about XtremIO snapshots like conventional snapshots, you’re missing out on their power to improve your daily life and improve your data center operations.
You can learn more about XtremIO Snapshots in this white paper, or click here to watch a demo where we snapshot an Oracle database while generating hundreds of thousands of IOPS on both source and snapshot copies.
BONUS Section! Vendors like to play the feature check box game. XtremIO has snapshots. So do we. So here are some questions you can ask about other snapshot implementations.
- What is the cost of using snapshots in terms of physical capacity and memory?
- Are snapshots inherently writeable? Are extra steps needed to use them as writeable volumes?
- What is the performance penalty when snapshots are used?
- What is the impact of taking a snapshot?
- What is the impact on the source (production) volume?
- How was the snapshot implementation designed and optimized to use flash as a media?
- Are all data services fully enabled and fully performing on snapshots?
- Do I need to configure pools and reserve capacity for snapshots?
- Can I consolidate dev & test copies with production workloads? And will the dev/test copies have identical performance in all metrics?
- How agile are your snapshots?
- Does your snapshot implementation support nested snaps (snapshots of snapshots)?
- Can I create snaps of snaps without impacting performance?
- Can I get the same performance on all snaps regardless of their location in the hierarchy?
- Can I delete a particular nested snapshot without losing any child snapshots or the source entity?
- Can I delete the source volume without affecting the rest of the snapshot hierarchy?