[Box Backup] Long path names, open files, etc

Chris Wilson boxbackup@boxbackup.org
Tue, 31 Mar 2009 09:18:51 +0200 (CEST)


Hi Scott,

On Tue, 31 Mar 2009, Scott McNee wrote:

> With Open files what if we head down the path of a DLL ? I dont know if 
> that is messy or not, but I have some VSS stuff in a windows programming 
> language that could be made into a dll. That way box code would not be 
> reliant upon any M$ products and would only implement the VSS stuff if 
> the DLL was present ?

We could do that, but what does the interface to the DLL need to be? Are 
we just copying the VSS interface in a different way? The VSS interface 
is complex because VSS itself is complex.

There is a "lite mode" to VSS that I could access from C++ without using 
the SDK, but it is really lite. Is this the one that you are using "in a 
windows programming language?"

Also, having a separate precompiled DLL would make debugging difficult, 
and I expect to have to debug the VSS code a lot.

> You could expand the box interface to support multiple OS's in a modular 
> way. That way as a developer wanted to support say LVM Snapshots on 
> Linux they would only have to provide a shared object and not have to 
> get too involved with the Box code.

No other OS does anything as ridiculous as VSS. Everyone who is sane just 
implements crash consistency. That way they get automatic crash recovery 
as well as consistent backups. Only Microsoft decided that crash recovery 
wasn't important, because their OSes never crash.

> Realistically it is only the paths that box looks at that are the problem?
> ie. Some sort of sequence as follows.
>
> -> Backup Start Event
> -> Trigger Plug-in (Pass Relevant (Root) volumes)
>               <- Plug-in passes relevant mount info for snapshot volume.
> -> Mount Info Verified on Fail use default path. (No snapshots)
> -> Backup as normal from snapshot volume
> -> backup completes
> -> Plugin cleans up snapshot.
>
> There are some other backup tools (Commercial) that have a similar setup.

Backing up is half the problem, perhaps even less than half. The other 
part is restoring. Applications using VSS (can) save their data in 
different files in the snapshot volume, so restoring a snapshot directly, 
file-for-file, doesn't (necessarily) give you a working system at all. At 
least that's my understanding, perhaps Charles can give us more 
information?

Cheers, Chris.
-- 
_ ___ __     _
  / __/ / ,__(_)_  | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer |
\ _/_/_/_//_/___/ | We are GNU-free your mind-and your software |