Skip to content

Server backups

Akamai Cloud (Linode) snapshots

All servers hosted within the morphsites Akamai Cloud account have daily snapshots turned on. This setting is on by default. Any instances created, whether through the Akamai Cloud interface or through a third party API (Laravel Forge for example), will automatically be enrolled to carry out daily snapshots.

Snapshots take a copy of the whole server and can be booted to from a separate instance or replace the current instance restoring it to the state when the snapshot was taken.

Akamai snapshot list

Snapshots can be viewed, used and triggered within the backup tabs for each instance on the Akamai Cloud interface.

Manual snapshots

If a backup is required before a large or high risk change a manual snapshot can be taken as a precaution. A descriptive name needs to be provided for the snapshot and then adequate time needs to be given for the snapshot to process. You will be notified in the console of the progress and completion of a snapshot.

Please note, only one manual snapshot will be kept per instance. When you trigger a manual snapshot any previous manual snapshot listed will be removed.

Automatic snapshots

Automatic snapshots follow a schedule and set of rules outlining how long a snapshot will be preserved for.

  • Each night a complete snapshot is taken. The snapshot will replace the snapshot from the preceding night.
  • On a scheduled day each week the snapshot will be preserved and not be replaced by the nightly snapshot. This snapshot will be preserved an additional week and then removed.

Once the instance has been in place for a couple of weeks there should be 3 automatic snapshots stored.

  • The snapshot from the night before
  • The snapshot from the defined Day of the Week
  • The Day of the Week snapshot from the week prior

Settings

Akamai backup settings

You can control 2 factors

  • Time of Day - Define the 2 hour slot within which each snapshot will be taken daily
  • Day of Week - Define the day of the week the weekly snapshot will preserve.

⚠️ morphsites recommendations

Settings should be set to have the Day of Week set to Sunday night/Monday morning. If the snapshot is occurring on a Ubuntu based server, the snapshot should be configured to have the Time of Day window end as close as possible to when unattended upgrades are configured to begin.

Restoring backups

Snapshots can be easily used. Each stored snapshot will have the option to either:

  • Restore to Existing Linode
  • Deploy New Linode

Snapshot restoration menu

For the majority of cases deploying a new Linode will be needed. This will allow you spin up a complete copy of the server which can be accessed directly through the assigned IP address with the same access credentials. Data can be retrieved and the created Linode can then be removed.

Note Standard Akamai Cloud tariffs will apply to new Linodes created, so please keep activation time minimal.

If there has been a critical failure on the original Linode, reassigning the ip to the newly deployed Linode could be a viable option.


Akamai Cloud Block Storage backups

Akamai do not offer an automatic backup solution for their block storage. Block storage instances are backed up separately and this is currently handled by Snapshooter.

The only usage of block storage currently is on prod1.uk.morphdigital.net mounted here: /mnt/prod1_uk_userfiles

Snapshooter

Snapshooter prod1.uk.morphdigital.net backup job

Snapshooter is configured to take a nightly backup of the whole /mnt/prod1_uk_userfiles/live/ directory and store each sub directory separately. These backups will be preserved for 15 days.

Snapshooter backup list

Each backup occurrence can be managed separately and tar zipped directories can be restored from within the interface.

Snapshooter backup directories

The backup storage location is currently Akamai Cloud object storage and can be accessed directly with an access key, or through the Akamai Cloud console.

Backup location within object storage

An example of a nightly backup location within object storage


Laravel Forge database backups

morphsites currently uses the Laravel Forge Business tier which includes a database backup feature. As Akamai Cloud snapshots can take a long time to restore, it is well worth using this functionality to be able to access database data quickly if required.

Configuration

Laravel Forge Backup tab

Each server that is configured to include MySQL, MariaDB or PostgreSQL will have a tab enabled to configure backups.

Multiple backup configurations can be created to backup to various databases to multiple locations.

When setting up a server with a SQL database it is recommended to backup all databases to Akamai Cloud object storage.

Configurations will be very similar each time with only a few server specific differences.

Laravel Forge Backup Configuration

  • Name: Server hostname
  • Frequency: Daily
  • Time: Any out of hours AM time. Consider when the instances snapshots and unattended upgrades will occur to avoid conflicts.
  • Provider: Custom (S3 Compatible)
  • Region: eu-central-1
  • Bucket: db-dkps
  • Endpoint:https://eu-central-1.linodeobjects.com
  • Access Key & Secret Key:Stored in Bitwarden
  • Storage directory: Server hostname
  • Backup Retention: 7
  • Databases: Select All Databases or select specific databases. Please note, if the latter is chosen when any new databases are added later on these will need to be manually added to the backup schedule configuration.

Managing/restoring database backups

Within the backups tab the most recent backups will be listed. The gzipped files can be listed easily and downloaded separately if required (also useful is setting up a local environment with live data).

Laravel Forge Recent Backups

Each individual database can be restored from within this tab as well which would only be required in the case of a catastrophic database failure and required a full recover.

Laravel Forge backup restore menu

Manually triggering a backup can also be completed from within the Backups tab, but before doing so ensure to check how long a backup will take to process. Server performance is slightly affected while backups are being taken.

Laravel Forge manual backup Run button

The backup location can be found within the Akamai Cloud console here. Backups can be managed and/or downloaded directly from here as the need arises.

Forge Backup location within object storage