[s3ql] Recovery using local cache and s3ql_data_ only

2016-10-12 Thread Nikhil Choudhary
Hi folks,

Is it possible to recover a filesystem with an up-to-date local cache (.db and 
.params files), s3ql_data_ files, and the encryption master key?

I’m using s3ql with local storage backend (details below) - after cleanly 
unmounting the filesystem, I made a critical error and incorrectly deleted the 
s3ql files in the backend directory, except the s3ql_data_ directory.  
Unfortunately, extundelete and other utilities were only able to grab some of 
the older s3ql_metadata_bak and s3ql_seq_no files, not the most recent 
s3ql_metadata file or the passphrase file.

The last unmount action:
Oct 12 09:47:07 mount.s3ql[14294]: mount.s3ql[14294:Metadata-Upload-Thread] 
s3ql.mount.run: File system unchanged, not uploading metadata.
Oct 12 09:47:08 mount.s3ql[14294]: mount.s3ql[14294:MainThread] 
s3ql.mount.main: FUSE main loop terminated.
Oct 12 09:47:08 mount.s3ql[14294]: mount.s3ql[14294:MainThread] 
s3ql.mount.unmount: Unmounting file system...
Oct 12 09:47:08 mount.s3ql[14294]: mount.s3ql[14294:MainThread] 
s3ql.mount.main: File system unchanged, not uploading metadata.
Oct 12 09:47:08 mount.s3ql[14294]: mount.s3ql[14294:MainThread] 
s3ql.mount.main: Cleaning up local metadata...
Oct 12 09:47:08 mount.s3ql[14294]: mount.s3ql[14294:MainThread] 
s3ql.mount.main: All done.

Cache dir:
20717568 Oct 12 09:47 local:=2F=2F=2Fs3ql=2Fs3ql-overlay=2F.db
197 Oct 12 09:47 local:=2F=2F=2Fs3ql=2Fs3ql-overlay=2F.params
0 Oct  9 15:42 mount.s3ql_crit.log

Recovered files:
2628246 Oct 12 10:45 s3ql_metadata_bak_2
257749 Oct 12 10:45 s3ql_metadata_bak_4
650 Oct 12 10:44 s3ql_metadata_bak_8
276 Oct 12 10:47 s3ql_seq_no_10
276 Oct 12 10:47 s3ql_seq_no_13
275 Oct 12 10:49 s3ql_seq_no_4
338 Oct 12 10:48 s3ql_seq_no_5
275 Oct 12 10:48 s3ql_seq_no_6
275 Oct 12 10:48 s3ql_seq_no_8

It would save a few weeks of work to be able to restore access to the 
filesystem - any and all help is appreciated!

Thanks,
Nikhil

Background: I’m testing s3ql along with overlay and acd_cli’s FUSE mount for 
Amazon Cloud Drive.  s3ql’s local storage backend points to an overlay 
mountpoint with acd_cli as a read-only layer and a local directory as the rw 
layer.  Files are copied to the s3ql mountpoint, and periodically I unmount 
s3ql and acd, sync the local s3ql_data_ directory to acd s3ql_data_, delete the 
local contents of s3ql_data_, and re-mount acd and s3ql.  This setup is still 
in testing, so everything except file deletion is scripted, and naturally 
that’s the portion I erred on - instead of deleting just the local s3ql_data_ 
contents, I wiped out the entire contents of the local s3ql directory.  The 
s3ql_data_ files are completely up to date on acd and safe, but the metadata, 
passphrase, and other files in the root of the s3ql mount are gone.  

-- 
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to s3ql+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [s3ql] Recovery using local cache and s3ql_data_ only

2016-10-12 Thread Nikhil Choudhary
Hello Nikolaus, thanks for the quick response! Apologies if this is a 
duplicate, replying directly to s3ql@googlegroups only didn’t show up in the 
web UI.

> So the only objects that are lost are s3ql_metadata, s3ql_passphrase
> s3ql_seq_no no?

Correct.

> As long as at least one s3ql_seq_no object is present, this should not
> pose a problem.

Does the particular object matter or is any one sufficient?  I recovered 
s3ql_seq_no_[4,5,6,8,10,13]

> If the s3ql_metadata object is missing, fsck.s3ql can recreate it from
> the .db file. You may have to comment out one or two lines in fsck.s3ql
> to deal with the complete absence of existing metadata.

Good to hear, I looked into the patches that you’ve posted previously for 
prioritizing local cache.

> The s3ql_passphrase object can be recovered from the master key, but
> currently there is no code to do that.

Not so good to hear, if this is the roadblock that it sounds like, I’m in for a 
restoration from scratch.

> Sounds like a terrible idea. What are you trying to achieve with this?

I’m not a fan of convoluted setups either, they seem prone to breakage.  That 
said, this is a way to get s3ql’s dedupe, encryption, and caching capabilities 
working with ACD.  Surprisingly this test configuration’s performance is more 
than sufficient for my use: personal video that doesn’t change and will only be 
infrequently read at 5-6mbit, and perhaps once a week have new files added.  
The user-facing functionality gap is that the filesystem is offline while the 
local files are synced to acd, otherwise I haven’t run across any issues (other 
than user-stupidity).  If this continues to work, I’m interested in learning to 
code a bit more and take a stab at adding a real ACD backend to s3ql.

Thanks for s3ql, it really does look great.
-Nikhil

-- 
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to s3ql+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [s3ql] Recovery using local cache and s3ql_data_ only

2016-10-14 Thread Nikhil Choudhary
Hello Nikolaus, thanks for the quick response! 

> So the only objects that are lost are s3ql_metadata, s3ql_passphrase
> s3ql_seq_no no?

Correct.

> As long as at least one s3ql_seq_no object is present, this should not
> pose a problem.

Does the particular object matter or is any one sufficient?  I recovered 
s3ql_seq_no_[4,5,6,8,10,13]

> If the s3ql_metadata object is missing, fsck.s3ql can recreate it from
> the .db file. You may have to comment out one or two lines in fsck.s3ql
> to deal with the complete absence of existing metadata.

Good to hear, I looked into the patches that you’ve posted previously for 
prioritizing local cache.

> The s3ql_passphrase object can be recovered from the master key, but
> currently there is no code to do that.

Not so good to hear, if this is the roadblock that it sounds like, I’m in for a 
restoration from scratch.

> Sounds like a terrible idea. What are you trying to achieve with this?

I’m not a fan of convoluted setups either, they seem prone to breakage.  That 
said, this is a way to get s3ql’s dedupe, encryption, and caching capabilities 
working with ACD.  Surprisingly this test configuration’s performance is more 
than sufficient for my use: personal video that doesn’t change and will only be 
infrequently read at 5-6mbit, and perhaps once a week have new files added.  
The user-facing functionality gap is that the filesystem is offline while the 
local files are synced to acd, otherwise I haven’t run across any issues (other 
than user-stupidity).  If this continues to work, I’m interested in learning to 
code a bit more and take a stab at adding a real ACD backend to s3ql.

Thanks for s3ql, it really does look great.
-Nikhil

-- 
You received this message because you are subscribed to the Google Groups 
"s3ql" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to s3ql+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.