
У меня есть внешний жесткий диск на 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