A snapshot is typically a record of the state of a system at a specific point in time. Snapshots often contain a list of pointers to the memory locations of data stored either on a hard disk or similar storage device. The key to understanding them is by imagining a snapshot as a contents page in a book. It has a list of what is in the disk drive and where to find it. A key aspect of a snapshot is that it acts as a form of data backup. If files are lost, a snapshot can greatly assist the recovery process because it allows the last known location of the data to be checked.
Many administrators and utility designers often turn to snapshots because other methods of backing up often mean temporarily disabling write access to data. The use of a snapshot avoids system downtime and allows applications and users to continue writing data without interruption.
Another issue with traditional backups is that it can take extensive amounts of time to copy large volumes of data. The efficiency of data backup can be measured using Big O notation, a software engineer's method of explaining an algorithms complexity through the time it takes to execute. In the case of snapshot utilities, many can create a snapshot in O(1). O(1) means that the amount of time it takes to record a snapshot is not affected by the size of the data set. This is ideal for large volumes of data, where simply copying it can take an increasingly long time.
Two key types of snapshot utility are copy-on-write and split-mirror. A copy-on-write creates a backup of a state and then records if any changes are made - including if data is corrupted. A split-mirror snapshot utility instead references the snapshot data on mirrored drives. Every time you use a split-mirror utility, it records a fresh snapshot instead of just noting the areas that were changed. It is a more comprehensive backup method but less efficient and more time consuming. Typically a split-mirror snapshot would be used for a thorough backup of system files.
Snapshots are not just limited to data recovery. They are also often used in virtulization, particularly the copy-on-write approach. Virtualization is a term used to describe running an operating system inside a virtual machine. A good example is VMware, which can perform snapshots of the entire system by recording the state of the system in a backup file, and then any future changes are recorded in a second file. It is the second file that shows it is an example of the copy-on-write feature. There will always be a copy of the original state so that if a change is made that breaks the system, the original snapshot is available in a separate file to allow system recovery.
When selecting which snapshot technology is most appropriate for a situation, it is important to decide which features are most important to the client. If it is speed and efficiency of backup, then copy-on-write methods are a better approach. If a user is more interested in a thorough method still with an efficiency of O(1) (unlike just copying outright) then a split-mirror snapshot is the better choice.
What is a Snapshot?
No comments yet. Sign in to add the first!