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>)
- [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>)
- [Backup/Restore guide](cvat/apps/documentation/backup_guide.md) (<https://github.com/openvinotoolkit/cvat/pull/2964>)
### 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 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 transfer CVAT to another machine](#how-to-transfer-cvat-to-another-machine)
## How to update CVAT
Before upgrading, please follow the official docker
[manual](https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes) and backup all CVAT volumes.
Before upgrading, please follow the [backup guide](backup_guide.md) 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.
@ -149,3 +149,6 @@ services:
Set the segment size when you create a new task, this option is available in the
[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_keys:/home/django/keys
- cvat_logs:/home/django/logs
- cvat_models:/home/django/models
cvat_ui:
container_name: cvat_ui
@ -87,4 +86,3 @@ volumes:
cvat_data:
cvat_keys:
cvat_logs:
cvat_models:

Loading…
Cancel
Save