Folder Mirroring feature (like in WHS) [Ideas] [Helpers]

Oct 9, 2010 at 8:09 PM

Hi!

I'm planing to start implementing a folder mirroring feature to be able to have an easy to use redundancy of our data. The new "balanced" mode was the first step to this because it makes no sense to put the original and the mirror on the same physical drive.

First of all:

I think I will implement to use this feature only with the config file. The cool gui would be nice to have a new form but I don't think I want to do this work. So what does this mean? I need someone who can do this :-D. So we would need a new form which is listing configureable strings with relative paths. The perfect solution would be to add automatically the liquesce drive letter before. So an example:

Liquesce drive: T

saved mirror folders:

Music

Data

shown configuration:

T:\Music

T:\Data

 

The goal is to automatically copy all changes to a new folder. Im thinking of some folder names but I think something about ".mirror" or ".redundant" or so...

So in our example everthing in Music and Data will be copied to

T:\.mirror\Music

T:\.mirror\Data

 

An important thing is that every original file has to be mirrored on a different physical disk (I will do this).

 

I'm also thinking about making this folder (.mirror) only readable and hidden. If a disk crashes, one can copy the files from T:\.mirror to the original place (sync prog or diff would be faster but a copy but don't replace should also do this job).

 

It will also be neccessary to implement a cleanup routine. This could be executed manually dayly hourly?! But thats the future.

 

So I know that not everybody needs this feature or everybody likes it... Anyway, it's optional and will be configureable, so no problem and for those who are likeing the idea... I need help!

I'm open for ideas for improving the design...

I'd love to see someone who extends the configuration gui!

Coordinator
Oct 9, 2010 at 8:43 PM

OK.. Stop. Breath...

I have another way of doing this. Stay with me..

For the phase 2 stuff there is a poposal to have  more than 1 drive letter.

So if one of these drive letters becomes the mirror and is associated with the Mirroring functionality, (Should be easier to show in a GUI that way)

Then all updates to it's location can be hidden, and will not polute the sharable resource.

Also, this will not need to be shared / indexed / etc. due to it being essentially a hidden drive to the outside.

I do not mind dropping some new forms, but please try and make any "types" that go into the Config file an enum, so that the strings can easily be removed, and only need to be available in a GUI (Note: String testing / manipulation is very slow and should always be removed if possible)

What did you think the cleanup routine would do ?

Oct 10, 2010 at 8:54 AM

Nothing to contribute here - sorry, just a comment.

Folder mirroring was one of the reasons I left WHS. I don't mind this being implemented, it just means nothing to me.

So please don't stay on that only, if you want data redundancy, you know the proper way...

 

Oct 10, 2010 at 9:12 AM

OK... phase 1, phase 2, ... anyway... I know that it's planed to have more than one drive letter. But is this an independent feature? I think so. The mirroring functionality should not be independent to a specific liquesce drive because it has to know on which physical drive the original files are stored.

Nice idea to present the mirror as an own virtual drive... I'm not sure how to manage this... The easyest way would be a folder structure like I described. The the data liquesce drive (we had T for example) should not show the ".mirror" folder and a new mirror drive should merge all .mirror drives. The configuration would only need an additional drive letter. I think it is important to not configure the physical mirror drives completely independent from the original config. Every physical disk should be used for original files and mirrored files.

So a suggestion:

1. Implement the basic feature with a ".mirror" folder.

2. Filter the .mirror from data disk and make a new liquesce drive with all merged .mirror drives.

From the gui programming I agree! I you are making a form with a folder list and an associated drive letter then it would be easyer to just use this form for the mirroring feature also. But this form has to be logically "linked" to a specific liquesce drive! Also some other settings should be drive specific like the new allocation method and the min free space value.

Agree with no need to share / index / etc. Won't be done if I filter this ".mirror" folder.

 

The think with the enum is a good point. Sorry, I'm not such a noob but quick and dirty... ;) First stabel functionality then cleanup is my thinking. I will change this but right now I'm no c# expert ;). Sorry

By the way: how can I make this automatically formated comments with c# 2010 express? I'm wanting to add comments to the source but without such a feature :-/.

 

To the cleanup. We have to data sets: the Data and the Mirror. These sets can become inconsistent (for example if a physical disk is changed or an initial mirror has to be generated). This cleanup should look for every file in the data if its already placed on a different (!!!) physical disk in the mirror. Thats it. All such implementations like MS WHS or linux/unix alternatives have something like this.

 

Thanks for the comment and keep on running ;)

Oct 10, 2010 at 9:26 AM
NLS wrote:

Nothing to contribute here - sorry, just a comment.

Folder mirroring was one of the reasons I left WHS. I don't mind this being implemented, it just means nothing to me.

So please don't stay on that only, if you want data redundancy, you know the proper way...

 

One step after the other... First mirroring (this should be easy to implement) and then we are looking at parity ;)

And you don't have to use this... I think it's important to keep liquesce as feature rich as possible.