IN THIS ARTICLE
Outlines how Snapshots work within Qumulo Core including:
- Snapshots and Storage
- Snapshot Deletes
- Cluster running Qumulo Core 2.5.0 and above
The Qumulo Core file system has an entry for each version of every file. If any data in a file is modified after a snapshot has been taken, we create a new entry for that version of the file which points to just the new data. This has several benefits including:
- Instantaneous Snapshots
- No storage is consumed when a snapshot is taken
- No performance penalty for taking a snapshot
- Little to no performance penalty for reading and writing data from the filesystem in the presence of snapshots
New data is written alongside the original. When possible, the new version of the file shares data with the old. When data is written to a snapshotted file, there will then be two entries stored in the file system as two different versions of the same file. As more data is modified, more file data is added to this entry.
This allows us to preserve snapshotted data for everything in the Qumulo Core file system including file data, directory entries, creation/modification time, permissions, and more.
Snapshots and Storage
In Qumulo Core, a snapshot is taken instantaneously and no extra storage overhead is needed. The snapshot data then accumulates over time as data in the file system is modified which allocates new storage space for the data and links it into the file metadata.
Consider the following 4MB file:
- First, the file is filled with 4MB of data and a snapshot is taken
- Then, 1MB in the middle of the file is modified
- The filesystem allocates a new 1MB region for the modified data
- 3MB of the original 4MB of data is shared between both versions of the file
- 1MB of new data exists in the newest, or “live,” version of the file
- 1MB of old data exists only in the snapshotted version of the file
- The total storage usage for this file is now 5MB
If that particular 1MB is rewritten again, the existing live data would simply be overwritten without allocating the new space. If a different region of the file is rewritten instead, Qumulo Core will allocate more storage.
Storage usage is driven directly by the workload and data is only duplicated when necessary or on demand. There is no performance penalty for taking a snapshot and little to no performance penalty for reading and writing data from the filesystem in the presence of snapshots.
When you delete a snapshot, it is immediately removed from the list of snapshots and is no longer accessible. The space consumed by that snapshot is then recovered in a background process that frees data blocks that are no longer used by any snapshot.
Although the snapshot disappears immediately, the background process may take some time to reclaim space for the file system. To monitor progress, you can run the following command during deletion to track the reclaimed space as the snapshot capacity decreases.
You should now have an overall understanding of how Snapshots work within Qumulo Core
Like what you see? Share this article with your network!