docs: upd eng backups #73

Merged
inex merged 4 commits from upd_eng_backups into master 2024-03-01 02:41:46 +02:00
2 changed files with 31 additions and 33 deletions

View File

@ -11,13 +11,13 @@ description: >
When your service is broken but it worked yesterday you have two options: When your service is broken but it worked yesterday you have two options:
* Spend some time reading logs and debugging what went wrong. Meanwhile the service is unusable and maybe some data is irreversibly lost. * Spend some time reading logs and debugging what went wrong. Meanwhile the service is unusable and maybe some data is irreversibly lost;
* Rewind the service to the working state and then debug at a more relaxed pace. Hopefully it was just solar flare or a glitch in the Matrix. * Restore the service to a working state and then debug at a more relaxed pace. Hopefully it was just a solar flare or a glitch in the Matrix.
This second, nerve-saving option is enabled by backing up regularly, and even better, automatically. This second, nerve-saving option is enabled by backing up regularly, and even better, automatically.
As an extra benefit, backing up makes it easy to transfer a service from one machine to another with minimal hassle. Having a backup simplifies the process of transferring a service between machines, ensuring minimal inconvenience.
This is useful for datacenters on fire, if your server provider gets bought out by another corporation or if shareholders decide that it is finally time to make more profit. This is useful if your datacenter is on fire, if your server provider gets bought out by another corporation, or when shareholders decide that it is finally time to make more profit.
This document covers the basic terms and usage of SelfPrivacy backup subsystem. This document covers the basic terms and usage of SelfPrivacy backup subsystem.
@ -25,45 +25,45 @@ This document covers the basic terms and usage of SelfPrivacy backup subsystem.
SelfPrivacy does not make backups of the whole machine. SelfPrivacy does not make backups of the whole machine.
Instead, it saves the states of each service. Instead, it saves the states of each service.
The state of files used by a service, taken at a certain time, is called a Snapshot. The state of the files used by a service, taken at a certain time, is called a Snapshot.
In the interface, you can see a snapshot as having an id, a service it backs up, and a date of creation. In the interface, you can see that a snapshot has an ID, a service it backs up, and a date of creation.
## When backups occur? ## When backups occur?
A snapshot is created in 3 cases: A snapshot is created in 3 cases:
* By user's manual command to back up a service * By user's manual command to back up a service;
* Automatically at certain intervals if Automatic Backups are enabled * Automatically at specified intervals if Automatic Backups are enabled;
* As a precaution before an inplace restore of a service * As a precaution before an inplace restore of a service.
## How the data is stored? ## How the data is stored?
The service's files are stored at the cloud of user's choosing. The service's files are stored at the cloud of the user's choice.
At the moment we support Backblaze but more are to be added. We currently support Backblaze, with more to come.
All of the service data is encrypted with a local secret which the cloud never receives. All of the service data is encrypted with a local secret that the cloud never receives.
Under the hood, we use Restic for transfers of encrypted data. Under the hood, we use Restic to transfer encrypted data.
Cloud storage providers, such as Backblaze, have an option to prevent immediate deletion of data.
Clouds like Backblaze have an option to disallow immediate removal of data.
SelfPrivacy app uses this option so that in case when the server is hacked the data cannot be erased. SelfPrivacy app uses this option so that in case when the server is hacked the data cannot be erased.
## Listing snapshots ## Listing snapshots
There are 2 factors to keep in mind when looking at the list: There are 2 factors to keep in mind when looking at the list:
* For the sake of performance, the list is cached. If some snapshots are missing which you think should be there, invalidate the cache so it reloads. * For the sake of performance, the list is cached. If some snapshots are missing which you think should be there, invalidate the cache so it reloads;
* If you remove some snapshots, they will disappear from the list, but for some limited time they are still restorable with the help of the cloud. * If you delete some snapshots, they will be removed from the list, but for some limited time they are still restorable with the help of the cloud.
## Restoring a snapshot ## Restoring a snapshot
When you restore a snapshot, the service is stopped, and all of its files are restored to the state when the snapshot was taken. Restoring a snapshot involves stopping the service and reverting all files to their state at the snapshot's creation. This process can be accomplished in two distinct ways.
There are 2 ways to do it.
The safest one, the default one, is to download the snapshot in its entirety, verify that data is not damaged, and replace the service files with the files from the snapshot. The safest one, the default one, is to download the snapshot in its entirety, verify that data is not damaged, and replace the service files with the files from the snapshot.
This has a downside that you need to have extra space to store the snapshot. However, this method requires additional storage space for the snapshot.
A somewhat riskier way is to overwrite the service files directly, without intermediate storage. This needs less space, but if the transfer goes wrong, you end up with a broken service. A somewhat riskier way is to overwrite the service files directly, without intermediate storage. It requires less space, but if the transfer goes wrong, you end up with a broken service.
To somewhat mitigate this, a pre-restore snapshot is made just before the restoration. To help reduce the impact, a snapshot is taken just before restoring.
The app does check that we have enough space before attempting a restore. The app does check that we have enough space before attempting a restore.
@ -73,23 +73,22 @@ Forgetting makes the snapshot inaccessible from the server, but deletion itself
## Automatic Backup ## Automatic Backup
If you set up an automatic backup period, all of the services will be backed up regularly according to the period. If you set up an automatic backup period, all of the services will be backed up according to the set period.
Note that backups are independent per service. If you have services A and B backed up automatically every day in the morning, and then you back up service B manually at noon, then service A's next backup will be in the morning as usual, but B's backups will occur at noons. Note that backups are independent per service. If you have services A and B backed up automatically every day in the morning, and then you back up service B manually at noon, then service A's next backup will be in the morning as usual, but B's backups will occur at noons.
If set to zero, autobackups will be disabled. If it is disabled, automatic backups will not be performed.
## Restoring after someone has deleted all the snapshots ## Restoring after someone has deleted all the snapshots
* Go to your Backblaze/other cloud interface directly. * Go to your Backblaze/other cloud interface directly;
* Rewind the bucket's state to prior the deletion event. * Rewind the bucket to its previous state before the deletion event;
* Open SelfPrivacy app * Open SelfPrivacy app;
* Invalidate snapshot cache * Update the snapshot list;
* List the snapshots * Restore from snapshots as usual.
* Restore from snapshots as usual
## Troubleshooting backups ## Troubleshooting backups
* If you suspect that the snapshot list is inaccurate, try discarding the cache * If you suspect that the list of snapshots is incorrect, try updating the snapshot list;
* If an inplace restore failed, make sure that your cloud is accessible and your contract is active, then try to either restore a snapshot you tried to restore, or a pre-restore snapshot generated automatically * If an inplace restore has failed, make sure that your cloud is accessible and your contract is active. Then try to restore either a snapshot that you tried to restore or a pre-restore snapshot that was automatically generated;
* If you do not have enough space on the disk for a safe restore, try restoring inplace * If you do not have enough space on the disk for a safe restore, try restoring inplace.

View File

@ -86,7 +86,6 @@ SelfPrivacy не создает резервных копий всей маши
* Откатите состояние ведра до состояния, предшествовавшего удалению; * Откатите состояние ведра до состояния, предшествовавшего удалению;
* Откройте приложение SelfPrivacy; * Откройте приложение SelfPrivacy;
* Обновите список копий; * Обновите список копий;
* Откройте снимки;
* Восстановите моментальный снимок обычным способом. * Восстановите моментальный снимок обычным способом.
## Устранение неполадок при резервном копировании ## Устранение неполадок при резервном копировании