Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Удаление файлов в Ubuntu 20.04 из под VMWare  (Прочитано 1451 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Echoworld

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Проблема следующая, тестирую различные дистрибутивы в среде виртуализации вмваре, так вот при удалении файлов в виртуальной убунте, постоянно увеличивается размер виртуального диска, скачиваем допустим торрент размером 50 Гб, после его удаляем, выключаем виртуалку, размер виртуального диска увеличивается на 50 гб. Тоже самое и с любыми другими удаляемыми файлами. Из-за чего это может быть и возможно ли это каким-либо образом исправить ?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7440
  • Luck Tales
    • Просмотр профиля
Re: Удаление файлов в Ubuntu 20.04 из под VMWare
« Ответ #1 : 03 Ноября 2020, 00:45:31 »
Echoworld, не используйте в виртуалке диски динамического размера.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 364
    • Просмотр профиля
Re: Удаление файлов в Ubuntu 20.04 из под VMWare
« Ответ #2 : 03 Ноября 2020, 02:03:19 »
Из-за чего это может быть и возможно ли это каким-либо образом исправить ?
Это происходит из-за особенностей реализации виртуальных дисков в системах виртуализации.

Для Linux диск это упорядоченный набор блоков одинакового размера. Linux может считать данные или записать данные в любой блок. Поэтому еще диски называют блочные устройства с произвольным доступом. Для того, что бы записать данные в какой-то блок диска, Linux отправляет контролеру диска команду, в которой указывает номер блока и данные для записи. Контролер диска сохраняет эти данные в указанный блок и сообщает Linux, что  запись закончилась.

Когда Linux работает внутри вириальной машины, то вместо контролера диска команды для диска обрабатывает система виртуализации. И для того, что бы сохранить данные полученные от Linux она их сохраняет в файл виртуального диска. Таким образом файл виртуального диска начинает увеличиваться.

Когда внутри гостевой ОС Linux удаляют файл, то Linux контролеру диска не посылает сигнал стереть эти блоки, а лишь у себя в специальном списке отмечает, что теперь эти блоки свободные, хотя в них продолжается храниться информация от удалённого файла. Система виртуализации не знает, что эти блоки можно удалить из файла виртуального диска и поэтому файл вириального диска не уменьшается, если даже удалить все файлы с диска внутри виртуальной машины.

Бывают исключения и некоторые системы виртуализации поддерживают команду TRIM. Например, это реализовано в VirtualBox, но там есть куча ограничений и гостевая операционная система должна отправлять TRIM, что бы уменьшился размер файла с вириальным диском.

Если виртуальные машины используете для тестов, то создавайте новый файл для виртуального диска, а распухший файл удаляйте.
« Последнее редактирование: 03 Ноября 2020, 23:29:52 от valrust »

Оффлайн Echoworld

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Удаление файлов в Ubuntu 20.04 из под VMWare
« Ответ #3 : 03 Ноября 2020, 22:56:44 »
valrust, Благодарю за мат.часть ! Сделал для себя вывод, чтобы хоть как-то избегать подобных ситуаций, либо надо пробрасывать физический базовый диск и ставить на него систему, либо просто чаще делать снэпшоты и в случае подобных инцидентов вовремя откатываться.
« Последнее редактирование: 03 Ноября 2020, 22:58:19 от Echoworld »

 

Страница сгенерирована за 0.043 секунд. Запросов: 25.