Не спрашивайте почему. Я должен создать возрастающее решение для резервного копирования файлов (пишущий в присоединенный дисковый массив USB), который имеет супер легкий интерфейс, чтобы позволить любому конечному пользователю (даже как регистратор) восстанавливать версию любого файла к их локальной рабочей станции.
Мои начальные мысли состояли бы в том, чтобы создать решение, которое хранит последние 10 версий (или все версии за прошлые 30 дней) в той же целевой папке, но с возрастающим числом, добавленным к имени файла (filename_1.ext filename_2.ext). Конечный пользователь видит дату и время имен файлов для определения, когда та версия была создана. Конечный пользователь мог просмотреть файлы через сетевой диск в Windows Explorer с помощью Samba. Я могу думать о чем-либо более легком для пользователя, чем это.
Вот некоторые потенциальные проблемы на стороне сервера, которая, возможно, должна быть обращена:
Частота резервного копирования связана с производительностью. Мы говорим папка хранения данных, содержащая, вероятно, 100 000 файлов и 5 ТБ данных. Инкрементное резервное копирование должно быть выполнено по крайней мере раз в час. Таким образом, это получено, чтобы быть решением, которое проектируется для обработки довольно больших наборов файла. Я ожидаю, что это не может быть проблемой, хотя, поскольку объем изменений файла является низким, возможно, 100 изменений файлов каждый час самое большее.
Дублирование данных. Да, устройство хранения данных является дешевым, но с несколькими версиями заднее требование устройства хранения данных будет большим. Я не думаю, что возможно иметь дедупликацию данных и позволить конечному пользователю смочь просмотреть версии файлов с простой долей файла Samba. (Изученный RDIFF и Вы должны выполнить команду rdiff для восстановления.)
Таким образом, я был бы открыт для решения (свободный или недорогой), что вместо пользователей, подключающих диск к резервной папке, они могли поднять веб-интерфейс для просмотра файлов и загрузки по мере необходимости. Не совсем столь же простой как подключение диска, но это позволило бы бэкенду обрабатывать восстановление версии файла.
Какие-либо предложения на решениях?
Низкое техническое решение состояло бы в том, чтобы использовать rsync с --link-dest
опция. Это может быть настроено для создания возрастающих снимков, которые появляются пользователю как полные копии. Прием - то, что измененные файлы копируются, тогда как неизменные файлы трудно связаны со своей копией в предыдущем снимке.
Сценарий rsnapshot
, доступный в центре программного обеспечения Ubuntu, автоматизирует это использование rsync. Затем это - вопрос наличия различного монтирования в системах пользователя, перезаписываемое монтирование, используемое сценарием запланированного резервного копирования и монтированием только для чтения, с готовностью видимым пользователям в их домашней папке. Или Вы разрабатываете другой способ получить доступ к резервному копированию, как Вы предположили, с помощью браузера.