Snapshots

What is a Snapshot?

As a team begins transitioning from traditional cloud hosting environments, there will inevitably be a time when when someone wants to "snapshot" a system. A snapshot preserves the state and data of a virtual machine at a specific point in time. They are used to restore that virtual machine to a that saved state.

  • The state includes the virtual machine’s power state (for example, powered-on, powered-off, suspended).
  • The data includes all of the files that make up the virtual machine. This includes disks, memory, and other devices, such as virtual network interface cards.
  • A Few Snapshot Limitations (according to VMWare)

Snapshots have a number of inherit disadvantages that makes them difficult to manage:

  1. Large numbers of snapshots are difficult to manage and track
  2. Consume large amounts of disk space
  3. Not protected in the case of hardware failure
  4. Can negatively affect performance

VMWare itself states "Do not run production virtual machines from snapshots on a permanent basis."

Nonetheless, there are specific times when a snapshot can be used to test specific configurations and quickly revert to a saved state if unexpected results occur. Snapshots can also make it easier to duplicate a VM from another system, or reverse-engineer an unfamiliar VM into familiar assets and environments.  Snapshots are always only a short-term solution due to their administrative headaches, inflexibility, high capacity usage and vulnerability to outages and disruption.

Enabling the Snapshots

Only a Team Manager can enable Snapshots for their team. If you're not certain what your role is within a team, or don't seem to have sufficient permissions, contact your Team Manager. If you're not sure who your Team Manager is, contact support.

To enable/disable Snapshot functionality for a team:

  1. Navigate to your Team landing page using the site logo on the top left of the page
  2. Use the main navigation bar on the left to click Settings at the bottom of the bar
  3. Under the General tab find Virtual Host Snapshot and check/uncheck the Enabled box
  4. Click Save Changes

Creating a Snapshot

Users are limited to a single snapshot for each host. Snapshotting the same host again will overwrite the previous snapshot. To create a snapshot:

  1. On the main navigation bar on the left click Hosts under the “Compute” header
  2. Click the Run in question
  3. On the actions bar, click the ~~~~Snapshot button

Keep in mind that a snapshot will capture all running processes, logs, commands, etc. It’s considered a best practice to shut down your VM before attempting to take a snapshot

Depending on the complexity and size of your environment, it may take between 5-10 minutes to fully capture the snapshot, and you may see a yellow banner message stating *The host is currently in an unknown state. Some functionality may be limited** this banner will stay up until the snapshot has been completed.

Restoring from a Snapshot

Once a snapshot has been captured, you can restore your host to the snapshot at any time.

To restore from a snapshot:

  1. On the main navigation bar on the left click Hosts under the “Compute” header
  2. Click the Run in question
  3. On the actions bar, click the Restore button

The *Restore* button will not be visible unless a snapshot has already been taken .*

Note: If there is a cloud side failure (disk, compute, network) during a restore, a system may end up in an unrecoverable state.

Reccomendations for Usage


Bottom Line - CONS3RT offers a better approach! ...to the traditional notion of snapshots. It is a case of "how" vs. "what":

  • WHAT - Save the state of a system at a particular point in time
  • HOW - Use VMware/AWS/Azure provided "snapshot" capability
  • (BETTER) HOW - Use CONS3RT assets

CONS3RT provides a better HOW option to the WHAT "save the state of a system at a particular point in time". It makes use of assets and modular designs to save the state of a system at a particular point in time. The design approach has many benefits, including:

  • Usability. Easier and quicker to update components or try out different configurations
  • Performance. Snapshot performance degrades over time.
  • Scalability. No need to carry around and update entire "catalogs" of monolithic VMs
  • Transparency. Know exactly how a system is built
  • Portability. Easily deploy systems across different cloud providers
  • Stability. Systems driven from automation
  • Only option for Physical Systems
  • Better Options for Long Term Backups
  • Better Options for High Availability / Disaster Recovery

Furthermore, using CONS3RT allows a user to automate the deployment of:

  • multiple copies of a systems so they are disposable (i.e. launch three, use one, throw it away, use the next one)
  • scenarios consisiting of many systems to create complex itegration environments or ranges