Backup и Snapshot: что это?
До появления виртуальных машин все администраторы делятся на тех, кто еще не делает бэкапы и тех кто уже делает бэкапы. С появлением гипервизоров появилась еще две группы – тех, кто еще не делает снэпшоты, и тех кто уже делает. В нашей статье мы разберемся, в чем между ними разница и в каких случаях их можно применять.
Резервное копирование (backup)
Резервное копирование (bakup) – это создание копии данных. Резервные копии нужны для восстановления утраченной или испорченной информации. Также резервное копирование применяется для архивирования (сохранения данных для использования их в будущем).
Копировать можно:
- отдельные файлы;
- группу файлов, объединенных по какому-то признаку;
- операционную систему;
- диски или разделы дисков (посекторно или поблочно);
- виртуальные машины
Виды резервного копирования
Существует несколько видов резервного копирования.
Полное резервное копирование
Во время полного резервного копирования сохраняются все данные. Когда старые бэкапы теряют актуальность, они удаляются целиком, чтобы освободить место. Такое резервное копирование требует много дискового пространства на носителе для резервной копии. Полное резервное копирование занимает много времени и, и поэтому проводится в нерабочее время. Такой способ позволяет сохранить важную информацию, но из-за больших сроков копирования он не очень подходит для восстановления быстро меняющихся данных. Полное резервное копирование для больших объемов рекомендуется сочетать с другими видами создания бэкапов: дифференциальным и инкрементным копированием
Дифференциальное копирование
Дифференциальное создание резервной копии – это копирование только тех файлов, которые были изменены с момента последнего полного копирования. Это позволяет уменьшить объем данных на резервном носителе и при необходимости ускорить процесс восстановления данных. Так как дифференциальное копирование обычно производится гораздо чаще, чем полное, оно очень эффективно, так как позволяет восстанавливать те данные, которые подвергались изменению совсем недавно, и отслеживать изменения файлов с момента полного копирования.
Инкрементное копирование
Этот вид копирования отличается от дифференциального тем, что при первом запуске инкрементного копирования происходит создание резервных копий только тех файлов, которые были изменены с тем пор, как в последний раз выполнялся полный или дифференциальный бэкап. Последующие процессы инкрементного копирования добавляют только те файлы, которые подверглись изменению с момента предыдущего резервирования. При этом изменившиеся или новые файлы не замещают старые, а добавляются на резервный носитель отдельно. Конечно, в этом случае процесс восстановления занимает больше времени, так как нужно последовательно восстановить всю историю изменений файлов.
Время резервного копирования
Для того чтобы правильно планировать резервное копирование, необходимо рассчитать два показателя: RPO и RTO.
RPO (recovery point objective) – это максимальный период времени, за который могут быть потеряны данные в результате аварии. Например, у нас есть информационная система, и если произойдет авария, и мы готовы ее восстановить за один час. Это значит, что за этот час новые данные не будут поступать в нашу информационную систему, и RPO равняется часу. Эти данные невозможно восстановить из резервной копии, потому что они не поступали в информационную систему. Показатель RPO говорит нам, как часто делать резервные копии нашей системы. На основании RPO мы можем выбрать нужную систему резервного копирования и какие технологии применять, чтобы вписаться в этот промежуток времени. Можно ли свести его к нулю? Можно, если использовать два хранилища, которые работают зеркально.
RTO (recovery time objective) - это промежуток времени, в течение которого система может оставаться недоступной в случае аварии. Например, в серверной произошла авария, и мы хотим, чтобы система была снова доступна через час. Это и есть значение RTO. Мы должны создать такой план аварийного восстановления, чтобы за этот час восстановить работоспособность информационной системы на резервном оборудовании или площадки.
Мало рассчитать это время, еще необходимо убедиться в том, что и система резервного копирования, и план аварийного восстановления позволяют достигнуть этих значений. То есть необходимо произвести тестовое восстановление на копии реальных данных.
Инструменты резервного копирования
Все инструменты резервного копирования можно поделить на следующие группы:
- Встроенные инструменты
- Бесплатные программы
- Коммерческие системы
- Облачное резервное копирование
Встроенные инструменты резервного копирования
Современные операционные системы уже включают в себя инструменты резервного копирования. Например, для Windows, начиная с Microsoft Vista, доступна программа Windows Backup And Restore (Архивация и Восстановление). Эта программа позволяет создавать полный бэкап операционной системы с возможностью инкрементного копирования. Windows Backup And Restore позволяет создавать автоматический полный бекап на сменный носитель, оптические диски или в специальное место на удаленном сервере.
Для копирования небольшого количества файлов и каталогов часто используется команда xcopy. Эту команду можно использовать с планировщиком Windows.
Для UNIX-систем самой популярной программой резервного копирования файлов является утилита rsync. Оно обладает богатыми возможностями, включая инкрементное резервное копирование, обновление всего дерева каталогов и файловой системы, как локальных, так и удаленных резервных копий, сохранение прав доступа к файлам, ссылок и многое другое.
Также имеет графический пользовательский интерфейс Grsync, но главное преимущество с Rsync заключается в том, что резервные копии могут быть автоматизированы с использованием сценариев и заданий cron системными администраторами прямо в командной строке.
Бесплатные и платные программы резервного копирования
Существует множество бесплатных и платных программ резервного копирования, которые можно легко найти в интернете. Большинство из них копируют файлы и каталоги, некоторые из них позволяют произвести резервное копирование виртуальных машин и осуществить посекторное копирование носителей.
Главное – это перед использованием на реальных данных проверить на тестовой копии тех же самых данных. Кроме того, необходимо проверить можно или восстановить данные из архива.
Облачное резервное копирование
Существуют решения, которые позволяют копировать в облако не только данные, но и целые виртуальные машины. Так
Такие системы, как CommVault или Veeam позволяют делать резервные копии в облако для:
- образов виртуальных машин,
- конфигураций операционных систем,
- баз данных,
- файлов, размещенных на серверах и рабочих станциях.
При резервном копировании в облако через сеть Интернет особенно важно учитывать значения RPO и RTO, так как каналы с Интернет обычно достаточно медленные.
Если ваша виртуальная инфраструктура размещена в облаке, то облачный провайдер может предложить услугу резервного копирования. В таком случае потребителям не потребуется искать, выбирать, покупать и устанавливать программное обеспечение.
Для резервного копирования достаточно в панели управлении включить услугу в разделе Backup, затем выбрать период хранения резервных копий и нажать на кнопку Изменить.
Shapshot – снимки системы
Бывают ситуации, когда требуется быстро и полностью вернуть виртуальную машину или отдельный файл в то состояние, в котором виртуальная машина или файл находился на определенный момент, например, до обновления операционной системы, установки нового программного обеспечения или внесения ошибочного изменения.
Такую возможность дает технология создания снимков, или снэпшотов (snapshot). При наличии такого снимка можно быстро и полностью «откатить» компьютер или файл в то состояние, в котором он находился в момент создания снимка.
Суть этой технологии состоит в следующем. В момент создания снимка файла или виртуальной машины прекращается запись на диск, создавая таким образом снимок диска, а все последующие дисковые операции производятся в отдельном файле.
Затем, чтобы получить данные с диска, сначала нужно прочить содержимое снимка диска, а затем учесть все связанные с файлом или виртуальной машиной дисковые операции, записанные в отдельном файле. При записи новых или измененных данных на диск достаточно записать эти данных в отдельные файлы.
Если возникнет необходимость вернуть файл или виртуальную машину в исходное состояние, достаточно удалить файлы с изменениями, и продолжить использовать диск с момента создания снимка.
Если возможность отката к предыдущем состоянию уже не будет требоваться, накопленные изменения дисков нужно внести в созданный снимок диска, и продолжить использовать этот диск с новыми данными в обычном режиме.
Рассмотрим виды создания снэпшотов.
Файловые службы
В современных версиях Windows перезапись или удаление файла можно откатить благодаря наличию теневой копии.
В теневых копиях (VSS) содержатся записи об изменениях файлов. Копии делаются автоматически каждый час - по умолчанию Windows хранит 64 копии файла. Использовать копии можно без прав администратору.
Вот важные особенности теневых копий:
- Под теневое копирование выделяется 10% емкости раздела, это значение можно изменить.
- Теневое копирование включается для тома целиком, и включить его для отдельного каталога нельзя.
- Microsoft не рекомендует создавать снимки чаще, чем раз в час.
- По умолчанию максимально хранимых снимков для диска - 64. При превышении этого значения служба VSS начинает циклическую перезапись теневых копий и удаляет самые ранние снимки.
В UNIX-системах можно использовать файловую систему ZFS, которая предоставляет широкие возможности по созданию и управлению снимками файловой системы.
Снимки могут быть сделаны одноразовыми или запланированными как задание cron. В любой момент вся файловая система может быть отброшена до последнего моментального снимка. Старые снимки могут быть клонированы и доступны для восстановления данных из этой версии файловой системы.
Снэпшоты в виртуальных машинах
Виртуальная машина - это файл. Такой файл содержит описание конфигурации виртуальной машины на языке, понятной гипервизору, а также содержимое виртуального жесткого диска, памяти и регистров процессора. Таким образом, с виртуальными машинами можно обходиться точно также, как и с обычными файлами - делать их копии, или создавать с них снимки. Как только создается снимок виртуальной машины, то на диск будет записана копия этого файла. Все, что в виртуальной машине будет изменяться, будет записываться в другой файл. Дальнейшая работа виртуальной машины ведет к модификации этого файла с изменений. В любой момент можно создать новый снимок виртуальной машины, тогда будет создан еще один файл, содержащий изменения. Можно также вернуться назад, на один из сделанных файлов изменений.
- Снэпшоты сохраняются рядом с виртуальными дисками, на основе которых создаются снимки.
- Снэпшоты быстро растут и могут превысить размер исходных виртуальных дисков, особенно быстро это проихсходит на высоконагруженных серверах и серверах баз данных.
- Файлы снэпштотов всегда резервируются динамически, а это негативно отражается на общей производительности, особенно в случае высоконагруженных систем.
- Несмотря на то, что теоретически можно создать цепочки из 32 снимков для одной виртуальной машины, не рекомендуется создавать более трех снэпшотов для сохранения производительности и стабильности работы виртуальной машины.
- Продолжительность жизни одного снимка не должен превышать 72-х часов. В противном случае, его размер станет очень большой, а виртуальная машина будет работать очень медленно.
Такие гипервизоры, как Hyper-V или Wmware vSphere содержат встроенные средства создания снэпшотов. Использование СХД для размещения виртуальных машин и их снэпшотов позволяет снизить влияние снимков на производительность виртуальных машин, благодаря особенному устройству дисковых массивов.
Если вы используете виртуальные машины, размещенные в облаке провайдера, то для создания снимков необходимо в панели управления ввести имя снэпшота, и нажать на кнопку «Сделать снимок».
Выводы
Не смотря на то, что снэпшоты - это одна из разновидностей резервного копирования, снэпшоты не могут быть использованы вместо бэкапа, поскольку снэпшоты не содержат полной копии виртуального диска, а только историю изменений.
Технология создания снимков была разработана в первую очередь для тестовых систем. Например, вы создаете виртуальную машину, затем изменяете ее конфигурацию или устанавливаете новое программное обеспечение, а затем быстро откатываете изменения, если что-то не работает, или удаляете снэпшот если все в порядке.
При создании резервных копий необходимо обратить внимание на следующие моменты.
Бэкап важных данных сделует делать в соответствии с правилом 3-2-1:
1. Создавайте три копии важных данных.
2. Две копии должны быть сохранены на различных физических носителях.
3. Одна копия должна храниться отдельно от двух других, в другом здании.
Резервные копии необходимо регулярно проверять. Если этого не делать, то можно обнаружить, что в резервной копии нет необходимых данных. Так, например, компания Pixar чуть не потеряла часть важных данных, необходимых для производства мультфильма «История игрушек -2» из-за того, что бэкап, содержащийся на ленте, не был вовремя проверен. Тут можно ознакомиться с этой историей подробнее.