VirtualBox: снимки/snapshots
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
Снимки создаются чтобы зафиксировать некоторое состояние диска VM, чтобы потом можно было в него вернуться.
Снимков может быть много + между ними можно перескакивать в любом порядке.
Но вот понадобилась тонкая работа со снимками для пошаговой расрутки ОС FreeBSD.
... для пошаговых инсталляций в системе (когда не очень понятно как их делать), с тем чтобы можно было всегда сделать откат.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
Про пользование снапшотами понаписано много статей ... но это всё по-верху...
А за деталями приходится лезть в документацию VirtualBox (ссылки показываю на автоперевод).
1.10.2. Содержимое моментального снимка
Полное состояние всех виртуальных дисков, подключенных к компьютеру, сохраняется. Возврат к моментальному снимку означает, что все изменения, внесенные на диски компьютера, файл за файлом и по крупицам, также будут отменены. Файлы, которые были созданы с тех пор, исчезнут, файлы, которые были удалены, будут восстановлены, изменения в файлах будут отменены.
5.4. Специальные режимы записи изображенийС технической точки зрения, при восстановлении моментального снимка восстанавливается не сам виртуальный диск. Вместо этого при создании моментального снимка Oracle VM VirtualBox создает отличающиеся изображения, которые содержат только изменения, произошедшие с момента создания моментального снимка. При восстановлении моментального снимка Oracle VM VirtualBox удаляет этот отличающийся образ, возвращаясь к предыдущему состоянию. Это и быстрее, и занимает меньше места на диске. Подробности, которые могут быть сложными, см. в разделе 5.5 “Различия изображений”.
Создание разностного образа как такового изначально не занимает много места на главном диске, поскольку разностный образ изначально будет пустым и впоследствии динамически увеличиваться с каждой операцией записи на диск. Однако, чем дольше вы используете устройство после создания моментального снимка, тем больше будет увеличиваться размер отличающегося изображения.
5.5. Различающиеся изображенияСам файл образа не сбрасывается. Вместо этого при создании моментального снимка Oracle VM VirtualBox замораживает файл образа и больше не выполняет запись в него. Для операций записи с виртуальной машины создается второй, отличающийся файл образа, который получает только изменения исходного образа. См. Раздел 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
В это время каталог 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
Удаляю 1-й (самый старый) в менеджере VirtualBox снапшот: Получилось: При этом в файлах изменения следующие:
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
9
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
6,2G Snapshots
Код: Выделить всё
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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
Проверил перезагрузку с новым файлом имиджа диска .vhd - ОК
На VM удаляю следуюший снапшот: Загрузка...
На хост-машине это видится так:
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
7
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
5,9G Snapshots
Код: Выделить всё
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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
Теперь при выключенной (остановленной) VM:
- добавлен 1 снапшот - он отмечен красным квадратом
- удалено 2 ведущих снапшота
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
4
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ du -hs Snapshots
3,5G Snapshots
Код: Выделить всё
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
Код: Выделить всё
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
Ещё раз: добавлена языковая среда GoLang: И удалены из снапшотов (добавлено в имидж диска) большой компонент - порты исходнвх кодов ПО, скачанные из GIT (2.5Gb).
Код: Выделить всё
olej@R420:~/sdc3/VirtualBoxVMs/FreeBSD$ ls -l Snapshots/ | wc -l
3
На самом деле их там 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
И хорошо видно, что там теперь только разностные файлы диска .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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
Последний шаг дополнения 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
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
VirtualBox: снимки/snapshots
И то, для чего это всё собственно делалось: при остановленной VM, удаляю все снапшоты - с тем чтобы всё это объединить в единый виртуальный диск CLI FreeBSD.
Код: Выделить всё
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.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя