1 июня 2012 г.

Настройка Rsync для бэкапа данных на локальные носители

Как известно, люди делятся на тех кто делает бэкапы и на тех кто их точно теперь (после потери данных :-D будет делать.

Ниже описываю работающую схему бэкапа на сервере при котором копия данных (бэкап) сохраняется на соседний жёсткий диск, который стоит на этом же самом сервере. То есть создаётся локальный бэкап.

Для бэкапа используем утилитку Rsync (http://ru.wikipedia.org/wiki/Rsync). Огромное её преимущество в том, что она очень быстро синхронизирует данные благодаря тому, что каждый раз копирует не все файлы с источника, а лишь те который изменились (и то у файла передаёт лишь изменившийся кусок). Проще говоря если у вас есть, например, терабайт файлов и каждый день меняется, например, из них 2-3 гигабайта, то именно вот эти фрагменты файлов из 2-3 гигабайтов и будут скопированы в резервную копию. Это реально в сотни раз ускоряет процесс создания резервной копии, так как не надо каждый раз гонять их с диска на диск.

Rsync по умолчанию установлен в  Ubuntu, всё что нам надо это задать 1 команду на выполнения процедуры копирования.

Представим, что исходные данные хранятся у вас в папке /home/user/files, а диск, на который вы хотите копировать их подключен в /media/backup.

Собственно всё делается одной командой приведу её в том виде, как она работает у меня.

rsync -r -t -v -z -h  --progress  --delete  /home/user/files   /media/backup

Расшифрую:

-r  - рекурсивный режим, копируются все подкаталоги и все файлы
-t  - обновлять время изменения файла в копии данных
-v - вывод сообщений в терминал
-z  - дополнительное сжатие данных при их передачи, актуально скорее когда бэкап делается удалённо на другой компьютер (рассмотрим в следующий раз)
-h - выдаёт статистику в удобном виде
--progress - показывает скорость передачи данных и сколько процентов осталось, удобно
--delete -удалять из копии (бэкапа) те файлы, которых нет на стороне источника данных

Команду можно запустить через терминал вручную, можно добавить в крон (как у меня). Возможности Rsync достаточно большие полный man есть на официальном сайте http://rsync.samba.org/documentation.html либо можно посмотреть с переводом вот здесь http://www.opennet.ru/man.shtml?topic=rsync&category=1&russian=0

Через Rsync, например, достаточно удобно и безопасно делать регулярные удалённые копии бэкапа, например, через SSH. Напишу об этом один из следующих постов.

На неделе отдельным постом дополню тему локального бэкапа и настройки Rsync.

2 комментария:

Unknown комментирует...

надо только отметить что RSYNC не годится для резервирования большого объема, так как 1Г файлы она передает на скорости 5мегабайт в секунду...

LINUX комментирует...

ередаёт куда?
На локальный диск пишет? Ну не знаю в логах куда более существенные цифры, а через интернет - все зависит от ширины канала.

У меня сейчас архивируются через интернет, как резервная копия, данные файлопомойки общим объёмом 700 гигов, из которых работающие меняют в день примерно от 300 до 1 гига. Там порядка 800 000 файлов. Так вот больше времени приходится ждать пока синхронизируется список изменений. В принципе скорость передачи файлов вполне соответствует скорости канала (в смысле на 100 % соответствует).