Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 2.56 KB

File metadata and controls

63 lines (48 loc) · 2.56 KB
title:Backing up Data
description:Backing up stateful data on Deis.

Backing up Data

While applications deployed on Deis follow the Twelve-Factor methodology and are thus stateless, Deis maintains platform state in two places: data containers and etcd.

Data containers

Data containers are simply Docker containers that expose a volume which is shared with another container. The components with data containers are builder, database, logger, and registry. Since these are just Docker containers, they can be exported with ordinary Docker commands:

dev $ fleetctl ssh deis-builder.service
coreos $ sudo docker export deis-builder-data > /home/coreos/deis-builder-data-backup.tar
dev $ fleetctl ssh deis-database.service
coreos $ sudo docker export deis-database-data > /home/coreos/deis-database-data-backup.tar
dev $ fleetctl ssh deis-logger.service
coreos $ sudo docker export deis-logger-data > /home/coreos/deis-logger-data-backup.tar
dev $ fleetctl ssh deis-registry.service
coreos $ sudo docker export deis-registry-data > /home/coreos/deis-registry-data-backup.tar

Importing looks very similar:

dev $ fleetctl ssh deis-builder.service
coreos $ cat /home/coreos/deis-builder-data-backup.tar | sudo docker import - deis-builder-data
dev $ fleetctl ssh deis-database.service
coreos $ cat /home/coreos/deis-database-data-backup.tar | sudo docker import - deis-database-data
dev $ fleetctl ssh deis-logger.service
coreos $ cat /home/coreos/deis-logger-data-backup.tar | sudo docker import - deis-logger-data
dev $ fleetctl ssh deis-registry.service
coreos $ cat /home/coreos/deis-registry-data-backup.tar | sudo docker import - deis-registry-data

Using pg_dump

Since the database component runs PostgreSQL, pg_dumpall can also be used to generate a text dump of the database.

dev $ fleetctl ssh deis-database.service
coreos $ nse deis-database
coreos $ sudo -u postgres pg_dumpall > pg_dump.sql

etcd

Service state and fleet scheduling data is stored in etcd. Unfortunately, there is currently no recommended backup solution for etcd. However, there is a third-party tool called etcd-dump which can be used to dump the data stored in etcd.

Official backup recommendations for etcd are forthcoming. The CoreOS team is tracking etcd update documentation in #683.