Rsync к серверу резервного копирования привел к занятому дополнительному месту

Я выполнил rsync для резервного копирования одного из наших рабочих серверов. Я поместил рабочий сервер в режим только для чтения так, чтобы никакие дополнительные данные не могли быть добавлены или изменены. Я затем сделал рекурсивный rsync с архивом (-a) для резервного копирования каталога данных рабочих серверов к удаленному резервному копированию, которое настроено идентичное рабочему серверу.

После того, как дни передали, что я нашел, был то, что резервный (целевой) сервер закончил тем, что имел приблизительно на 100 МБ больше данных. Как это могло быть - который нормален? Какая-либо идея, как разыскать это? Прямо сейчас я убираю ls-laR в файл и на рабочем сервере и на сервере резервного копирования. Я затем попробую к разности файлы, чтобы видеть, существуют ли какие-либо различия. Какие-либо другие подсказки?

0
задан 30 December 2014 в 23:47
5 ответов

Я бы не стал особо беспокоиться. В конце концов, это могут быть редко размещенные файлы. Когда они копируются через логический доступ к файлам, который использует rsync, нераспределенное пространство расширяется при чтении как заполненная нулями область, и, таким образом, вы получаете больше места. Размеры файлов в исходном и целевом файлах будут одинаковыми.

Кстати,вместо сравнения я мог бы сравнить контрольные суммы файлов через md5sum или sha1sum.

1
ответ дан 4 December 2019 в 13:53

По умолчанию rsync не удаляет файлы из места назначения, когда обнаруживает, что файл был удален из источника, так что это вероятный источник разницы в размерах. Вы можете определить это поведение с помощью флага - delete , а также указать, как выполнять резервное копирование удаленных / измененных файлов в месте назначения с помощью - backup и - backup -dir flags.

Вот отрывок из старого сценария ночного резервного копирования, который использовал это:

rootdir='/usr/local/backup/'
cmd_frame='rsync -ave ssh --delete --backup --backup-dir=%s %s %s'
logfile=${rootdir}logs/`date +%s.log`
backup_root=${rootdir}copy/
diff_root=${rootdir}diffs/`date '+%Y/%m/%d/'`

sources=''
for domain in `cat ${rootdir}backup_list.txt`; do
    sources=`printf '%s user@host:/home/user/%s ' "$sources" "$domain"`
done

`printf "$cmd_frame\n" "$diff_root" "$sources" "$backup_root"` > $logfile

Самая последняя резервная копия существует в copy / с удаленными / измененными файлами, которые копируются под соответствующая папка diffs / год / месяц / день / , плюс полный путь к файлу.

0
ответ дан 4 December 2019 в 13:53

Еще одна возможность состоит в том, что некоторые файлы были удалены с рабочего сервера, и rsync не получил указание удалить файлы из резервной копии ( - удалить -опция).

1
ответ дан 4 December 2019 в 13:53

Существует несколько возможных причин, по которым копия занимает не так много места, как оригинал:

  • Разреженные файлы. Если при копировании не используются разреженные файлы, копия может занимать больше места, чем оригинал. Если при копировании используются разреженные файлы, копия может занимать меньше места, чем оригинал. В случае rsync есть два возможных варианта (управляемых параметром - sparse ): либо конечные файлы будут разреженными, либо нет. Обычная команда cp имеет три варианта: сделать все копии разреженными, сделать ни одну из копий разреженной, сделать копию разреженной, если исходный.
  • Неисправность файловой системы. Если источник и место назначения находятся в разных файловых системах (даже если они используют один и тот же драйвер, но разные размеры блоков), то требования к хранилищу могут отличаться.
  • Мета-данные. Со временем разработчики придумывают все больше и больше видов метаданных, которые можно хранить вместе с файлами. Не все инструменты копирования могут идти в ногу с введением новых видов метаданных, и не копирование всех метаданных может привести к тому, что копия займет меньше места.
  • Издержки каталога. Размер каталогов может зависеть от порядка добавления и удаления файлов. Например, файловые системы ext2,3,4 не освобождают место в каталоге при удалении файлов. Это может привести к тому, что копия будет занимать меньше места, чем оригинал.
1
ответ дан 4 December 2019 в 13:53

Если вы используете разные ОС на резервных / целевых машинах, да, может быть разница. Один и тот же файл в Linux больше, чем в Windows из-за окончания строк, и это будет иметь смысл, если у вас много текстовых файлов.

Другой сценарий может заключаться в том, что какая-то ОС может использовать степень 10 вместо степени 2 при перечислении файлов, например 2 ^ 10 = 1024, что определенно не 10 ^ 3 = 1000

Это менее вероятно, но вот что ... убедитесь, что вы не смотрите на размер на диске, если у вас другие ОС, например FAT, NTFS, exFAT используют кластеры в качестве блока, что полностью отличается от ext (2,3,4)

-1
ответ дан 4 December 2019 в 13:53

Теги

Похожие вопросы