Cronjob для создания образа диска Ubuntu Server 12.04 на внешнем жестком диске USB

Cronjob для создания образа диска Ubuntu Server 12.04 на внешнем жестком диске USB

У меня есть внешний жесткий диск на 1 ТБ, и я хотел бы периодически делать снимок всего сервера (может быть, раз в неделю). Для части cronjob я планирую указать на скрипт bash в:

$ sudo crontab -e

но не знаю, какой инструмент я мог бы использовать, чтобы сделать образ диска сервера во время его работы. Должен ли он быть выключен во время создания образа? Я рассматривал Clonezilla, но похоже, что мне сначала нужно настроить сервер DRBL, что, похоже, мне не нужно.

Я также не знаю, сколько времени может занять резервное копирование или есть ли способ делать только инкрементальные изменения. Я планирую хранить там ~500 ГБ данных.

Нужно ли форматировать внешний жесткий диск каким-то определенным образом? Кто-нибудь знает хорошие руководства/отправные точки?

Заранее спасибо.

решение1

Вы можете использовать rsync для создания копии всей системы. Это не будет "образом" как таковым, но он будет содержать копию всех файлов в системе. Например, вы можете сделать:

rsync -aHAXxv / /mnt/backup/

Это скопирует все в корневой файловой системе в /mnt/backup. (Обратите внимание, что копируется только одна файловая система из-за -x, поэтому, если у вас несколько файловых систем, вам придется выполнить несколько команд или опустить -x и использовать --exclude, чтобы исключить путь резервного копирования.)

решение2

Попробуйте fsarchiverhttp://www.fsarchiver.org/QuickStart Он позволяет вам создавать живые резервные копии из раздела и многопоточное сжатие образа. К сожалению, инкрементальные резервные копии с этим несколько затруднены. Может быть, использовать rsync на dd-образе раздела? Рассмотрите возможность создания сжатого образа раздела и, возможно, инкрементального резервного копирования rsync/bacula некоторых папок.

решение3

Возможно, лучше подумать о том, что именно вы копируете — создание образа диска потребует некоторых ухищрений, чтобы не повредить его из-за работающей системы. Мне приходят на ум два способа:

  • какая-то черная магия предварительного монтирования, которая создает образ при загрузке (звучит сложно), а затем cron при перезагрузке
  • запустить сервер под управлением какого-либо гипервизора и использовать снимки, контролируемые хостом

Другие варианты — сделать резервную копию созданных данных и конфигураций и оставить «биты ОС» для повторного создания новой установкой — возможно, вы даже могли бы написать скрипт установки для сверхбыстрого DR. Это также сэкономит вам много гигабайт места для резервного копирования — то есть вы сможете делать резервные копии чаще и дольше сохранять данные.

решение4

Как упомянул @yesterday, вы можете использовать rsync следующим образом:

rsync -aHAXxv / /mnt/backup/

Это создаст резервную копию auf, /но не других смонтированных разделов, таких как . /var Поэтому вам следует сделать это для каждого раздела, для которого необходимо создать резервную копию.

Но чтобы быть уверенным, что у вас есть согласованная резервная копия, вы должны использовать LVM Snapshots, если они доступны. Например:

# create snapshots
lvcreate -s vg0/root -n root_snapshot -L2G
lvcreate -s vg0/var  -n var_snapshot  -L2G
# mount snapshots to make a copy
mount /dev/vg0/root_snapshot /mnt/snapshot
mount /dev/vg0/var_snapshot  /mnt/snapshot/var
# backup all files (no need for -x here)
rsync -aHAXv /mnt/snapshot/  /mnt/backup/
# unmount the snapshots
umount /mnt/snapshot/var /mnt/snapshot
# remove the snapshots
lvremove vg0/root_snapshot
lvremove vg0/var_snapshot

Связанный контент