I want to setup full volume file mirroring from a client computer to a server computer. In my imagination the end result is something slightly comparable to both RAID1 and dropbox.
I have listed a lot of constraints, so probably there isn't a perfect solution. Let's just see what gets closest. My reasons are both academic and practical.
Context:
- a modern workstation computer with 5.0TB of storage (client)
- older workstation computer with 5.5TB of storage (HTPC/server)
- both running Windows 7
- 1Gbit LAN
- cheap consumer disks
Purpose:
- redundancy against mechanical disk failure
- data availability from both systems even if the other is offline
Constraints:
- can handle non-system volumes
- at least one way synchronization (client -> server mirroring)
- near real-time, like dropbox
- good utilization of available network bandwidth
- can handle large number of small files, e.g. full Cygwin installation with 365k files and 21k folders
- can handle large files up to tens of gigabytes (hd video)
- files stored on plain NTFS (no images or zips)
- no versioning by default
Bonus objectives:
- can handle the system volume
- two way synchronization
- open source
- integrated solution
- filesystem level solution (not block level)
- manual versioning of special locations for backups (e.g. only C drive)
- can handle open files (using shadow copy?? not 100% familiar with what it can do)
- support for commercial cloud storage
- encryption
- updates based on file change (vs. periodic backups)
Okay, so I'm asking for a lot. ;)
Do you think anything comes even close?
The closest thing I can think of is rsync running on a continuous loop. I'm hoping for something "more elegant" though.