thelastpickle / cassandra-medusa

Apache Cassandra Backup and Restore Tool
Apache License 2.0
266 stars 143 forks source link

Scylladb unable to restore to different cluster #187

Open Helmut-Onna opened 4 years ago

Helmut-Onna commented 4 years ago

Project board link

Hello First of all, not sure if ScyllaDB is supported. If not, then I guess ignore this xD

Following this guide: https://thelastpickle.com/blog/2019/11/05/cassandra-medusa-backup-tool-is-open-source.html Section: "Case #2 - Restore To A Different Cluster With Same Number Of Nodes" Scylladb version = 4.1.2-0.20200715.3e6c6d5f582-1 cassandra-medusa version = 0.7.1 OS: ubuntu 18.04 minimal image from GCE Backups saving to a gcs bucket

Steps:

  1. create a 3-node ScyllaDB cluster, with 2 seeds
  2. create keyspace, insert data
  3. Install cassandra-medusa
  4. config medusa.ini (ssh, start/stop cmd, storage provider, config_file)
  5. perform medusa backup --backup-name=test1 on each node. All nodes backed up to the bucket (folders for each node and data present) medusa status --backup-name=test1 comes back green, all ok.
  6. destroy cluster, create a new one, make sure is up, can connect, etc.
  7. Install cassandra-medusa, config, etc
  8. create node mapping file with "True/False, new node, old node"
  9. execute medusa restore-cluster --backup-name=test1 --host-list node_map.txt

Medusa connects by SSH, stops scylladb, copies GS bucket data, cleans directories, restores, parses tokens, but at the moment to restart scylla (DEBUG: Starting Cassandra with /bin/systemctl start scylla-server) it crashes

systemctl status scylla-server shows this on both seeds:

[shard 0] init - Startup failed: std::runtime_error (Exception while populating keyspace 'system' with column famil
y 'compactions_in_progress' from file '/var/lib/scylla/data/system/compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b': sstables::malformed_sstable_exception (invalid version for file 
compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b. Name doesn't match any known version.))

3rd node is not a seed so it was waiting for seeds to start first.

Already deleted/recreated cluster again, tried a couple of times, but same error comes up.

Please let me know if you need me to upload a log or a command output. Thanks!

p.d. On first run I noticed you seem to require netcat but is not mentioned. It might be good to mak the error or requisite clear, since many containers, instances, etc are using reduced OSes which don't include it :) I installed it across nodes to fix the error but doesn't seem related since scylla start error persists: stderr:timeout: failed to run command ‘nc’: No such file or directory

┆Issue is synchronized with this Jira Story by Unito ┆Issue Number: MED-73

arodrime commented 4 years ago

ScyllaDB is a bit out of scope indeed. We are developing primarily for Apache Cassandra.

We already have a lot to do with Cassandra only :)... That being said, if you go for it and offer us Pull requests to make it compatible with Scylla (without breaking it for Cassandra of course), then I assume it's perfectly fine for us to merge your PRs to make medusa compatible with Scylla DB. If not, that's honestly not something I think we would do anytime soon...

deniszh commented 3 years ago

Hi @Helmut-Onna : did you manage to fix issue with Scylla? Or decided to use different tool?

Skunnyk commented 3 years ago

FYI, I just did a successful restore of a 2 node Scylladb cluster to 2 others nodes :)

JackThird commented 1 year ago

no news about scylladb support? I saw another project here on github named scylla-octopus