В нашей исследовательской группе у нас есть потребность в резервном копировании данных, полученных на сканере МРТ, таким образом, чтобы сохранить все полученные когда-либо сканированные изображения (даже если данные могут быть удалены со сканера из-за отсутствия места или по другим причинам). Мы называем это нашим свод.
Хранить в свод, отдельная машина nfs-монтирует раздел данных сканера и копирует данные на свой собственный локальный резервный жесткий диск:
rsync -au /nfsmount/data /pvbackup-vault >> $LOGFILE
Мой вопрос: это безопасно? Наши данные иногда подвергаются повторной обработке после того, как были обработаны ранее. Поэтому мне нужен флаг -u.
Что касается фактических необработанных данных (которые являются священными), я могу предвидеть одну проблему: файлы на сканере перезаписываются из-за какой-то ошибки / ошибки / непредвиденных обстоятельств, а затем данные в свод будет перезаписан. Я не знаю, как от этого защититься. С одной стороны, я хотел бы разрешить повторную обработку данных, возможно, даже повторное получение, с другой стороны, я хотел бы создать свод который невосприимчив к будущим изменениям, по крайней мере, на стороне данных. Должен ли я отмечать эти обстоятельства и разбираться с ними вручную? Утомительно.
Примечание: У меня есть другая инкрементная стратегия (rsnapshot) для защиты от ошибок пользователя, которая позволяет восстанавливать случайно удаленные / измененные данные, достигающие определенного количества часов / дней / недель / месяцев.
Заметка 2: Возможно, мне стоит упомянуть, что мы имеем дело с примерно 250 ГБ в настоящее время и примерно с 10 ГБ в неделю новых данных. Итак, DVD как альтернатива ...
rsync с параметром --link-dest может оказаться полезным. Он создает каталог для каждого резервного копирования. Файлы, которые не изменились с момента последнего запуска, жестко привязаны к уже существующим версиям. Таким образом, у вас есть полная нормальная структура папок после каждого запуска (вы можете напрямую просматривать ее) без дублирования неизмененных данных.
Я использую следующие типы фрагментов для> 1 ТБ с годами для ежедневного резервного копирования. Linux-gui-инструмент, который использует rsync таким образом, - это backintime http://backintime.le-web.org/
#!/bin/bash
# when saving this as "rsync-history" call it with arguments
# sh rsync-history user@host-to-be-backed-up:/directory-on-host/ where-to-save-the-backup/
source=$1
target_fileprefix="$2""$source"
#keep N generations
bigger=100
rm -vrf "$target_fileprefix""$bigger"
#move 1 to 2, 2 to 3...
while [ $bigger -gt 0 ]
do
smaller=$(($bigger-1))
mv -f "$target_fileprefix""$smaller"\
"$target_fileprefix""$bigger" 2>>/dev/null
bigger=$(($bigger-1))
done
mkdir -p "$target_fileprefix""0"
rsync \
-a --whole-file --delete \
--link-dest=$target_fileprefix"1"/. $source. $target_fileprefix"0"/.
Вы делаете первую часть правильно, снимите данные с аппаратного сканера на случай, если с ним что-то случится. Вторая часть должна заключаться в том, что вы делаете резервные копии своего промежуточного хранилища резервных копий. Другими словами, вы должны либо настроить вторичное задание rsync на другое место окончательного отдыха / резервного копирования, либо на самом деле запустить программу резервного копирования и взять периодическую копию для более постоянной / архивной цели.
Часто для сохранения данных вы будете делать две вещи ...
Это гарантирует, что данные вашего сканера защищены, и у вас будут долгосрочные архивы всего, что происходит. Рассматривайте свой диск на диск как временную резервную копию, пока не завершится архивирование, ваш архив священен.