GithubHelp home page GithubHelp logo

backy's People

Contributors

ckauhaus avatar ctheune avatar dhnasa avatar elikoga avatar osnyx avatar zagy avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ckauhaus

backy's Issues

Monitor for manual tags

I just realize that we need to monitor for manual tags. We do have the global backy status check which ends up in Sensu, however, that's more about whether backy is creating new backups properly. Some way of reminding people that there are manual backups sitting around would be helpful. Let's extract that as a separate issue, though.

Originally posted by @ctheune in #14 (comment)

integrate s3 backups?

we could leverage rclone for the low level handling, however, our content-hashing system doesn't work with that directly, maybe we need completely different backup-type implementations but could leverage a centralized scheduler.

support migration of backups on multiple servers

we regularly need to retire old servers. instead of copying data around we could just let an old server sit around for i.e. 3 months and start placing new backups on a new server. however, operator personnel may stumble over the issue of suddenly not finding older backups and having to hunt them down manually.

it would be nice if a backy status call would also show backups that are located on other backup servers (maybe even in remote locations?!?) so they can then go there to operate on them

and in this distributed setup we need to expire the old backups on the other servers and not just let them sit there infinitely.

this could also help rebalance backups between servers automatically.

distrusting in case of an error

Consider to automatically distrust backups in case of an error like:

Error: Header error - invalid compressed data

2021-09-17 06:09:26 [1349692] INFO Performing partial verification
2021-09-17 06:13:50 [1349692] INFO Removing old snapshot backy-RLCbehUaoQB3C8GbsLgXrF
2021-09-17 06:13:50 [1349692] ERROR Header error - invalid compressed data
Traceback (most recent call last):
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/main.py", line 334, in main
    func(**func_args)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/main.py", line 92, in backup
    b.backup(tags)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backup.py", line 59, in locked_function
    return f(self, *args, **kw)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backup.py", line 59, in locked_function
    return f(self, *args, **kw)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backup.py", line 187, in backup
    if not source.verify(backend):
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/sources/ceph/source.py", line 142, in verify
    return backy.utils.files_are_roughly_equal(source, target)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/utils.py", line 399, in files_are_roughly_equal
    chunk_b = b.read(blocksize)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backends/chunked/file.py", line 194, in read
    data, size = chunk.read(offset, size)
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backends/chunked/chunk.py", line 78, in read
    self._read_existing()
  File "/nix/store/1pn40rap4q6na5yvgq2sh2g2xkic4zc9-python3.8-backy-2.5.0dev/lib/python3.8/site-packages/backy/backends/chunked/chunk.py", line 61, in _read_existing
    data = lzo.decompress(data)
lzo.error: Header error - invalid compressed data

This is a follow up of https://fb.flyingcircus.io/f/cases/143474/

Add type annotations

  • bump python version (and dependencies)
  • add annotations
  • consider static checks (pre-commit?)
  • demo IDE integration

Support offsite backups

When considering a separate job type for S3 backups vs. disk backups we could also create "replication" jobs that could be integrated as separate jobs that work on other jobs and that use the distributed scheduler API to place the remote backup somewhere else.

As most of that could be a simple rsync (maybe pay attention to extended attributes) we could even create automatic temporary SSH keys in a handshake process.

Alternatively, they could be features ontop of existing jobs with a unified API for marking which jobs want to be backed up to a remote destination.

PR template

  • changelog entry
  • impact

see fc-nixos templates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.