База знаний

Часто задаваемые вопросы, на которые мы уже ответили

Зачем делать бекапы?

Возможно, вы уже слышали известную фразу о том, что люди делятся на 2 типа: кто делает бекапы, и кто теперь делает. Порой мы не придаем внимания резервному копированию, хотя наличие бекапов позволит восстановить данные и сохранить нервы в критических ситуациях.

Раньше под фразой “Сделать бекап” администратор сервера понимал, что ему потребуется просидеть долгое время за записью данных на компакт-диски. Сейчас процесс резервного копирования более элегантен, занимает меньше времени, а еще его можно автоматизировать. Давайте посмотрим, как сейчас подходят к вопросу создания резервных копий.

В зависимости от специфики задач, процесс создания резервных копий может отличаться. Например, нам необходимо обеспечить отказоустойчивость проекта. Хорошей практикой будет являться создание копии виртуальной машины с постоянной синхронизацией данных. Работу веб-сервера можно настроить таким образом, что в случае недоступности основной виртуальной машины, запросы сможет обрабатывать резервная виртуальная машина.

Если на проекте готовится обновление, стоит позаботиться о создании резервных копий, из которых можно быстро восстановиться. Обычно такие копии создаются перед проведением работ с помощью утилит rsync и mysqldump.

Бывают ситуации, когда файловая система виртуальной машины повреждена и не подлежит восстановлению. Для таких случаев резервные копии стоит хранить на облачных хранилищах или бекапных дисках. Это связано с тем, что помимо рабочих данных могут быть повреждены и резервные копии, если они хранятся на одном носителе. Поэтому важно изолировать бекапы. Например, наш сервис Sprintbox позволяет в пару кликов создать изолированную резервную копию виртуальной машины. В дальнейшем бекап можно подключить как бекапный диск для восстановления части данных или сделать полное восстановление.

Создавая резервные копии на регулярной основе, администратор сталкивается с проблемой нехватки дискового пространства для их хранения. В качестве решения можно хранить резервные копии на более объемном носителе. Но есть и другое решение, которое заключается в изменении процесса резервного копирования. Например, инкрементное резервное копирование предполагает копирование в бекап только тех файлов, которые были изменены с момента создания последней резервной копии. Такой подход позволяет сэкономить дисковое пространство: не требуется копировать все данные в каждый бекап. Но есть важная особенность. Например, 1 января была создана резервная копия всех данных. После чего создаются инкрементные копии каждый день. В ходе работ инкрементная копия за 3 января была удалена. В таком случае восстановление из инкрементных копий последующих дат, включая 3 января, не представляется возможным. Чтобы избежать такой ситуации, периодически создаются резервные копии всех данных — так называемые, полные резервные копии. Например, раз в неделю создается полная резервная копия, а остальные шесть дней - инкрементные.

Резервную копию недостаточно создать: её необходимо проверить на факт работоспособности. Порой для этого достаточно распаковать бекап. Проверяют целостность резервной копии по контрольным суммам: это значение, рассчитываемое определенным алгоритмом. С определенной периодичностью можно сравнивать контрольные суммы бекапов — расхождение контрольных сумм укажет на то, что целостность бекапа нарушилась.

Инструментов для создания бекапов достаточно много. Популярный инструмент для резервного копирования данных — утилита tar, которая создает сжатый архив. В инструкции мы рассказали, как использовать данную утилиту. Однако не для всех проектов подходит такое решение: кому-то важно иметь резервные данные «под рукой», не дожидаясь распаковки архива. Для таких случаев есть утилита rsync, которая позволяет быстро скопировать данные в отдельный каталог. В инструкции мы описали процесс создания бекапов с помощью rsync. Резервную копию базы данных обычно создают через утилиту mysqldump.

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

Была ли эта инструкция полезной?