Как сделать снапшот в virtualbox
VirtualBox. Создание и управление снимками системы.
Снимки в виртуальной машине сохраняют состояние системы и возвращают её к этому состоянию при необходимости. При создании снимка виртуальной системы физическое место занимаемое на диске не увеличивается, увеличится размер только уже существующего образа диска гостевой системы.
Можно использовать различные, в том числе критические изменения по отношению к базе данных гостевой системы с возможностью восстанавливать сохраненное, изначальное состояние.
Можно экспериментировать с различными конфигурациями без необходимости делать откат системы в ручную.
И это очень удобный инструмент для создания резервных копий системы, который позволяет создавать полный снимок включенной машины (настройки virtualBox, настройки гостевой ОС и состояние самой системы установленной в виртуальной машине) и быстро восстанавливать за минимальное количество проделываемых действий.
Создание и управление снимками системы.
И так, вы установили Windows или другую гостевую ОС. Установили все программы и дополнения, обновили. Пора сделать снимок системы. Как бы создать резервную копию системы, аналогично системе защиты для восстановления в Windows.
В меню управления виртуальной машиной выберите пункт «Машина» и «Сделать снимок. «.
Откроется окно, где будет предложено указать имя для снимка и описание. Можно оставить ничего не меняя, это никак не повлияет на сохранение.
Начнется процедура сохранения состояния всей системы, в том числе и настройки виртуальной машины.
Управлять снимками можно из менеджера VirtualBox? когда закрываете виртуальную машину и выключаете гостевую ОС.
Здесь вы можете управлять сделанными снимками. Чтобы восстановить состояние системы на момент создания снимка нажмите соответствующую кнопку.
Или выбрав снимок откройте контекстное меню нажав правой кнопкой мышки на снимке.
Появится окно с предложением сделать еще один снимок, так как у вас была возможность сделать какие-то изменения в настройках виртуальной машины, и возможно вы хотите сохранить их. Если не нужно, то снимите галочку «Создать снимок текущего состояния машины» и жмите «Восстановить».
Теперь после того как все настройки вернулись к состоянию зафиксированному сделанным снимком, можно снова запускать машину.
Все изменения сделанные после снимка были отменены.
Очень эффективно против вирусов. Перед запуском неизвестной программы вы можете сделать снимок системы, и потом устанавливать ее. Если что, можно будет все вернуть в изначальное состояние. Вирус не может выйти за пределы виртуального пространства, а чтобы снова не переустанавливать систему поврежденную вирусом, достаточно будет сделать восстановление по заранее сделанному снимку состояния системы.
Что такое снапшоты виртуальной машины и зачем они нужны.
«Snapshot» переводится с английского, как «выстрел навскидку» или «моментальный фотоснимок». Снапшот – это снимок виртуальной машины (ВМ), слепок её состояния. Для чего нам нужна ВМ? Ну конечно же, прежде всего для того, чтобы ставить различные эксперименты! И, чтобы каждый раз не заниматься мучительным отмыванием ВМ от осколков очередного эксперимента с помощью всяких чистильщиков, можно воспользоваться такой любопытной функцией, как «снимок» и быстро вернуться к исходному состоянию. Но надо уметь это делать, иначе можно угробить ВМ. Далее я буду излагать свои соображения для самой популярной ВМ – VirtualBox.
Немного теории для тех, кто не в курсе.
Снимки образуют цепочку (если снимки делаются подряд) или дерево (если делаются откаты на снимки). Даже если часть из исходных 10Гбайт образа удалить, они сотрутся с точки зрения машины-гостьи, но останутся в файле ВМ до момента снимка.
Итак, текущий образ ВМ складывается из первоначального образа плюс все промежуточные снимки, которые наслаиваются сверху. Если удалить какой-то из снимков, то все состояния после него будут потеряны. Отмена (discard) снимка будет объединять его содержимое с последующим снимком или с текущим состоянием ВМ, если это последний снимок. Восстановление ВМ из снимка влияет на все виртуальные жесткие диски подключенные к вашей ВМ, поскольку данные на диске будут также восстановлены из снимка.
Короче, вы можете создавать снимки, восстанавливать ВМ из снимков и удалять снимки. Несложно, правда? Всего три базовых операции! Однако, учитывайте, что, хотя создание и восстановление снимков выполняется за несколько секунд, удаление снимка может занять несколько минут, поскольку при этом будет копироваться большой объем данных.
Вы можете увидеть все снимки вашей ВМ, выбрав ее в окне менеджера VirtualBox и кликнув на «Снимки» в верхнем правом углу. Пока вы не сделали ни одного снимка, список снимков, естественно, будет пуст, за исключением элемента «Текущее состояние», который символизирует отправную точку жизненного цикла вашей ВМ.
Будем что-нибудь тестировать.
Вообще-то описанным далее способом можно тестировать что угодно. Но пользователи почему-то очень любят тестировать именно браузеры. Идея простая: делаем снимок ВМ без браузеров, устанавливаем очередной браузер, делаем снимок, возвращаемся к исходному состоянию ВМ без браузеров, устанавливаем следующий браузер и т.д. В итоге получаем одну и ту же ВМ, но с разными браузерами. Этим мы, во-первых, исключили влияние браузеров друг на друга, и, во-вторых, избавились от чистки ОС. Поехали!
Первоначальный снимок. Загрузите VirtualBox (VB), выберите ОС, но не запускайте её! Сделайте снимок:
Поименуйте этот снимок, как org. Итак, первоначальное состояние ВМ зафиксировано:
Запустите виртуальную ОС и установите что-нибудь, например, браузер1. Когда он установится, откройте окно ВМ и сделайте новый снимок. Дайте снимку имя и нажмите ОК. Потребуется несколько. секунд, чтобы записать снимок. Почему так мало? Потому что на самом деле новый снимок будет содержать всего лишь разницу по сравнению с оригинальным снимком.
Протестируйте установленный браузер, если хотите. Впрочем, вы это можете сделать и позже, восстановив всё из снимка. Завершите работу виртуальной ОС.
Чтобы начать тестировать следующий браузер, в окне VB изберите обязательно! корневой снапшот (он поименован, как org) и кликните «восстановить снапшот». Иконка «восстановить снапшот» похожа на стрелку на вкладке.
Далее откроется дополнительное окно, предупреждающее, о возможных потерях. Снимите птичку в чекбоксе «сохранить текущее состояние», так как вы его уже сохранили, и жмите «Восстановить». Пройдёт несколько секунд, пока состояние ВМ будет восстанавливаться из корневого снимка. Теперь стартуйте свою ВМ.
Установите следующий браузер2. Когда он установится, откройте окно ВМ и сделайте новый снимок. Дайте снимку имя и нажмите ОК.
Завершите работу ВМ.
Повторяйте шаги 3 и 4 со всеми браузерами, которые желаете протестировать.
Получится линейка снимков, порождённых корневым снимком.
Каждый из снимков в этой линейке – это разница с корневым снимком.
И теперь можете запускать разные состояния ОС с установленными браузерами и тестировать их столько раз, сколько требуется. Надо просто выбрать нужный снимок и начать кнопку «Восстановить». Как только снимок с тестируемым браузером будет загружен, стартуйте свою ВМ и тестируйте выбранный браузер.
Не правда ли просто? Но это далеко не всё, что можно вытворять с помощью снимков ВМ. (Продолжение следует.)
Экономьте свое время, используя снимки в VirtualBox
Технологии резервного копирования настолько так хорошо зарекомендовали себя, что стали применяться в самых разных областях, даже в виртуальных машинах. Возьмем, к примеру, самую популярную программу для виртуализации операционных систем VirtualBox.
Этот замечательный инструмент позволяет тестировать даже потенциально опасное программное обеспечение без риска повредить реальную операционную систему. Если что-то произойдет, виртуальную машину можно просто удалить.
Тем не менее, разработчики VirtualBox посчитали необходимым реализовать в виртуальной машине функцию резервного копирования – создание снимков или снапшотов.
Жаль, но весьма немногие пользователи VirtualBox прибегают к ее помощи, предпочитая утомительную процедуру переустановки операционной системы нескольким кликам мышью. Подумайте, сколько полезного времени вы теряете, пренебрегая функцией создания снимков.
И что прикажите делать, если на виртуальной машине установлено много полезного программного обеспечения? Зачем удалять и заново устанавливать виртуальную ОС если можно создать ее снапшот, а потом, если случится какая-нибудь неприятность, просто выполнить откат? А ведь создать снимок в VirtualBox очень просто.
При запущенной виртуальной системе в меню “Машина” выберите пункт “Сделать снимок”. Откроется небольшое окошко, в котором вам будет предложено дать имя снапшоту (по умолчанию снимок №) и краткое описание. Вот и все.
В основе создания снимков лежит технология Copy-On-Write, представляющая собой механизм копирования при записи. Выражаясь более понятным языком, при создании снимка происходит резервное копирование только тех областей, к которым операционная система обращается с целью записи. В этом главное отличие от полного резервного копирования, например, клонирования виртуальной машины, которое занимает куда больше времени и объема дискового пространства.
Где хранятся снимки VirtualBox? Снимки виртуальной ОС хранятся на системном диске в папке VirtualBox VMs. Представляют они их себя два файла с расширениями vdi и sav.
Как работать со снапшотами? Очень просто. Получить доступ к снимкам можно из окна менеджера VirtualBox, нажав на кнопку “Снимки”. Снапшоты располагаются в виде древовидной структуры, что даже очень удобно. Кликнув по выбранному снимку правой клавишей мыши можно просмотреть список доступных операций.
Вы можете удалить или клонировать снимок, выполнить откат, просмотреть детальную информацию. Восстановление выполняется при выключенной виртуальной машине и происходит очень быстро, намного быстрее, чем стартует виртуальная операционная система.
Вот собственно и все что касается создания резервных копий в VirtualBox.
Согласитесь, ведь это намного быстрее и удобнее чем создавать полномерные клоны виртуальной системы. Разумеется, такие снимки, как и всякие резервные копии, занимают определенное место на жестком диске, но все же лучше будет пожертвовать двумя-тремя гигабайтами дискового пространства, чем драгоценным временем и усилиями, потраченными на переустановку операционной системы
Особенности работы с виртуальными дискaми VirtualBox
Статья рассматривает особенности использования виртуальных дисков в VirtualBox, применение разных режимов чтения-записи, принцип и организацию работы snapshot-ов, кэширование ввода/вывода данных, а также некоторые аспекты использования виртуальных дисков с точки зрения информационной безопасности. Для тех, кому интересен пример с безопасностью, можете сразу переходить по якорю к разделу об особых режимах записи.
Начнем с некоторых общих понятий. У VirtualBox существуют 3 основных метода предоставления гостевой операционной системе (ОС) доступа к данным. Сей текст концентрируется на использовании виртуальных дисков.
Виртуальные диски подключаются к виртуальной — гостевой ОС, методом эмуляции подключения через соответствующий контроллер, IDE, SATA (AHCI), SCSI, SAS.
Поведение контроллеров запрограммировано таким образом, чтобы имитировать физические прототипы, следовательно IDE контроллер будет работать медленнее SATA и потреблять больше ресурсов процессора, ОС без соответствующих драйверов и аппаратной поддержки не будут взаимодействовать с виртуальными дисками и т.д. Например, в семействе Windows до Windows Vista нет поддержки Advanced Host Controller Interface (AHCI), к которому относится SATA, поэтому в частности, виртуальная машина с ОС Windows XP с SATA работать не будет.
Файлы виртуальных дисков
VirtualBox позволяет работать с разными форматами файлов виртуальных дисков. Помимо собственного VDI, поддерживаются VMDK (VMware), VHD (Microsoft), Parallels version 2 HDD format (Parallels).
Каждому виртуальному диску присваивается уникальный идентификатор UUID, это помогает VirtualBox удостовериться, что каждый диск используется только один раз и не позволяет импортировать в гостевую ОС обычные копии дисков (для этого существует отдельная процедура клонирования).
Виртуальные диски могут быть, как фиксированного размера, так и динамически выделяемого, причем VirtualBox позволяет увеличить размер дискового пространства, независимо от объёма и формата диска и даже в том случае, если диск содержит данные. Ниже пример, как это сделать с помощью утилиты vboxmanage.
При выборе динамически выделяемого образа, файл контейнера будет «разрастаться» постепенно, по мере заполнения секторов данными, до тех пор, пока размер контейнера не достигнет указанного при создании виртуальной машины лимита.
Учитывая то, что в процессе регулярного увеличения размера контейнера задействуются дополнительные вычислительные ресурсы, скорость записи при использовании опции с фиксированным размером, как правило выше, в с равнении с динамическим диском. Тем не менее, если размер динамического диска в долгосрочной перспективе значительно не увеличивается, то разница в скорости записи практически нивелируется.
Управление виртуальными медиа (Virtual Media Manager)
VirtualBox ведет реестр всех виртуальных медиа носителей, которые используются всеми гостевыми ОС. Это так называемые ”known media”, доступ к списку (реестру) которых можно получить используя утилиту Virtual Media Manager (доступно из меню File). Эта утилита показывает детальную информацию о каждом виртуальном диске, включая полный путь к файлу, а также к какой именно виртуальной машине файл прикреплен. Информацию из реестра можно удалить используя встроенную функцию удаления “Remove”
Каждый отдельно взятый образ можно «открепить» от виртуальной машины за которой он закреплен, используя функцию ”Release”
Открепив образ, прикрепить его обратно нажатием одной кнопки не удастся, для этого необходимо будет добавить образ, как жесткий диск. Аналогичным способом «прикрепляются» и снэпшоты (снимки диска).
В очередной раз отмечу, что из-за наличия UUID, о которых говорилось выше, нельзя просто скопировать и прикрепить образ диска.
Snapshots (Снэпшоты)
Как известно snapshot в переводе с английского означает снимок. Принцип работы механизма прост. При создании снэпшота, VirtualBox переводит текущий образ (образы, если их несколько), прикрепленный к ВМ в режим только для чтения и создает отдельный виртуальный диск (диски) и все последующие процедуры записи производятся уже в новом виртуальном хранилище. Причем фиксируются только изменения в определенных секторах, проще говоря при создании снэпшота диска размером 10GB, новый снэпшот будет гораздо меньше, и будет увеличиваться в размере постепенно, как будут заполнятся сектора.
Логично предположить, что чем больше используется снэпшотов одной виртуальной машины, тем больше используется вычислительных ресурсов для выполнения операций чтения с диска. Действительно, если есть 2 снэпшота, то вначале VirtualBox смотрит есть ли нужный сектор в образе снэпшота2, если нет, то система обращается к снэпшоту1, если и там ничего не обнаружено, то тогда идет обращение к основному диску. Нагрузка все-же будет незначительной и мало заметной для конечного пользователя, т, к. вся таблица секторов постоянно присутствует в памяти.
Стоить помнить, что при удалении снэпшота, все изменения произведенные после его создания «сливаются» с ранее «замороженным» образом.
Кэширование ввода/вывода
Затронув тему производительности уместно будет упомянуть и о кэшировании. Изначально VirtualBox работает с файлами образов, как с обычными файлами, которые само-собой кэшируются хостовой ОС. Это сделано, как нистранно с целью увеличение скорости. Когда гостевая ОС производит операцию записи, то операция кэшируется хостовой ОС и сообщение об успешном завершении операции отправляется в гостевую ОС сразу-же, в то время как сама операция обрабатывается гостевой ОС асинхронно. Такой подход не всегда себя оправдывает, т.к. файлы образов диска имеют тенденцию увеличиваться в объеме и вся процедура начинает давать обратный эффект — происходит двойное кэширование на стороне гостевой и хостовой операционных систем и снижается скорость производимых операций.
Помимо расходa ресурсов еще одним недостатком кэширования является недостаточная надежность. Например, если внезапно случился перебой с электропитанием в момент, когда хоставая ОС уже сообщила гостевой об успешном выполнении записи, а сам процесс асинхронной записи еще не завершился. Такой сценарий безусловно приводит к потере данных.
Отключение кэширования выполняется следующим образом:
Bandwidth
VirtualBox позволяет ограничивать ширину пропускного канала для одного или нескольких виртуальных дисков.
Создаем группу “Limit” и устанавливаем лимит в 20 Mb/s
Добавляем нужные диски в группу.
Суммарный для обоих дисков bandwidth не будет превышать 20 MB/s. Этот лимит можно изменить в любой момент, не выключая виртуальной машины.
Особые режимы записи образов
Для каждого образа виртуального диска, поддерживаемого VirtualBox, не зависимо от формата, можно определить режим поведения при записи данных, будь это следствие операций внутри виртуальной машины или снимка дика (snapshot). Такие режимы называются «нестандартными», в то время, как по умолчанию все образы дисков функционируют в «нормальном» режиме. Для того, что бы перевести режим из «нормального» в «нестандартный» можно воспользоваться вышеупомянутым Virtual Media Manager или консольной утилитой vboxmanage
В «нормальном» режиме записи, гостевая ОС может осуществлять чтение и запись с физического диска без всяких ограничений a при создании снимков диска (snapshot), VirtualBox создает oтдельный файл в котором фиксируются все изменения.
В режиме «write through» функция снэпшотов работать не бует.
Режим работы «shareable» своего рода разновидность предыдущего. Тут тоже нет возможности работы со «снэпшотами», зато есть возможность использования несколькими одновременно работающими виртуальными машинами одного образа диска, сценарий кластеризации.
Схожий по названию, но отличающийся по принципам работы режим «multiattach», также позволяет использовать один образ диска для нескольких виртуальных машин, но в этом режиме каждая отдельная виртуальная машина использует свой независимый «снэпшот» и изменения произведенные в одной ВМ не доступны для других.
Режим «read only» используется в основном для работы с образами CD/DVD, т.к. предполагает только чтение.
Режим на который стоит обратить внимание называется «Immutable». Как следует из названия immutable образы не меняются с течением времени. Любые изменения в immutable диске актуальны ровно до тех пор, пока виртуальная машина работает. После отключения виртуальной машины все изменения пропадают. Прежде чем перевести диск в режим immutable стоит сначало создатъ «нормальный» диск, установить и настроить систему в оптимальное состояние, желательно не подключаясь к интеренету, и только после того, как гостевая система готова — «откреплять» диск и переводить его в режим immutable.
Одним из сценариев работы может быть схема при которой используются два диска – один в режиме immutable, на котором находится сама система, второй в нормальном или write-through режиме. На первый взгляд вполне безопасный и понятный сценарий работы — каждый раз загружается «свежая» система. Но не все так прозрачно и есть некоторые нюансы.
Во первых, для immutable дисков есть одно важное исключение. Они не “обнуляются” в случае, когда прикреплены к виртуальной машине, снимок диска которой был сделан пока та была запущенна — так называемый online-snapshot. Это означает, что если например, пользователь создал immutable disk, а потом в процессе работы, создал «снэпшот», не завершив работу виртуальной машины, то начиная с упомянутого «снэпшота» все последующие операции и действия внутри системы будут носить необратимый эффект, т.к. все действия будут де-факто происходить в «снэпшоте».
В случае если основной целью является «свежая система» при каждом запуске, то от использования снэпшотов, лучше воздержаться.
Во-вторых, вышеописанное «обнуление» отдельного образа происходит только в случае, когда команда включения/отключения виртуальной машины посылается самой средой VirtualBox, а не происходит внутри гостевой ОС. Проще говоря, если например перезагрузить гостевую ОС Windows стандартным методом (Меню пуск, перезагрзить систему), то обнуление immutable диска не произойдет.
Наконец последнее и самое важное — все изменения происходившие внутри виртуальной машины сохраняются на физическом диске и остаются там до тех пор, пока виртуальная машина не будет запущена заново.
После того, как текущий контейнер установлен в режим immutable, VirtualBox перестает использовать этот контейнер и фактически диск переходит в режим «read only». Все операции записи перенаправляются в отдельный образ и каждый раз, когда виртуальная машина начинает работу этот новый «отдельный» образ «обнуляется». В реальности на жестком диске создается временный «снэпшот», который находится в папке Snapshots, соответствующей виртуальной машины, внутри которого и происходит вся работа. После завершения работы виртуальной машины вышеупомянутый временный скриншот остается нетронутым.
Рассмотрим простой пример
Боб создал виртуальную машину, настроил ОС и перевел диск в режим immutable. Боб регулярно использует свою виртуальную машину для тайного общения с Алисой. При каждом запуске, загружается «свежая» система, не содержащая никаких логов предыдущего общения, текстов, видео или фото. В очередной раз закончив переписку, Боб спокойно выключает виртуальную машину и идет спать.
Предположим также, что перед каждым запуском ОС Боб проверяет, что режим диска установлен как “immutable”.
Ева имеет доступ к компьютеру на котором установлена виртуальная машина. Ей достаточно зайти в папку Snapshots внутри директории соответствующей виртуальной машины и там будет требуемый «снэпшот».
Все что остается сделать Еве, что бы увидеть всю переписку, равно как и результат всех действий производимых Бобом внутри ОС, это перевести диск в «нормальный» режим и перед тем, как запустить виртуальную машину прикрепить к ней снэпшот. Более того, Ева может каждый день делать резервные копии таких «снэпшотов», главное, что бы это было сделано до того, как Боб снова запустит виртуальную машину.
Решением для Боба в данной ситуации будет после завершения работы, вручную удалять все содержимое папки Snapshots. Не говоря уже о том, что надо постоянно проверять в каком режиме работает диск и желательно, либо вообще заблокировать некоторые элементы GUI, что достаточно просто реализуется
Справедливости ради стоит сказать, что у тех-же Parallels, с самых ранних версий для того, что бы перевести диски из одного режима в другой необходим пароль суперпользователя, а временные «снэпшоты» удаляются моментально, после завершения работы.