Я хочу настроить полное зеркальное отображение файлов с клиентского компьютера на серверный компьютер. В моем воображении конечный результат немного похож на RAID1 и Dropbox.
Я перечислил много ограничений, поэтому, вероятно, не существует идеального решения. Давайте просто посмотрим, что ближе всего. Мои причины и академические и практические.
Контекст:
- современный компьютер рабочей станции с объемом памяти 5,0 ТБ (клиент)
- старый компьютер рабочей станции с 5,5 ТБ хранилища (HTPC/ сервер)
- оба работают под управлением Windows 7
- 1 Гбит LAN
- дешевые потребительские диски
Цель:
- резервирование от механического отказа диска
- доступность данных из обеих систем, даже если другая не подключена
Ограничения:
- может обрабатывать несистемные тома
- как минимум односторонняя синхронизация (клиент -> зеркалирование сервера)
- почти в режиме реального времени, как Dropbox
- хорошее использование доступной пропускной способности сети
- может обрабатывать большое количество небольших файлов, например, полная установка Cygwin с 365k файлами и 21k папками
- может обрабатывать большие файлы до десятков гигабайт (HD-видео)
- файлы, хранящиеся в простой NTFS (без изображений или архивов)
- по умолчанию нет версий
Бонусные цели:
- может обрабатывать объем системы
- двусторонняя синхронизация
- Открытый исходный код
- комплексное решение
- решение на уровне файловой системы (не на уровне блоков)
- ручное управление версиями специальных мест для резервных копий (например, только диск C)
- может обрабатывать открытые файлы (используя теневую копию ?? не на 100% знаком с тем, что умею делать)
- поддержка коммерческого облачного хранилища
- шифрование
- обновления, основанные на изменении файла (по сравнению с периодическим резервным копированием)
Хорошо, я много чего прошу. ;)
Как вы думаете, что-нибудь даже близко?
Самая близкая вещь, о которой я могу думать, это rsync, работающий по непрерывному циклу. Я надеюсь на что-то "более элегантное".