@inneks

Почему растет размер виртуального диска?

ubuntu 20.04.6 lts c установленным почтовым Carbonio. Пока не пользуемся , отправили пару тестовых сообщений пару дней назад слепок был 40 гиг, сегодня 43 уже. Что делать?
  • Вопрос задан
  • 375 просмотров
Решения вопроса 1
@inneks Автор вопроса
Почему это происходит? Объяснение простое: на дисках виртуальных машин создаются какие-то временные файлы во время работы. Эти файлы успешно удаляются, но удаляется заголовок, а тело файла остаётся в неизменном виде на своём месте. Да, это место считается пустым с точки зрения виртуальной машины, и туда может быть записан какой-то новый файл при необходимости. Но с точки зрения гипервизора это место остаётся всё так же занятым, поэтому архиватору придётся попыхтеть напрасно, сжимая никому не нужную информацию.

вобщем спасает

очистка нулями незанятого пространства диска. Это действие можно сделать двумя способами.
Способ первый - через файловую систему. Необходимо внутри образа создать файл, заполненный нулями, максимально большого размера. А затем его удалить. Для этого необходимо загрузить гостевую систему (предполагается, что там установлен Linux) и под пользователем root выполнить команду:
dd if=/dev/zero of=/var/tmp/bigemptyfile bs=4096k ;
rm /var/tmp/bigemptyfile
потом в windows
cd C:\Program Files\Oracle\VirtualBox
VboxManage.exe modifyhd "D:\path\to\dir\your_disk.vdi" --compact
//////////
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
tsklab
@tsklab
Здесь отвечаю на вопросы.
снимок виртуальной машины, сам образ такой же
именно папка snapshot растет
Что делать?
Не делать снимок, а архивировать сам виртуальный диск.
Ответ написан
Комментировать
@rPman
Так как информации мало, могу предположить.

При создании виртуальной машины были созданы динамические диски (или использовалась аналогичная технология у LVM), когда создаваемый диск большого размера физически занимает меньше места, именно столько, сколько записей было сделано виртуальной машиной. Точно так же будет вести себя диск, размещенный в файле с поддержкой sparse files - когда кластеры, занимаемые файлом, пока в них не была произведена запись, не занимают реально место (только в метаданных информация о них)

Но именно в контексте дисков виртуальных машин этот подход имеет недостаток - место на диске увеличивается но не уменьшается, т.е. когда виртуальная машина удаляет файл, с реальным местом на диске ничего не происходит, и при создании нового файла (по другому адресу) реальное место на диске будет продолжать тратиться, и возможна ситуация, когда постоянно создавая и удаляя файл внутри виртуальной машине, место, которое занимает диск будет увеличиваться до реального размера диска, выбранного при создании машины (на самом деле это зависит от файловой системы на диске внутри виртуальной машины, планирование выбора следующего места для нового файла не гарантирует, что это будет новое а не место удаленного файла, например cow-файловые системы типа zfs/btrfs/xfs этому более подвержены).

Погуглил, оказывается VIrtualBox или Hyper-v поддерживают trim как раз для освобождения места, ну и конечно есть команды для вакуумирования этого освободившегося места, ищи в документации твоей виртуальной машины.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы