Added backup/restore guide (#2964)

main
Andrey Zhavoronkov 5 years ago committed by GitHub
parent 54ee8a137c
commit 5b46b516dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Kubernetes templates and guide for their deployment (<https://github.com/openvinotoolkit/cvat/pull/1962>) - Kubernetes templates and guide for their deployment (<https://github.com/openvinotoolkit/cvat/pull/1962>)
- [WiderFace](http://shuoyang1213.me/WIDERFACE/) format support (<https://github.com/openvinotoolkit/cvat/pull/2864>) - [WiderFace](http://shuoyang1213.me/WIDERFACE/) format support (<https://github.com/openvinotoolkit/cvat/pull/2864>)
- [VGGFace2](https://github.com/ox-vgg/vgg_face2) format support (<https://github.com/openvinotoolkit/cvat/pull/2865>) - [VGGFace2](https://github.com/ox-vgg/vgg_face2) format support (<https://github.com/openvinotoolkit/cvat/pull/2865>)
- [Backup/Restore guide](cvat/apps/documentation/backup_guide.md) (<https://github.com/openvinotoolkit/cvat/pull/2964>)
### Changed ### Changed

@ -0,0 +1,76 @@
## About CVAT data volumes
Docker volumes are used to store all CVAT data:
- `cvat_db`: PostgreSQL database files, used to store information about users, tasks, projects, annotations, etc.
Mounted into `cvat_db` container by `/var/lib/postgresql/data` path.
- `cvat_data`: used to store uploaded and prepared media data.
Mounted into `cvat` container by `/home/django/data` path.
- `cvat_keys`: used to store user ssh keys needed for [synchronization with a remote Git repository](user_guide.md#task-synchronization-with-a-repository).
Mounted into `cvat` container by `/home/django/keys` path.
- `cvat_logs`: used to store logs of CVAT backend processes managed by supevisord.
Mounted into `cvat` container by `/home/django/logs` path.
- `cvat_events`: this is an optional volume that is used only when [Analytics component](../../../components/analytics)
is enabled and is used to store Elasticsearch database files.
Mounted into `cvat_elasticsearch` container by `/usr/share/elasticsearch/data` path.
## How to backup all CVAT data
All CVAT containers should be stopped before backup:
```console
docker-compose stop
```
Please don't forget to include all the compose config files that were used in the docker-compose command
using the `-f` parameter.
Backup data:
```console
mkdir backup
docker run --rm --name temp_backup --volumes-from cvat_db -v $(pwd)/backup:/backup ubuntu tar -cjvf /backup/cvat_db.tar.bz2 /var/lib/postgresql/data
docker run --rm --name temp_backup --volumes-from cvat -v $(pwd)/backup:/backup ubuntu tar -cjvf /backup/cvat_data.tar.bz2 /home/django/data
# [optional]
docker run --rm --name temp_backup --volumes-from cvat_elasticsearch -v $(pwd)/backup:/backup ubuntu tar -cjvf /backup/cvat_events.tar.bz2 /usr/share/elasticsearch/data
```
Make sure the backup archives have been created, the output of `ls backup` command should look like this:
```console
ls backup
cvat_data.tar.bz2 cvat_db.tar.bz2 cvat_events.tar.bz2
```
## How to restore CVAT from backup
Note: CVAT containers must exist (if no, please follow the [installation guide](installation.md#quick-installation-guide)).
Stop all CVAT containers:
```console
docker-compose stop
```
Restore data:
```console
cd <path_to_backup_folder>
docker run --rm --name temp_backup --volumes-from cvat_db -v $(pwd):/backup ubuntu bash -c "cd /var/lib/postgresql/data && tar -xvf /backup/cvat_db.tar.bz2 --strip 4"
docker run --rm --name temp_backup --volumes-from cvat -v $(pwd):/backup ubuntu bash -c "cd /home/django/data && tar -xvf /backup/cvat_data.tar.bz2 --strip 3"
# [optional]
docker run --rm --name temp_backup --volumes-from cvat_elasticsearch -v $(pwd):/backup ubuntu bash -c "cd /usr/share/elasticsearch/data && tar -xvf /backup/cvat_events.tar.bz2 --strip 4"
```
After that run CVAT as usual:
```console
docker-compose up -d
```
## Additional resources
[Docker guide about volume backups](https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes)

@ -13,12 +13,12 @@
- [How to upload annotations to an entire task from UI when there are multiple jobs in the task](#how-to-upload-annotations-to-an-entire-task-from-ui-when-there-are-multiple-jobs-in-the-task) - [How to upload annotations to an entire task from UI when there are multiple jobs in the task](#how-to-upload-annotations-to-an-entire-task-from-ui-when-there-are-multiple-jobs-in-the-task)
- [How to specify multiple hostnames for CVAT_HOST](#how-to-specify-multiple-hostnames-for-cvat_host) - [How to specify multiple hostnames for CVAT_HOST](#how-to-specify-multiple-hostnames-for-cvat_host)
- [How to create a task with multiple jobs](#how-to-create-a-task-with-multiple-jobs) - [How to create a task with multiple jobs](#how-to-create-a-task-with-multiple-jobs)
- [How to transfer CVAT to another machine](#how-to-transfer-cvat-to-another-machine)
## How to update CVAT ## How to update CVAT
Before upgrading, please follow the official docker Before upgrading, please follow the [backup guide](backup_guide.md) and backup all CVAT volumes.
[manual](https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes) and backup all CVAT volumes.
To update CVAT, you should clone or download the new version of CVAT and rebuild the CVAT docker images as usual. To update CVAT, you should clone or download the new version of CVAT and rebuild the CVAT docker images as usual.
@ -149,3 +149,6 @@ services:
Set the segment size when you create a new task, this option is available in the Set the segment size when you create a new task, this option is available in the
[Advanced configuration](user_guide.md#advanced-configuration) section. [Advanced configuration](user_guide.md#advanced-configuration) section.
## How to transfer CVAT to another machine
Follow the [backup/restore guide](backup_guide.md#how-to-backup-all-cvat-data).

@ -46,7 +46,6 @@ services:
- cvat_data:/home/django/data - cvat_data:/home/django/data
- cvat_keys:/home/django/keys - cvat_keys:/home/django/keys
- cvat_logs:/home/django/logs - cvat_logs:/home/django/logs
- cvat_models:/home/django/models
cvat_ui: cvat_ui:
container_name: cvat_ui container_name: cvat_ui
@ -87,4 +86,3 @@ volumes:
cvat_data: cvat_data:
cvat_keys: cvat_keys:
cvat_logs: cvat_logs:
cvat_models:

Loading…
Cancel
Save