Что такое снапшоты виртуальной машины и зачем они нужны.

«Snapshot» переводится с английского, как «выстрел навскидку» или «моментальный фотоснимок». Снапшот – это снимок виртуальной машины (ВМ), слепок её состояния. Для чего нам нужна ВМ? Ну конечно же, прежде всего для того, чтобы ставить различные эксперименты! И, чтобы каждый раз не заниматься мучительным отмыванием ВМ от осколков очередного эксперимента с помощью всяких чистильщиков, можно воспользоваться такой любопытной функцией, как «снимок» и быстро вернуться к исходному состоянию. Но надо уметь это делать, иначе можно угробить ВМ. Далее я буду излагать свои соображения для самой популярной ВМ – VirtualBox.

Немного теории для тех, кто не в курсе.

ВМ – это не что иное, как файл. В этом файле записана информация, которая представляет собой виртуальную ОС плюс пользовательский софт. Файл этот довольно большой, например, 10 Гбайт. Файл ВМ имеет расширение .vdi, например, machine.vdi, и называется образом ВМ. Если сделать сделать снимок включённой ВМ, то на диске машины-хозяйки в файле ВМ сверх этих 10 ГБ ничего не прибавится, однако файл machine.vdi заморозится («зафризится», как любят говорить .юные айтишники) и далее будет использоваться только для чтения ( в режиме «ридоунли» на сленге). С этого момента всё, что в ВМ будет изменяться, будет писаться в отдельный файл uuid.vdi, где uuid – уникальный идентификатор пользователя. C точки зрения пользователя, uuid представляет собой бесполезную алфавитно-цифровую ахинею, но ВМ прекрасно в ней разбирается. Дальнейшая работа ВМ ведёт к накоплению изменений в этом файле. В любой момент можно создать новый снимок ВМ или же откатиться на один из сделанных ранее.

Снимки образуют цепочку (если снимки делаются подряд) или дерево (если делаются откаты на снимки). Даже если часть из исходных 10Гбайт образа удалить, они сотрутся с точки зрения машины-гостьи, но останутся в файле ВМ до момента снимка.

Итак, текущий образ ВМ складывается из первоначального образа плюс все промежуточные снимки, которые наслаиваются сверху. Если удалить какой-то из снимков, то все состояния после него будут потеряны. Отмена (discard) снимка будет объединять его содержимое с последующим снимком или с текущим состоянием ВМ, если это последний снимок. Восстановление ВМ из снимка влияет на все виртуальные жесткие диски подключенные к вашей ВМ, поскольку данные на диске будут также восстановлены из снимка.

Короче, вы можете создавать снимки, восстанавливать ВМ из снимков и удалять снимки. Несложно, правда? Всего три базовых операции! Однако, учитывайте, что, хотя создание и восстановление снимков выполняется за несколько секунд, удаление снимка может занять несколько минут, поскольку при этом будет копироваться большой объем данных.

Вы можете увидеть все снимки вашей ВМ, выбрав ее в окне менеджера VirtualBox и кликнув на "Снимки" в верхнем правом углу. Пока вы не сделали ни одного снимка, список снимков, естественно, будет пуст, за исключением элемента "Текущее состояние", который символизирует отправную точку жизненного цикла вашей ВМ.

Будем что-нибудь тестировать.

Вообще-то описанным далее способом можно тестировать что угодно. Но пользователи почему-то очень любят тестировать именно браузеры. Идея простая: делаем снимок ВМ без браузеров, устанавливаем очередной браузер, делаем снимок, возвращаемся к исходному состоянию ВМ без браузеров, устанавливаем следующий браузер и т.д. В итоге получаем одну и ту же ВМ, но с разными браузерами. Этим мы, во-первых, исключили влияние браузеров друг на друга, и, во-вторых, избавились от чистки ОС. Поехали!

  1. Первоначальный снимок. Загрузите VirtualBox (VB), выберите ОС, но не запускайте её! Сделайте снимок:

    Поименуйте этот снимок, как org. Итак, первоначальное состояние ВМ зафиксировано:

  2. Запустите виртуальную ОС и установите что-нибудь, например, браузер1. Когда он установится, откройте окно ВМ и сделайте новый снимок. Дайте снимку имя и нажмите ОК. Потребуется несколько. секунд, чтобы записать снимок. Почему так мало? Потому что на самом деле новый снимок будет содержать всего лишь разницу по сравнению с оригинальным снимком.

    Протестируйте установленный браузер, если хотите. Впрочем, вы это можете сделать и позже, восстановив всё из снимка. Завершите работу виртуальной ОС.

  3. Чтобы начать тестировать следующий браузер, в окне VB изберите обязательно! корневой снапшот (он поименован, как org) и кликните «восстановить снапшот». Иконка «восстановить снапшот» похожа на стрелку на вкладке.

    Далее откроется дополнительное окно, предупреждающее, о возможных потерях. Снимите птичку в чекбоксе «сохранить текущее состояние», так как вы его уже сохранили, и жмите «Восстановить». Пройдёт несколько секунд, пока состояние ВМ будет восстанавливаться из корневого снимка. Теперь стартуйте свою ВМ.

  4. Установите следующий браузер2. Когда он установится, откройте окно ВМ и сделайте новый снимок. Дайте снимку имя и нажмите ОК.
    Завершите работу ВМ.

  5. Повторяйте шаги 3 и 4 со всеми браузерами, которые желаете протестировать.

  6. Получится линейка снимков, порождённых корневым снимком.

    Каждый из снимков в этой линейке – это разница с корневым снимком.

  7. И теперь можете запускать разные состояния ОС с установленными браузерами и тестировать их столько раз, сколько требуется. Надо просто выбрать нужный снимок и начать кнопку «Восстановить». Как только снимок с тестируемым браузером будет загружен, стартуйте свою ВМ и тестируйте выбранный браузер.

Не правда ли просто? Но это далеко не всё, что можно вытворять с помощью снимков ВМ. (Продолжение следует.)

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя mike

В п.4 слово "рисунок" лишнее. Извините. Сайт не имеет функции отката из черновиков. :(

О, спасибо, что поправили.

Картинки просто классные. Жду продолжения. И поставил +1. ;-)