Что такое снимки файловой системы
Снапшоты — что это и как их использовать
Первое, что стоит отметить – снапшот виртуальной машины может быть выполнен даже на выключенном устройстве. Однако выполнение снимка на несколько секунд приостанавливает работу компьютера. Но потом оборудование продолжает работать в своем прежнем режиме.
Snapshot можно сделать двумя способами:
- на странице с дисками;
- на странице с виртуальными машинами (кнопка «откатиться на предыдущий снапшот»).
Все созданные снимки файловой системы можно найти на странице с дисками. Особенностью «снимков» является их размер. Снапшоты «весят» на порядок меньше, чем диски. Еще одна особенность заключается в том, что сделанные снимки представляют собой своеобразную цепочку или дерево. Поэтому если удалить один из снимков, его «соседи» объединяться между собой. Процесс удаления ненужных снимков не занимает много времени.
Вот как выглядят «деревья» снапшотов на Windows и Linux:
Существенным преимуществом снапшотов является их многочисленность. Разработчики могут делать до 60 снимков, тем самым страхуя себя от случайной потери важной информации. Но не стоит переусердствовать, все-таки снапшоты тоже «подгружают» ОЗУ, а потому существует вероятность возникновения определенных ограничений в функционировании виртуальной инфраструктуры. Поэтому любой разработчик должен знать, что длительное хранение снепшотов не является целесообразным.
Моментальные снимки (Snapshots) гипервизора
В виртуальной среде, снэпшоты могут быть запущены на уровне гипервизора, это значительно упрощает управление моментальными снимками. Вместо контроля и выполнения мгновенных снимков отдельно каждой виртуальной машины, управление консолидируется только на уровне гипервизора. Например, управление моментальными снимками для VMware можно осуществлять изнутри VCENTER. Так как создание моментальных снимков и репликации выполняются на уровне гипервизора, то их хранение может быть выполнено на систему хранения данных любого производителя. Все три вышеупомянутых метода создания моментальных снимков и репликации (приложения, файловые системы и гипервизор), как правило имеют проблемы с производительностью, поскольку количество и возраст снимков постоянно увеличивается.
Преимущества быстрого отката изменений при использовании снапшотов
Технология Snapshot имеет следующие преимущества:
- автоматизация процесса архивирования;
- отсутствие влияния на общую производительность файловой системы;
- возможность применения максимальной дисковой емкости при минимальной стоимости услуги;
- безопасность данных;
- масштабируемость.
Отдельно стоит сказать о безопасности копируемых данных. Снапшот виртуальной машины защищает информацию от записи и предоставляет ее в режиме ReadOnly. Поэтому в сделанном снимке будут хранится исключительно неповрежденные и статичные копии, которые можно восстановить при случайном повреждении или удалении оригинальных данных.
Файловые службы
В современных версиях Windows перезапись или удаление файла можно откатить благодаря наличию теневой копии.
В теневых копиях (VSS) содержатся записи об изменениях файлов. Копии делаются автоматически каждый час - по умолчанию Windows хранит 64 копии файла. Использовать копии можно без прав администратору.
Вот важные особенности теневых копий:
- Под теневое копирование выделяется 10% емкости раздела, это значение можно изменить.
- Теневое копирование включается для тома целиком, и включить его для отдельного каталога нельзя.
- Microsoft не рекомендует создавать снимки чаще, чем раз в час.
- По умолчанию максимально хранимых снимков для диска - 64. При превышении этого значения служба VSS начинает циклическую перезапись теневых копий и удаляет самые ранние снимки.
В UNIX-системах можно использовать файловую систему ZFS, которая предоставляет широкие возможности по созданию и управлению снимками файловой системы.
Снимки могут быть сделаны одноразовыми или запланированными как задание cron. В любой момент вся файловая система может быть отброшена до последнего моментального снимка. Старые снимки могут быть клонированы и доступны для восстановления данных из этой версии файловой системы.
2) Снапшоты образуют цепочки или деревья.
VMware советует делать в одной цепочке только 2–3 снапшота:
a. Большее число снапшотов или снапшоты большого размера могут вызвать уменьшение производительности виртуальной машины и хоста.
b. Создание большого файла снапшота может заполнить доступное пространство хранилища, отключив таким обазом все виртуальные машины до тех пор, пока не будут внесены коррективы. Другими словами, снапшот на каждом отдельно взятом хосте может оказывать влияние на все виртуальные машины, использующее данное устройство хранения.
c. Файл снапшота может оказаться поврежденным.
d. Размер диска снапшотов оказывает непосредственное влияние на продолжительность времени, которое потребуется на удаление снапшота, относящегося к данной виртуальной машине.
Деревья снапшотов на Windows и Linux
Выбор подходящего снимка для виртуальной среды
Многим центрам обработки данных необходимо использовать не один, а несколько различных методов создания моментальных снимков. Например, с критически важными приложениями стоит работать индивидуально, используя при этом метод моментального снимка конкретного приложения. Кроме того, большинство крупных центров обработки данных не имеет возможности использовать моментальные снимки только на уровне файловой системы или гипервизора из-за проблем с производительностью. Таким организациям, как правило, удобнее использовать встроенную систему хранения или программу для резервного копирования с возможностями создания моментальных снимков.
Всегда странно представлять себе времена, когда чего-то не было. Сложно сегодня представить себе, как мы жили без персональных компьютеров, без интернета, без торрентов, mp3, или без электрокопировальных аппаратов, в просторечии «ксероксов». Тем не менее всегда были времена, когда что-то привычное нам еще не существовало. Также обстояло дело и с понятием «снэпшота данных». Но сперва — что же такое «снэпшот»?
"Снэпшот" (дословно — «фотография», «моментальный снимок», здесь и далее под этим словом мы будем понимать конкретно, не уточняя, «снэпшот данных») это моментальная копия состояния данных в системе хранения, или программе, зафиксированная на определенный момент времени. Это может быть моментальное состояние содержимого файла, базы данных, или файловой системы (как частного случая «базы данных»).
В применении к системам хранения данных этот термин появился вместе с первыми системами хранения NetApp и был, на тот момент первой и главной их «фичей».
Ранее я уже рассказывал о внутренней файловой структуре WAFL, придуманной основателями NetApp для своего продукта, и о том, каким образом она работает. Интересующихся техническими деталями отошлю к прекрасной авторской публикации, которая сейчас переведена на русский язык. Именно эта, несколько необычная, на первый взгляд, по принципам работы, файловая структура сделала возможной реализацию концепции снэпшотов — мгновенных копий состояния данных, хранимых на дисках такой системы.
Как я уже рассказывал в статье про WAFL, основной принцип ее работы состоит в том, что однажды записанные на диск данные, в дальнейшем, не изменяются. Данные (например файл) можно на WAFL либо записать (целиком), либо стереть (целиком). В случае же необходимости изменения его содержимого эти изменения «дописываются» в свободное место дискового пространства, после чего на блоки с записанным содержимым изменений переставляется указатель содержимого файла (старый блок содержимого помечается как свободный, или не помечается, если на него ссылается более одного файла, или он использован в снэпшоте). Следовательно, для того, чтобы сохранить текущее состояние данных, при таком алгоритме работы записи, все что нам нужно, это сохранить «корневой inode» на данный момент времени.
Inode, напомню, это блок данных, определяющий содержимое файла. Он может ссылаться либо прямо на конкретные блоки, либо, для больших файлов, на промежуточные inodes, образуя «дерево» от «корня», единственного на всю файловую систему тома, так называемого «корневого» inode.
Таким образом, создав копию ровно одного блока, корневого inode данной файловой системы, мы получим, обратившись к нему, вместо текущего «корня», «псевдо-файловую систему», хранящую без изменений (read-only) все данные на момент времени, когда мы скопировали этот inode. Ведь, как вы помните, однажды записанные блоки данных файлов в дальнейшем не изменяются.
Каким же образом это выглядит на практике?
Для упрощения рассказа я буду рассматривать NAS-вариант работы NetApp, хотя, как вы знаете, аналогичным образом тот же самый сторадж может работать и как SAN-устройство.
Каждый том на системе хранения NetApp является отдельной файловой системой. На каждой файловой системе можно создать до 254 снэпшотов ее состояния, по методике, описанной выше.
Все созданные снэпшоты автоматически доступны через директорию /.snapshot (или /~snapshot) в корне тома. Зайдя туда, мы увидим имена созданных снэпшотов (они могут носить либо «собственное имя», например "/lets_fix_this_small_bug…oh_shit. ", будучи созданными вручную, либо, если создаются по расписанию, будут располагаться в поддиректориях hourly.0(1,2,3…), daily.0(1,2,3) и так далее.
Войдя в такую папку мы увидим полностью все содержимое нашего тома, со всеми файлами в нем, причем все файлы будут доступны на чтение, и читаться из них будет все то содержимое, которое было в них на момент взятия снэпшота.
Причем это даже выглядит несколько странно, на первый взгляд.
Допустим, что у вас есть том, размером 1TB, на котором лежит файл базы данных, размером 750GB. Для этого тома вы создаете снэпшоты каждый час по расписанию. Войдя в /.snapshot вы увидите в ней поддиректории /hourly.0, /hourly.1, и так далее, причем в каждой из них будет лежать «файл размером 750GB». При этом на собственно томе, емкостью 1TB, на котором как бы и лежат эти 24 (каждый час) копии базы по 750 гиг размером каждая, еще будет гигабайт 200 свободного места.
При этом любой из этих 24 «файлов» мы можем скопировать в резервную копию на внешнее хранилище, смонтировать как независимый read-only и использовать (читать) эти данные, как если бы это была реальная база данных, восстановить из нее данные, скопировав ее на место «активной», например в случае «все сломали, надо откатится на состояние час назад», и так далее.
Где же все это хранится?
Дело в том, что все эти «файлы», это просто ссылки на одни и те же блоки неизмененных данных. Место же на диске занимают только изменения, между снятыми снэпшотами. Допустим, что за сутки мы наменяли в этой базе блоков на 50 гигабайт. Тогда занятое место на дисках, в томе размером 1TB, на котором лежит файл базы на 750GB, и снэпшоты каждый час, будет 1TB — 750GB файл — 50GB изменений = 200GB свободно.
Если изменений за час между двумя снэпшотами (hourly.0 и hourly.1) получилось на 1% объема базы, то hourly.1 займет 7,5GB места на диске, указывая своими inodes на измененные, по сравнению с предыдущим снэпшотом, блоки. Все же остальные inodes по прежнему будут ссылаться на прежние, неизмененные блоки.
Чем удобно использование снэпшотов?
Простейший пример я уже привел. Допустим мы, или наши пользователи, «все сломали». Это может быть база данных, или же, допустим, экселевский файл, в котором, случайно, грохнули не те данные, успели записать, а потом обнаружили это, а восстановить надо срочно, «или нас всех убьют». Но мы знаем, что час (два, три, сутки, неделю, месяц назад, все зависит от частоты и регулярности снэпшотов) нужный нам файл был исправен.
Мы (это может сделать, кстати, даже сам пользователь) просто заходим в папку /.snapshots и вытаскиваем оттуда простым копированием нужный нам файл, на нужный момент времени, час, два, сутки, и так далее назад.
Либо, если у нас есть специальная лицензия SnapRestore, одной командой из консоли стораджа, «откатываем» состояние тома на нужный момент времени целиком (что удобно, если нужно восстановить не отдельный одиночный файл, а содержимое всего тома, в целом).
Таким образом, снэпшоты это, для пользователя, очень оперативная резервная копия, доступная тут же, на этом же сторадже. Кстати, в случае использования Windows XP или 7, вы будете видеть файлы в снэпшоте в панели «Previous versions» свойства файла или папки, NetApp интегрируется в этот механизм Windows как VSS-provider.
Теперь рассмотрим более сложный вариант. Допустим, мы эксплуатируем большую, ответственную, mission-critical SQL-базу данных предприятия.
Разумеется, каждый вечер, эта база данных бэкапится на ленту, для создания резервной копии.
База большая, и резервная копия копируется на ленту примерно час.
«Ничто не предвещало беды», но однажды, посреди рабочего дня, допустим в 3 часа дня, база необратимо портится.
Какие действия предпринимает сисадмин, для того, чтобы базу восстановить?
Мы считываем резервную копию по состоянию на конец прошлого рабочего дня (читаться она будет, допустим, столько же, сколько писалась — час), а затем нам следует «накатить» на нее redo-log-и, от момента создания бэкапа, вечером, и до момента, предшествующего сбою, то есть до 3 часов следующего дня. Этот «накат» часто довольно объемен, и также занимает какое-то время, ведь операции в SQL происходят не мгновенно. Допустим, через 30 минут, после окончания считывания бэкапа, база восстановлена в рабочем состоянии на момент предшествующий сбою, и мы готовы продолжать работу. Итого — 1:30.
В случае использования снэпшотов дела будут происходить следующим образом. У нас также делается ежедневная копия на ленту для обеспечения безопасности хранения, например на случай полного выхода из строя системы хранения, но у нас хранилище живо, повреждены только данные на нем. Мы знаем, что час назад база была жива и здорова. Мы восстанавливаем базу по состоянию на 2 часа дня, и так как снэпшот создается и восстанавливается практически мгновенно, то это занимает не час, а всего несколько секунд, и накатываем на нее redo-logs, но не со вчерашнего вечера, как в предыдущем случае, а всего за один час, с 2 часов, то есть момента создания снэпшота, до момента аварии, в 3 часа дня. Это занимает также не полчаса, а всего несколько минут.
Итог: спустя несколько минут, а не полтора часа, как обычно, наша база вновь в рабочем состоянии.
Очевидные преимущества использования снэпшотов привели к тому, что, на сегодня, практически все производители систем хранения предлагают для своих систем ту или иную реализацию «снэпшотов» как идеи.
Однако, как мы помним, «не все йогурты одинаково полезны».
Принципиальное отличие, позволяющее реализовать снэпшоты так, как это было описано мной выше — устройство WAFL, которое, как я уже рассказывал, не позволяет изменять уже записанные данные. Такая модель позволяет реализовать снэпшоты легко и просто. Но все обстоит хуже, если структура записи традиционна. При этом нам придется сперва, до начала использования, выделить зарезервированное пространство блоков, заранее отняв его у данных, затем, при каждом изменении блока на диске, копировать его содержимое в специальный зарезервированный пул, затем изменять его содержимое на его прежнем месте, затем изменять метаданные, указывающие на старое содержимое, для снэпшота.
Эта технология носит название Copy-on-Write (COW), и широко применяется в системах хранения других производителей, в их реализации снэпшотов.
Как вы видите из описания выше, даже само наличие включенного механизма снэпшотов для тома превращает одну операцию записи для системы хранения в три (чтение исходного содержимого, запись исходного содержимого на новое место, запись измененного содержимого на старое место).
Результат не заставляет себя ждать. Использование COW-snapshots резко ухудшает производительность системы хранения его использующего. Это разительный контраст с системами NetApp, в которых снэпшоты вообще никак не влияют на производительность, ведь никакого копирования при записи в них не происходит, все данные остаются на своих местах.
(демонстрация результатов производительности на тесте SPC-1)
Следствием такого неприятного поведения при использовании COW-snapshots является рекомендация вендоров свести использование таких «неправильных снэпшотов» к минимуму, или не использовать их вовсе на primary-системах, предъявляющих повышенные требования к производительности.
Однако системы NetApp такой проблемой не страдают и никаких ограничений на использование снэпшотов не предъявляют.
Кроме этого, часто (по той же причине) общее количество снэпшотов на таких системах ограничено всего парой десятков максимум, отмечу, для контраста, что на системах NetApp можно использовать до 254 снэпшотов на каждый том, что, при общем количестве томов, допустимых систему, равного 500, достигает теоретического максимума в 127 тысяч.
Это позволяет, при использовании классической «ротации» резервных копий, хранить в 254 снэпшотах резервные копии данных тома до года включительно.
Также немаловажной является возможность создавать «по настоящему мгновенные» копии данных, причем независимо от размера «копируемых» данных. Хоть базу на 100MB, хоть на 100TB, снэпшот с нее будет всегда создан мгновенно. Например, мы можем создать «резервную копию» не «за час», а «за секунду», а затем, уже не нагружая нашей задачей реальную боевую базу, потихоньку копировать на резервное хранилище содержимое такого снэпшота.
PS: На традиционном «фото для привлечения внимания» в заголовке — задняя часть контроллера самой младшей модели NetApp — FAS2020. Самой младшей, но, тем не менее, обладающей всеми возможностями хранилищ NetApp, в том числе и работой со снэпшотами.
На фото, слева направо — два порта FC 4Gb/s, порт последовательной консоли, порт out-of-band микроконтроллера удаленного администрирования, и два порта Gigabit Ethernet.
PPS: А еще можно было бы написать на этой неделе про 5 место NetApp в Fortune's list Best Plaсes to Work, вон Intel стррашно гордится аж 51-м местом (из ста), но мне показалось, что все эти радости пиар-отдела Хабру не очень интересны, поэтому упомяну об этом «бегущей строкой» в самом конце. Да, пятое место в сотне лучших работодателей США, и пятнадцатое (выше Google (30) и Apple (20), кстати) по списку сайта Glassdoor, оценивающего компании не «снаружи», как Fortune, а изнутри, анонимными голосами самих работников. «Пустячок, а приятно».
«Snapshot» в переводе с английского означает «выстрел» или «мгновенный фотоснимок». Снапшот — это своего рода фотоснимок виртуальной машины (ВМ), слепок её конкретного состояния. Виртуальная машина может использоваться для различного рода экспериментов, или в нее могут вноситься изменения, которые затем нужно быстро откатить назад. Именно для того, чтобы каждый раз не мучиться восстановлением предыдущего состояния ВМ и существуют снапшоты, возвращающие ВМ к исходному состоянию. Снапшоты — не такая уж простая операция, во всяком случае, делаться она должна по правилам, о которых мы сегодня и расскажем.
Резервное копирование (backup)
Резервные копии нужны для восстановления утраченной или испорченной информации. Также резервное копирование применяется для архивирования (сохранения данных для использования их в будущем).
Копировать можно:
- отдельные файлы;
- группу файлов, объединенных по какому-то признаку;
- операционную систему;
- диски или разделы дисков (посекторно или поблочно);
- виртуальные машины
Моментальные снимки (Snapshots) файловых систем
Все больше и больше файловых систем имеют встроенные функции создания моментальных снимков. Способ создания моментальных снимка файловых систем подобен снимкам прикладных программ, этот способ действует на всю файловую систему, а не только приложение. Через API файловых систем могут быть созданы моментальные снимки приложений в стабилизированном состоянии. Такие снимки возможны для различных приложений, но ограничены типом операционной системы и виртуальной машины. Это означает, что различным операционным системам необходимы свои собственной технологии создания моментальных снимков. Так же, большинство моментальных снимков файловых систем не имеют централизованного управления. Контроль и управление план-графиком создания моментальных снимков должен быть индивидуален для каждого отдельного сервера. Таким образом, для больших центров обработки данных это будет проблема, поскольку может привести к многочисленным индивидуальным заданиям по созданию и отслеживанию моментальных снимков.
Моментальные снимки (Snapshot) и репликация являются одним из инструментов обеспечения защиты данных, но выбор правильного метода создания снимков для центра обработки данных остается сложной задачей.
ИТ-специалисты все чаще рассчитывают на моментальные снимки (Snapshots), как способ защиты данных в виртуальной и физической среде. Так как за считанные секунды, моментальные снимки позволяют создать копию данных на определенный момент времени. Этот экземпляр может быть использован как в целях резервного копирования и восстановления данных, так и в качестве исходного образа для развертывания новой виртуальной машины (VM).
Тем не менее, существуют две проблемы использования снимков в целях защиты данных. Во-первых, снимок является экземпляром, а не полной копией. Во-вторых, снимки могут быть выполнены на разных уровнях: виртуальных машин (VM), гипервизора или массива хранения данных. В этой статье мы расскажем, как выбрать правильный метод создания моментальных снимков для центра обработки данных.
1) Снапшот — не .
Используйте отдельные инструменты для резервного копирования. Делайте снапшот, вносите изменения в виртуальную машину и удаляйте снапшот, как только будет подтверждено ее корректное состояние.
Программы для резервного копирования с помощью моментальных снимков
Моментальные снимки можно использовать в целях резервного копирования виртуальных машин и физических серверов, поэтому различные сторонние решения активно применяют эту функцию для создания и управления моментальными снимками. К таким решениям можно отнести Veritas Netbackup и Commvault. Данные решения по существу заменяют собой возможности всех остальных методов моментальных снимков, перечисленных выше. Это позволяет использовать лучшие технологии моментальных снимков от различных производителей, а так же дает возможность наиболее эффективно осуществлять поиск данных в пределах снимка. Единственным препятствием является ограниченная поддержка тех или иных систем хранения данных, в остальных случаях такие программы для резервного копирования это убедительный аргумент в их пользу.
4) Используйте более одного снапшота для промежутка времени в 24–72 часа.
Хотя 2–3 дня — это рекомендуемый период, иногда снапшот хранится 5 дней, а затем автоматически удаляется:
a. Это предотвращает снапшоты от разрастания до такого большого размера, который может вызвать проблемы при удалении его с диска виртуальной машины.
b. Сделайте снапшот и удалите его сразу после того, как внесете необходимые коррективы.
c. Будьте аккуратны со снапшотами высокозагруженных виртуальных машин, таких как серверы баз данных и почтовые серверы. Такие снапшоты могут быстро увеличиваться в размерах, заполняя пространство хранилища. Удаляйте снапшоты с виртуальных машин, как только они перестают быть необходимыми.
3) Не делайте снапшотов памяти виртуальной машины:
a. Продолжительность времени, которое занимает у ESX хоста запись памяти на диск, коррелирует с объемом памяти, на использование которого настроена виртуальная машина. Это может увеличить время на завершение операции, что в свою очередь может замедлить производительность виртуальной машины.
b. Если нет острой потребности в возвращении виртуальной машины к конкретному состоянию памяти, отключите опцию «Память». Состояние памяти редко может потребоваться.
Плюсы и минусы бэкапа
Главным преимуществом резервного копирования считается возможность быстрого восстановления любых данных. Но бэкап (именно так принято называть резервную копию цифровых данных) далеко не всегда позволяет полностью восстановить работу диска или ОС. Такая проблема чаще всего обусловлена тем, что сразу же после бэкапа может происходить существенное изменение копируемых данных. Следовательно, многие файлы и приложения ОС изменяются и уже не могут быть связаны с копией.
Поэтому перед тем как сделать бэкап, следует воспользоваться снапшотом. Snapshot — это снимок или фотография текущего состояния системы. Снапшот(иногда говорят «снепшот») позволяет запечатлеть то состояние системы, в котором она сейчас находится, а затем «откатить» Операционную Систему до того момента, когда был сделан снимок.
Этот способ сохранения информации применяется тогда, когда требуется вернуться к одному состоянию виртуальной машины без необходимости создания нового.
Снапшоты содержат следующую информацию:
- Настройки виртуальной машины;
- Состояние дисков виртуальной машины;
- Содержимое памяти виртуальной машины.
Что такое менеджер снимков?
Менеджер снимков это программное обеспечение, которое создает снимки и управляет множеством копий метаданных, сохраняя их в актуальном состоянии, в качестве активно-меняющегося набора данных. Менеджер снимков часто является частью чего-то еще, например, входит в состав какого-либо приложения, файловой системы, гипервизора или программно-аппаратной платформы системы хранения данных. Любая из этих реализаций менеджера снимков имеет свои уникальные преимущества, и многие центры обработки данных выбирают сочетание несколько разных решений для того, чтобы обеспечить полноценную защиту и восстановление данных.
Вместо заключения
Снапшот позволяет запечатлеть состояние виртуальной машины в конкретный момент времени. Снапшоты полезны в том случае, если требуется вернуться к одному состоянию виртуальной машин без необходимости создавать новые.
До появления виртуальных машин все администраторы делились на две группы: тех, кто еще не делает бэкапы (bakup - резервное копирование), и тех, кто уже делает.
С появлением гипервизоров выделились еще две полярные группы: тех, кто еще не делает снэпшоты (snapshot - снимки файловой системы), и тех, кто уже делает.
В нашей статье мы разберемся, в чем между ними разница и в каких случаях их можно применять.
Что такое моментальные снимки (Snapshots)?
Моментальные снимки содержат копию информации о том, каким образом организованы данные на устройстве хранения (структуру данных) на определенный момент времени. Большинство файловых систем и систем хранения данных имеют двухуровневую модель хранения данных. Первый уровень это метаданные, представляющий собой небольшой каталог, который указывает на второй уровень, фактическое расположение данных на диске. Вместо того чтобы копировать все физические данные 2-ого уровня, моментальные снимки делают только копию метаданных. Это делается почти мгновенно, и занимает очень мало дополнительного места для хранения. Затем блоки этого снимка переходят в состояние только чтения. После этого, менеджер снимков поддерживает одновременно две копии метаданных, активную, которая продолжает обновляться, и статическую копию, которая будет использована уже для других целей, таких как резервное копирование, репликация и так далее. С количеством активных снимков увеличивается число копий метаданных.
Основным отличием технологий создания моментальных снимков является алгоритм обработки изменений блоков данных. Как правило, в целях сохранения целостности снимка, в различных решениях применяют два различных метода управления изменениями блоков.
Различные решения для создания снапшотов имеют свои нюансы, но в целом, они используют в своей работе один из двух вариантов. В обоих случаях, набор данных снимка целиком зависит от доступности первичной копии и размера занимаемого пространства, которое варьируется в зависимости от количества снимков и времени хранения этих снимков.
Различия между Backup и Snapshot
Некоторые пользователи зачастую путают snapshot с резервным копированием (бэкапом). Но эти две функции имеют совершенно разный механизм действия.
Backup предусматривает архивацию определенного участка системы (или всей системы целиком). Бэкап – это длительный процесс, который вынуждает остановить все дисковые операции над участком файловой системы, который подлежит копированию. Главной проблемой бэкапа является возможность изменения скопированных участков. Именно поэтому зачастую возникают проблемы с восстановлением работы различных сервисов.
Снапшоты не требуют остановки операций и проводятся в течение нескольких секунд. Благодаря этому сервисы не успевают измениться и, следовательно, без проблем восстановятся в случае необходимости.
Виды резервного копирования
Существует несколько видов резервного копирования.
Полное резервное копирование
Во время полного резервного копирования сохраняются все данные. Когда старые бэкапы теряют актуальность, они удаляются целиком, чтобы освободить место. Такое резервное копирование требует много дискового пространства на носителе для резервной копии. Полное резервное копирование занимает много времени и, и поэтому проводится в нерабочее время. Такой способ позволяет сохранить важную информацию, но из-за больших сроков копирования он не очень подходит для восстановления быстро меняющихся данных. Полное резервное копирование для больших объемов рекомендуется сочетать с другими видами создания бэкапов: дифференциальным и инкрементным копированием
Дифференциальное копирование
Дифференциальное создание резервной копии – это копирование только тех файлов, которые были изменены с момента последнего полного копирования. Это позволяет уменьшить объем данных на резервном носителе и при необходимости ускорить процесс восстановления данных. Так как дифференциальное копирование обычно производится гораздо чаще, чем полное, оно очень эффективно, так как позволяет восстанавливать те данные, которые подвергались изменению совсем недавно, и отслеживать изменения файлов с момента полного копирования.
Инкрементное копирование
Этот вид копирования отличается от дифференциального тем, что при первом запуске инкрементного копирования происходит создание резервных копий только тех файлов, которые были изменены с тем пор, как в последний раз выполнялся полный или дифференциальный бэкап. Последующие процессы инкрементного копирования добавляют только те файлы, которые подверглись изменению с момента предыдущего резервирования. При этом изменившиеся или новые файлы не замещают старые, а добавляются на резервный носитель отдельно. Конечно, в этом случае процесс восстановления занимает больше времени, так как нужно последовательно восстановить всю историю изменений файлов.
Время резервного копирования
Для того чтобы правильно планировать резервное копирование, необходимо рассчитать два показателя: RPO и RTO.
RPO (recovery point objective) – это максимальный период времени, за который могут быть потеряны данные в результате аварии. Например, у нас есть информационная система, и если произойдет авария, и мы готовы ее восстановить за один час. Это значит, что за этот час новые данные не будут поступать в нашу информационную систему, и RPO равняется часу. Эти данные невозможно восстановить из резервной копии, потому что они не поступали в информационную систему. Показатель RPO говорит нам, как часто делать резервные копии нашей системы. На основании RPO мы можем выбрать нужную систему резервного копирования и какие технологии применять, чтобы вписаться в этот промежуток времени. Можно ли свести его к нулю? Можно, если использовать два хранилища, которые работают зеркально.
RTO (recovery time objective) - это промежуток времени, в течение которого система может оставаться недоступной в случае аварии. Например, в серверной произошла авария, и мы хотим, чтобы система была снова доступна через час. Это и есть значение RTO. Мы должны создать такой план аварийного восстановления, чтобы за этот час восстановить работоспособность информационной системы на резервном оборудовании или площадки.
Мало рассчитать это время, еще необходимо убедиться в том, что и система резервного копирования, и план аварийного восстановления позволяют достигнуть этих значений. То есть необходимо произвести тестовое восстановление на копии реальных данных.
Выводы
Несмотря на то, что снэпшоты - это одна из разновидностей резервного копирования, снэпшоты не могут быть использованы вместо бэкапа, поскольку не содержат полной копии виртуального диска, а только историю изменений.
Технология создания снимков была разработана в первую очередь для тестовых систем. Например, вы создаете виртуальную машину, затем изменяете ее конфигурацию или устанавливаете новое программное обеспечение, а затем быстро откатываете изменения, если что-то не работает, или удаляете снэпшот если все в порядке.
При создании резервных копий необходимо обратить внимание на следующие моменты.
Бэкап важных данных следует делать в соответствии с правилом 3-2-1:
1. Создавайте три копии важных данных.
2. Две копии должны быть сохранены на различных физических носителях.
3. Одна копия должна храниться отдельно от двух других, в другом здании.
Резервные копии необходимо регулярно проверять. Если этого не делать, то можно обнаружить, что в резервной копии нет необходимых данных. Так, например, компания Pixar чуть не потеряла часть важных данных, необходимых для производства мультфильма «История игрушек -2» из-за того, что бэкап, содержащийся на ленте, не был вовремя проверен. Тут можно ознакомиться с этой историей подробнее.
Информацию, содержащуюся в цифровом виде, очень легко потерять. Об этом простом правиле знают не только разработчики, но и обыкновенные пользователи. Именно поэтому для любого владельца компьютерной техники чрезвычайно актуальной является задача сохранения цифровых данных. Это можно сделать при помощи резервного копирования.
Данная возможность позволяет создавать копии как отдельных файлов на компьютере и сервере, так и их совокупности. Более того, сегодня существует возможность копирования даже дисковых томов или операционных систем.
5) Виртуальные машины с несколькими дисками:
a. Снапшот может повлиять на дочерний или резервный диск: чем больше операций совершается с диском, тем больше он становится.
b. Требования к свободному пространству дочернего диска дополняют требования к родительскому диску, от которого он зависит.
c. Дочерний диск может вырасти до такого размера, что заполнит все пространство для хранения.
d. Существует правило «Без снапшотов» для дополнительных дисков размером 100 Гб и больше, поскольку есть вероятность заполнения хранилища данных и прекращения работы всех виртуальных машин, которые используют одно и то же хранилище.
e. Дополнительные диски более 100 Гб размером считаются независимыми — это предотвращает переход влияние снапшота с родительского диска на дочерний.
Shapshot – снимки системы
Бывают ситуации, когда требуется быстро и полностью вернуть виртуальную машину или отдельный файл в то состояние, в котором виртуальная машина или файл находился на определенный момент, например, до обновления операционной системы, установки нового программного обеспечения или внесения ошибочного изменения.
Такую возможность дает технология создания снимков, или снэпшотов (snapshot). При наличии такого снимка можно быстро и полностью «откатить» компьютер или файл в то состояние, в котором он находился в момент создания снимка.
Суть этой технологии состоит в следующем. В момент создания снимка файла или виртуальной машины прекращается запись на диск, создавая таким образом снимок диска, а все последующие дисковые операции производятся в отдельном файле.
Затем, чтобы получить данные с диска, сначала нужно прочить содержимое снимка диска, а затем учесть все связанные с файлом или виртуальной машиной дисковые операции, записанные в отдельном файле. При записи новых или измененных данных на диск достаточно записать эти данных в отдельные файлы.
Если возникнет необходимость вернуть файл или виртуальную машину в исходное состояние, достаточно удалить файлы с изменениями, и продолжить использовать диск с момента создания снимка.
Если возможность отката к предыдущем состоянию уже не будет требоваться, накопленные изменения дисков нужно внести в созданный снимок диска, и продолжить использовать этот диск с новыми данными в обычном режиме.
Рассмотрим виды создания снэпшотов.
Snapshot и репликация
Поскольку моментальные снимки полностью зависят от набора исходных данных, то в случаях сбоя и повреждения источника набора данных, также теряются и копии снимков. Такая уязвимость ограничивает использование снимков для восстановления данных после повреждения или случайного удаления файлов.
Тем не менее, так как моментальные снимки позволяют отслеживать изменения на уровне блоков данных, эта технология используется для эффективной репликации данных. Моментальные снимки лежат в основе репликации, в результате которой, копируются только те блоки, которые были изменены с момента первого снимка. Эти небольшие блоки идеально подходят для передачи изменений в другой центр обработки данных по WAN подключению.
Экономия денег и времени при использовании снапшота
Разобравшись с тем, что такое snapshot и как он работает, можно перейти к описанию главного преимущества этой функции – экономии денег и времени. Финансовая выгода обусловлена тем, что иногда потерянные цифровые данные могут стоить огромных денег. При этом хранение снимков дисков или ОС на виртуальных серверах стоит несколько рублей за 1 гигабайт информации.
Что касается экономии времени, то функция snapshot позволяет восстановить все файлы и нормальную работу диска (ОС) в течение нескольких минут. Благодаря снапшоту разработчики могут быть застрахованы от финансовых и временных потерь.
Снэпшоты в виртуальных машинах
Виртуальная машина - это файл. Такой файл содержит описание конфигурации виртуальной машины на языке, понятной гипервизору, а также содержимое виртуального жесткого диска, памяти и регистров процессора. Таким образом, с виртуальными машинами можно обходиться точно также, как и с обычными файлами - делать их копии, или создавать с них снимки. Как только создается снимок виртуальной машины, то на диск будет записана копия этого файла. Все, что в виртуальной машине будет изменяться, будет записываться в другой файл. Дальнейшая работа виртуальной машины ведет к модификации этого файла с изменений. В любой момент можно создать новый снимок виртуальной машины, тогда будет создан еще один файл, содержащий изменения. Можно также вернуться назад, на один из сделанных файлов изменений.
- Снэпшоты сохраняются рядом с виртуальными дисками, на основе которых создаются снимки.
- Снэпшоты быстро растут и могут превысить размер исходных виртуальных дисков, особенно быстро это проихсходит на высоконагруженных серверах и серверах баз данных.
- Файлы снэпштотов всегда резервируются динамически, а это негативно отражается на общей производительности, особенно в случае высоконагруженных систем.
- Несмотря на то, что теоретически можно создать цепочки из 32 снимков для одной виртуальной машины, не рекомендуется создавать более трех снэпшотов для сохранения производительности и стабильности работы виртуальной машины.
- Продолжительность жизни одного снимка не должен превышать 72-х часов. В противном случае, его размер станет очень большой, а виртуальная машина будет работать очень медленно.
Такие гипервизоры, как Hyper-V или Wmware vSphere содержат встроенные средства создания снэпшотов. Использование СХД для размещения виртуальных машин и их снэпшотов позволяет снизить влияние снимков на производительность виртуальных машин, благодаря особенному устройству дисковых массивов.
Если вы используете виртуальные машины, размещенные в облаке провайдера, то для создания снимков необходимо в панели управления ввести имя снэпшота, и нажать на кнопку «Сделать снимок».
Аппаратные снимки
Наиболее часто применяют метод создания моментальных снимков с помощью встроенных функций систем хранения данных. К преимуществам таких аппаратных снимков можно отнести, сокращения количества выполняемых заданий и повышение производительности, за счет выделения отдельных процессоров для обработки таблиц метаданных. Одним из недостатков является то, что аппаратные снимки ограничены только репликацией. Чаще всего системы хранения должны быть одного и того же производителя, но в некоторых случаях производители позволяю использовать в качестве вторичной системы модель более низшей серии. Другим недостатком является то, что в случаи нескольких систем хранения, потребуется контроль отдельно каждого менеджера моментальных снимков.
Предполагается что программно-определяемые хранилища (Software-defined storage, SDS), поддерживают снимки и репликацию, а так же предоставляют общий движок для нескольких систем. В результате чего, все управление объединяется в одном интерфейсе.
Лучшие практики
Чтобы получить максимальную пользу от снапшотов, необходимо следовать нескольким правилам, которые позволят использовать снапшоты по максимуму и предотратить возникновение проблем.
Инструменты резервного копирования
Все инструменты резервного копирования можно поделить на следующие группы:
- Встроенные инструменты
- Бесплатные программы
- Коммерческие системы
- Облачное резервное копирование
Встроенные инструменты резервного копирования
Современные операционные системы уже включают в себя инструменты резервного копирования. Например, для Windows, начиная с Microsoft Vista, доступна программа Windows Backup And Restore (Архивация и Восстановление). Эта программа позволяет создавать полный бэкап операционной системы с возможностью инкрементного копирования. Windows Backup And Restore позволяет создавать автоматический полный бекап на сменный носитель, оптические диски или в специальное место на удаленном сервере.
Для копирования небольшого количества файлов и каталогов часто используется команда xcopy. Эту команду можно использовать с планировщиком Windows.
Для UNIX-систем самой популярной программой резервного копирования файлов является утилита rsync. Оно обладает богатыми возможностями, включая инкрементное резервное копирование, обновление всего дерева каталогов и файловой системы, как локальных, так и удаленных резервных копий, сохранение прав доступа к файлам, ссылок и многое другое.
Также имеет графический пользовательский интерфейс Grsync, но главное преимущество с Rsync заключается в том, что резервные копии могут быть автоматизированы с использованием сценариев и заданий cron системными администраторами прямо в командной строке.
Бесплатные и платные программы резервного копирования
Существует множество бесплатных и платных программ резервного копирования, которые можно легко найти в интернете. Большинство из них копируют файлы и каталоги, некоторые из них позволяют произвести резервное копирование виртуальных машин и осуществить посекторное копирование носителей.
Главное – это перед использованием на реальных данных проверить на тестовой копии тех же самых данных. Кроме того, необходимо проверить можно или восстановить данные из архива.
Облачное резервное копирование
Существуют решения, которые позволяют копировать в облако не только данные, но и целые виртуальные машины. Так
Такие системы, как CommVault или Veeam позволяют делать резервные копии в облако для:
- образов виртуальных машин,
- конфигураций операционных систем,
- баз данных,
- файлов, размещенных на серверах и рабочих станциях.
При резервном копировании в облако через сеть Интернет особенно важно учитывать значения RPO и RTO, так как каналы с Интернет обычно достаточно медленные.
Если ваша виртуальная инфраструктура размещена в облаке, то облачный провайдер может предложить услугу резервного копирования. В таком случае потребителям не потребуется искать, выбирать, покупать и устанавливать программное обеспечение.
Для резервного копирования достаточно в панели управлении включить услугу в разделе Backup, затем выбрать период хранения резервных копий и нажать на кнопку Изменить.
Моментальные снимки приложений
Некоторые приложения имеют возможность самостоятельно создавать и управлять моментальными снимками и делать репликацию своих данных. А так же, некоторые независимые разработчики часто создаются свои собственные решения для репликации и создания моментальных снимков конкретных приложений. Как правило, такие решения имеют ограниченные функции и возможности, но обладают преимущество в понимании конкретного приложения. Они могут корректно перевести приложение в стабилизированное состояние, и в это же время осуществлять контроль специфических процессов для поддержания базы данных в рабочем состоянии. Если какой-то из этих процессов перестает отвечать на запросы, снимок может инициировать автоматическое восстановление данных. Еще одним достоинством таких решений является то, что они могут передавать копируемые данные практически на любое вторичное устройство хранения данных, таким образом потенциально сокращая общие затраты на хранение. Недостатком является лишь то, что данные решения ограничены только теми приложениями, которые они поддерживают, а это означает, что центрам обработки данных могут потребоваться дополнительные процедуры для создания снимков других приложений.
Что такое снапшот?
Снапшот сохраняет состояние виртуальной машины и данные по ней в определенный момент времени.
- Состояние относится к энергетическим ресурсам виртуальной машины (например, включена, выключена, условное состояние);
- Данные включают в себя все файлы виртуальной машины, включая диски, память и другие устройства, такие как виртуальные сетевые карты.
Читайте также: