About snapshots
A snapshot stores the state of a virtual machine (VM) at a point in time. GitHub highly recommends taking a hypervisor level snapshot before upgrading your VM so that if an upgrade fails, you can revert your VM back to the snapshot.
Types of snapshots
There are two types of snapshots:
- VM snapshots save your entire VM state, including user data and configuration data. This snapshot method requires a large amount of disk space and is time consuming.
- Data disk snapshots only save your user data.
Creating a snapshot
GitHub only recommends taking a VM snapshot when the instance's VM is powered down, or when the instance is in maintenance mode and all background jobs have finished.
The type of snapshot you can take depends on the platform you use.
- Some platforms don't allow you to take a snapshot of just your data disk. For these platforms, you'll need to take a snapshot of the entire VM.
- If your hypervisor does not support full VM snapshots, you should take a snapshot of the root disk and data disk in quick succession.
Platform | Snapshot method | Documentation |
---|---|---|
Amazon AWS | Disk | Create Amazon EBS snapshots in the AWS documentation |
Azure | VM | Create a snapshot of a virtual hard disk on an Azure VM in Microsoft Learn |
Hyper-V | VM | Enable or disable checkpoints in Hyper-V in Microsoft Learn |
Google Compute Engine | Disk | Create and manage disk snapshots in the Google Cloud documentation |
VMware | VM | Taking Snapshots of a Virtual Machine in VMware Docs |