VirtualBox: снимки/snapshots

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 18:02

Общая логика VirtualBox снимка (snapshot) давно известна и понятна...
Снимки создаются чтобы зафиксировать некоторое состояние диска VM, чтобы потом можно было в него вернуться.
Снимков может быть много + между ними можно перескакивать в любом порядке.

Но вот понадобилась тонкая работа со снимками для пошаговой расрутки ОС FreeBSD.
... для пошаговых инсталляций в системе (когда не очень понятно как их делать), с тем чтобы можно было всегда сделать откат.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 18:07

Olej писал(а):
22 ноя 2023, 18:02
для пошаговых инсталляций в системе
На какой-то момент времени, при работе FreeBSD были сделаны такие вот пошаговые изменения, которые можно считать успешеыми:
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 18:54

Olej писал(а):
22 ноя 2023, 18:02
Общая логика VirtualBox снимка (snapshot) давно известна и понятна...
Про пользование снапшотами понаписано много статей ... но это всё по-верху...
А за деталями приходится лезть в документацию VirtualBox (ссылки показываю на автоперевод).
1.10.2. Содержимое моментального снимка
Полное состояние всех виртуальных дисков, подключенных к компьютеру, сохраняется. Возврат к моментальному снимку означает, что все изменения, внесенные на диски компьютера, файл за файлом и по крупицам, также будут отменены. Файлы, которые были созданы с тех пор, исчезнут, файлы, которые были удалены, будут восстановлены, изменения в файлах будут отменены.
С технической точки зрения, при восстановлении моментального снимка восстанавливается не сам виртуальный диск. Вместо этого при создании моментального снимка Oracle VM VirtualBox создает отличающиеся изображения, которые содержат только изменения, произошедшие с момента создания моментального снимка. При восстановлении моментального снимка Oracle VM VirtualBox удаляет этот отличающийся образ, возвращаясь к предыдущему состоянию. Это и быстрее, и занимает меньше места на диске. Подробности, которые могут быть сложными, см. в разделе 5.5 “Различия изображений”.

Создание разностного образа как такового изначально не занимает много места на главном диске, поскольку разностный образ изначально будет пустым и впоследствии динамически увеличиваться с каждой операцией записи на диск. Однако, чем дольше вы используете устройство после создания моментального снимка, тем больше будет увеличиваться размер отличающегося изображения.
5.4. Специальные режимы записи изображений
Сам файл образа не сбрасывается. Вместо этого при создании моментального снимка Oracle VM VirtualBox замораживает файл образа и больше не выполняет запись в него. Для операций записи с виртуальной машины создается второй, отличающийся файл образа, который получает только изменения исходного образа. См. Раздел 5.5 “Различающие образы”.
5.5. Различающиеся изображения
Отличительный образ - это специальный образ диска, который содержит только отличия от другого образа. Отличительный образ сам по себе бесполезен, он всегда должен ссылаться на другой образ. В этом случае разностное изображение обычно называется дочерним, которое сохраняет различия со своим родительским объектом.
Разностный образ содержит только те сектора виртуального жесткого диска, которые изменились с момента создания разностного образа. Когда машина считывает сектор с такого виртуального жесткого диска, она сначала просматривает разностный образ. Если сектор присутствует, он возвращается оттуда. В противном случае Oracle VM VirtualBox просматривает родительское хранилище. Другими словами, родительское хранилище становится доступным только для чтения. В него больше никогда не записывается, но из него считывается, если сектор не изменился.

Разностные образы могут быть объединены в цепочку. Если для виртуального диска, на котором уже есть разностный образ, создается другой разностный образ, то он становится внуком исходного родительского диска. После этого первое разностное изображение также становится доступным только для чтения, и операции записи выполняются только к разностному изображению второго уровня. При чтении с виртуального диска Oracle VM VirtualBox необходимо сначала просмотреть второй отличительный образ, затем первый, если сектор не был найден, а затем исходный образ.
Может быть неограниченное количество отличающихся изображений, и каждое изображение может иметь более одного дочернего элемента. В результате разностные изображения могут образовывать сложное дерево с родителями, братьями и сестрами и дочерними элементами, в зависимости от сложности конфигурации вашего компьютера. Операции записи всегда выполняются к одному активному разностному изображению, которое подключено к компьютеру, а для операций чтения Oracle VM VirtualBox, возможно, потребуется просмотреть все родительские файлы в цепочке, пока не будет найден соответствующий сектор. Вы можете просмотреть такое дерево в Виртуальном медиаменеджере.
Если вы восстанавливаете моментальный снимок и хотите вернуться к точному состоянию компьютера, которое было сохранено в моментальном снимке, произойдет следующее:

- Oracle VM VirtualBox копирует настройки виртуальной машины, которые были скопированы в моментальный снимок, обратно на виртуальную машину. В результате, если вы внесли изменения в конфигурацию машины после создания моментального снимка, они будут отменены.

- Если снимок был сделан во время работы компьютера, он содержит сохраненное состояние компьютера, и это состояние также восстанавливается. После восстановления моментального снимка компьютер перейдет в сохраненное состояние и возобновит выполнение оттуда при следующем запуске. В противном случае компьютер будет находиться в выключенном состоянии и выполнит полную загрузку.
Вот этот момент с конфигурациями меня несколько смущает....
Если вы позже удалите снимок, чтобы освободить место на диске, для каждого вложения на диске одно из отличающихся изображений устареет. В этом случае отличающийся образ вложения на диске не может быть просто удален. Вместо этого Oracle VM VirtualBox должна просмотреть каждый сектор разностного образа и скопировать его обратно в родительский. Это называется "слиянием" изображений и может быть потенциально длительным процессом, в зависимости от размера объединяемого изображения. Также может временно потребоваться значительный объем дополнительного дискового пространства, прежде чем разностный образ, устаревший в результате операции объединения, будет удален.
Вот этот последний абзац - самое важное в приведенном:
- снимки можно "сливать" вместе с имиджем диска...
- это "сливать" можно как при а). работающей VM, так и б). при выключенной VM ... результаты могут несколько отличаться (?)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 19:00

Вот относительно этого изображения, выше:
Изображение
В это время каталог VM на хосте выгдяжел так (интересуют только размеры):

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ pwd
/home/olej/sdc3/VirtualBoxVMs/FreeBSD

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
6,7G    Snapshots

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l
итого 3855344
-rw-rw-r-- 1 olej olej 3947818496 ноя 22 12:13 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
-rw------- 1 olej olej      17559 ноя 22 16:19 FreeBSD.vbox
-rw------- 1 olej olej      17559 ноя 22 16:19 FreeBSD.vbox-prev
drwx------ 2 olej olej       4096 ноя 22 16:19 Logs
drwx------ 2 olej olej       4096 ноя 22 15:26 Snapshots

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/
итого 6936752
-rw------- 1 olej olej   90254848 ноя 22 16:43 {0f1b6f74-be43-44a4-a32b-b20ee15eac4d}.vhd
-rw------- 1 olej olej   97662193 ноя 22 12:13 2023-11-22T10-13-06-547820000Z.sav
-rw------- 1 olej olej  331149702 ноя 22 12:36 2023-11-22T10-35-59-209008000Z.sav
-rw------- 1 olej olej  332716053 ноя 22 13:12 2023-11-22T11-12-24-629130000Z.sav
-rw------- 1 olej olej  349877634 ноя 22 14:21 2023-11-22T12-21-15-874402000Z.sav
-rw------- 1 olej olej 2085659477 ноя 22 15:27 2023-11-22T13-26-52-869155000Z.sav
-rw------- 1 olej olej   50399232 ноя 22 13:12 {21bc7a93-e1ae-4fe0-8be2-f5c2925df4f9}.vhd
-rw------- 1 olej olej   94450176 ноя 22 14:21 {36e0f826-1f42-4382-8e08-e5ef7ee67f96}.vhd
-rw------- 1 olej olej 3245141504 ноя 22 15:26 {46eeeb5c-0bb3-4fd9-8227-6f2d342655e1}.vhd
-rw------- 1 olej olej  425881088 ноя 22 12:35 {916ea9fa-af4b-4206-8cf9-8a0254a85109}.vhd
И чтоб пальцем не считать число разностных файлов снимков:

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
11

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 19:08

Olej писал(а):
22 ноя 2023, 19:00
В это время каталог VM на хосте выгдяжел так (интересуют только размеры):
Удаляю 1-й (самый старый) в менеджере VirtualBox снапшот:
Снимок экрана от 2023-11-22 16-46-04.png
Снимок экрана от 2023-11-22 16-46-04.png (29.97 КБ) 308 просмотров
Получилось:
Снимок экрана от 2023-11-22 16-47-50.png
Снимок экрана от 2023-11-22 16-47-50.png (129.22 КБ) 308 просмотров
При этом в файлах изменения следующие:

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
9
Число файлов снапшотов уменьшилось на 2 (почему 2? разность диска и состояние памяти?)

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
6,2G    Snapshots
Суммарный размер снапштов уменьшился на 500Mb.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l
итого 4230220
-rw-rw-r-- 1 olej olej 4331691008 ноя 22 16:46 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
-rw------- 1 olej olej      16482 ноя 22 16:46 FreeBSD.vbox
-rw------- 1 olej olej      17559 ноя 22 16:19 FreeBSD.vbox-prev
drwx------ 2 olej olej       4096 ноя 22 16:19 Logs
drwx------ 2 olej olej       4096 ноя 22 16:46 Snapshots
Размер имиджа диска увеличился (FreeBSD-14.0-RELEASE-amd64-zfs.vhd) на: 4331691008 − 3947818496 = 383872512 ... грубо 380Mb

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 22 ноя 2023, 19:29

Olej писал(а):
22 ноя 2023, 19:08
Размер имиджа диска увеличился
Проверил перезагрузку с новым файлом имиджа диска .vhd - ОК
Olej писал(а):
22 ноя 2023, 18:54
"сливать" можно как при а). работающей VM, так и б). при выключенной VM
На VM удаляю следуюший снапшот:
Снимок экрана от 2023-11-22 18-20-31.png
Снимок экрана от 2023-11-22 18-20-31.png (123.56 КБ) 308 просмотров
Загрузка...
На хост-машине это видится так:

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
7
Число файлов снапшотов уменьшилось на 2.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots 
5,9G	Snapshots
Суммарный размер снапштов уменьшился ещё на 300Mb.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l *.vhd
-rw-rw-r-- 1 olej olej 4346374656 ноя 22 18:19 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
Размер имиджа диска, с которого благополучно грузится система с работающим SSHD сервером (что делалось между снапшотами), увеличился ... незначительно, но: 4346374656 − 4331691008 = 14683648 = около 14Mb

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 23 ноя 2023, 01:23

Olej писал(а):
22 ноя 2023, 19:29
На VM удаляю следуюший снапшот:
Теперь при выключенной (остановленной) VM:
- добавлен 1 снапшот - он отмечен красным квадратом
- удалено 2 ведущих снапшота
Снимок экрана от 2023-11-23 00-06-57.png
Снимок экрана от 2023-11-23 00-06-57.png (118.24 КБ) 303 просмотра

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
4
Число снапшотов уменьшилось на 3.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
3,5G    Snapshots
Суммарный размер снапштов уменьшился на целых 5,9 − 3,4 = 2,5 Gb

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l *.vhd
-rw-rw-r-- 1 olej olej 7457210368 ноя 23 00:06 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
Размер имиджа диска увеличился на 7457210368 − 4346374656 = 3110835712 - примерно 3Gb, вдвое по сравнению и исходным. Вот с этого начинали:

Код: Выделить всё

olej@R420:~/Загрузки/ISO/FreeBSD$ ls -l FreeBSD-14.0-RELEASE-amd64-zfs.vhd 
-rw-rw-r-- 1 olej olej 3899572224 ноя 21 18:58 FreeBSD-14.0-RELEASE-amd64-zfs.vhd

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 23 ноя 2023, 01:56

Olej писал(а):
23 ноя 2023, 01:23
Теперь при выключенной (остановленной) VM:
Ещё раз: добавлена языковая среда GoLang:
Снимок экрана от 2023-11-23 00-43-54.png
Снимок экрана от 2023-11-23 00-43-54.png (127.42 КБ) 302 просмотра
И удалены из снапшотов (добавлено в имидж диска) большой компонент - порты исходнвх кодов ПО, скачанные из GIT (2.5Gb).
Снимок экрана от 2023-11-23 00-44-41.png
Снимок экрана от 2023-11-23 00-44-41.png (122.94 КБ) 302 просмотра

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
3
Число уменьшилось на 1.
На самом деле их там 2:

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ 
итого 725284
-rw------- 1 olej olej 742628352 ноя 23 00:44 {1a61ea8e-88c1-4ce9-9355-7b69c0b27ea7}.vhd
-rw------- 1 olej olej     55296 ноя 23 00:43 {9bf7648d-5da8-4af7-8b60-db2ef8454f31}.vhd
3-я строка - это строка заголовка.
И хорошо видно, что там теперь только разностные файлы диска .vhd - все файлы относящиеся к RAM и конфигурациям исчезли.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots 
709M	Snapshots
Объёма снапшотов там практически не осталось вовсе.

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l *.vhd
-rw-rw-r-- 1 olej olej 8831180288 ноя 23 00:44 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
А вот размер вирткального диска на этот раз вырос: 8831180288 − 3899572224 = 4931608064 - под 5Gb разницы (там кроме закачки с GIT ещё кой-чего сборка make и установка делалась).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 24 ноя 2023, 03:08

Olej писал(а):
23 ноя 2023, 01:56
Ещё раз:
Последний шаг дополнения CLI машины:
Изображение

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
4

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
2,9G	Snapshots

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l *.vhd
-rw-rw-r-- 1 olej olej 8831180288 ноя 23 00:44 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
Характерно, что, при всей большой выполненной работе, поскольку снапшоты пока ничего не удалялось, размер самого диска .vhd не меняется - все изменения в снапшотах, как и обещали.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

VirtualBox: снимки/snapshots

Непрочитанное сообщение Olej » 24 ноя 2023, 11:52

Olej писал(а):
24 ноя 2023, 03:08
все изменения в снапшотах
И то, для чего это всё собственно делалось: при остановленной VM, удаляю все снапшоты - с тем чтобы всё это объединить в единый виртуальный диск CLI FreeBSD.
Снимок экрана от 2023-11-24 10-48-42.png
Снимок экрана от 2023-11-24 10-48-42.png (55.7 КБ) 257 просмотров

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/
итого 0

Код: Выделить всё

olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l *.vhd
-rw-rw-r-- 1 olej olej 10410721280 ноя 24 10:42 FreeBSD-14.0-RELEASE-amd64-zfs.vhd
Там теперь всё:
- GIT портов FreeBSD - для любых дальнейших установок;
- язык Go;
- пиринговая IPv6 сеть Yggdrasil;
Теперь этот .vdi я буду использовать для отработки совсем другой VM FreeBSD X11.

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей