All Projects → aiven → astacus

aiven / astacus

Licence: Apache-2.0 license
Clustered database backup

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to astacus

RedArmory
Backup and Restore tool for Bitnami Redmine Stack
Stars: ✭ 15 (-37.5%)
Mutual labels:  backups, restore
Reshifter
Kubernetes cluster state management
Stars: ✭ 292 (+1116.67%)
Mutual labels:  restore, cluster
Bareos
Main repository with the code for the libraries and daemons
Stars: ✭ 651 (+2612.5%)
Mutual labels:  backups, restore
Cv4pve Barc
Backup And Restore Ceph for Proxmox VE
Stars: ✭ 74 (+208.33%)
Mutual labels:  restore, cluster
Rdiffweb
A simplified backup management software for quick access to your archives through an efficient web interface.
Stars: ✭ 76 (+216.67%)
Mutual labels:  backups, restore
clusterplex
ClusterPlex is basically an extended version of Plex, which supports distributed Workers across a cluster to handle transcoding requests.
Stars: ✭ 123 (+412.5%)
Mutual labels:  cluster
blacksmith
Bare-Metal CoreOS Cluster Manager
Stars: ✭ 67 (+179.17%)
Mutual labels:  cluster
snapbtrex
snapbtrex is a small utility that keeps snapshots of btrfs filesystems and optionally send them to a remote system or syncs them locally.
Stars: ✭ 29 (+20.83%)
Mutual labels:  backups
esop
Cloud-enabled backup and restore tool for Apache Cassandra
Stars: ✭ 40 (+66.67%)
Mutual labels:  restore
gpu-cluster-config
How to Configure a GPU Cluster Running Ubuntu Linux
Stars: ✭ 45 (+87.5%)
Mutual labels:  cluster
terraform-aws-backup
Terraform module to provision AWS Backup, a fully managed backup service that makes it easy to centralize and automate the back up of data across AWS services such as EBS volumes, RDS databases, DynamoDB tables, EFS file systems, and AWS Storage Gateway volumes.
Stars: ✭ 62 (+158.33%)
Mutual labels:  backups
react-map-gl-cluster
Urbica React Cluster Component for Mapbox GL JS
Stars: ✭ 27 (+12.5%)
Mutual labels:  cluster
rsync2ipfs-cluster
No description or website provided.
Stars: ✭ 16 (-33.33%)
Mutual labels:  cluster
xoom-cluster
The VLINGO XOOM platform SDK cluster management for Reactive, scalable resiliency of JVM tools and applications running on XOOM LATTICE and XOOM ACTORS.
Stars: ✭ 25 (+4.17%)
Mutual labels:  cluster
scheduled-scaler
No description or website provided.
Stars: ✭ 68 (+183.33%)
Mutual labels:  cluster
bash-backup
Simple backup script for GNU/Linux servers
Stars: ✭ 76 (+216.67%)
Mutual labels:  backups
mongodb-backup-manager
🌿 A Full-stack MongoDB Backup System.
Stars: ✭ 42 (+75%)
Mutual labels:  restore
rpi-home-cluster-setup
Automated way to set up your own kubernetes cluster on Raspberry Pi. Includes memory card preparation, nodes bootstrap and kubernetes services configuration
Stars: ✭ 111 (+362.5%)
Mutual labels:  cluster
flask-docker-compose
Flask application development skeleton with docker-compose
Stars: ✭ 22 (-8.33%)
Mutual labels:  cluster
aioredis-cluster
Redis Cluster support extension for aioredis
Stars: ✭ 21 (-12.5%)
Mutual labels:  cluster

astacus

Astacus is a clustered database backup system that is meant to work with multiple open-source cluster databases, such as M3 and Apache Cassandra.

My name is Maximus Backupus Astacus, Co-ordinator of the Backups of the Cluster, Master of the Storage Availability, loyal servant to the true emperor, Prunus Aivenius. Father to a failed backup, husband to a corrupted data. And I will have my restore, in this runtime or the next.

Goals

  • Support multiple clustered database products

  • Most of the code generic

  • Product-specific code with simple, testable API

  • Complexities to deal with e.g. reuse of blobs with same value in the shared code

    • It is needed to accomplish e.g. fast non-incremental M3 backups that are essentially incremental as only commit logs change frequently
  • Support list of object storage backup site locations -> Facilitate migration from old to new during service cloud migration

  • Have most of the code covered by unit tests

  • Can be open sourced without feeling too bad about it

    • Open source from the get go, no proprietary legacy dependencies

See also

Installation

Please see Dockerfile.fedora and Dockerfile.ubuntu for concrete up-to-date examples, but here are the current ones:

Optional features

  • cassandra can be added with 'cassandra' optional:
sudo pip3 install -e '.[cassandra]'

Fedora 34

(as root or user with sudo access; for root, skip sudo prefix)

sudo dnf install -y make
make build-dep-fedora
sudo python3 ./setup.py install

Ubuntu 20.04

(as root or user with sudo access; for root, skip sudo prefix)

sudo apt-get update
sudo apt-get install -y make sudo
make build-dep-ubuntu
sudo python3 ./setup.py install

Configuration

Create astacus.conf, which specifies which database to back up, and where. The configuration file format is YAML, but as it is JSON superset, JSON is also fine.

Unfortunately the configuration part is not particularly well documented at this time, but there are some examples of file backups to local directory (JSON), local directory (YAML), Amazon S3, or Google GCS. There is even one example of backing up M3 to GCS.

Usage

Start the nodes

Start astacus server on all nodes to be backed up, either by hand or via e.g. systemd:

astacus server -c <path to configuration file>

Perform backups

Periodically (e.g. from cron) call on (ideally only one node, but it doesn't really matter as only one operation can run at a time):

Restore backups

Backup can be restored with either

List backups

To see list of backups:

Clean up old backups

To clean up backups based on the configured retention policy,

TODO

There is separate TODO file which tracks what is still to be done.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].