У меня есть виртуальная машина Ubuntu 18 с тонким предоставлением на ESX 6 с одним виртуальным диском, который использует почти весь базовый физический диск (у меня есть новый диск емкостью 4 ТБ, на который заказано в ближайшее время). Файловая система VM - ext4 на LVM.
Итак, если я удалил большой файл или файлы внутри виртуальной машины, будет ли Ubuntu / ESX повторно использовать это доступное пространство в первую очередь, прежде чем расширять виртуальный диск? Должен ли я делать что-то вроде обнуления доступного места, или все это делается на уровне ext4, LVM или ESX?
Проще говоря, могу ли я обойтись путем временного удаления некоторого мусора, пока не придут новые диски?
(Я знаю, что могу сделать это вручную, используя vmkfstools или другое подобное действие, но мне более любопытно, чем серьезно - это моя домашняя лаборатория).
Ваша гостевая ОС не знает и не заботится о том, является ли диск виртуальным с тонким выделением ресурсов. Он будет удалять и записывать файлы на диск в соответствии с тем, как файловая система решает размещать файлы, и у вас нет особого контроля над этим.
Кроме того, ESXi ничего не знает о файлах на виртуальном диске. Для ESXi это просто непрозрачный блок данных.
Но так как виртуальный диск плохо проверен, файлы, составляющие виртуальный диск, могут быть сжаты. У гостевой ОС есть способ сообщить хосту, что она удалила данные на части диска и что это пространство можно освободить. Это происходит путем монтирования файловой системы с помощью discard, точно так же, как ОС сообщает SSD об удалении данных.
Вы должны убедиться, что ваши файловые системы смонтированы с discard
вариант монтирования в /etc/fstab
, и это в /etc/lvm/lvm.conf
Настройки issue_discards = 1
установлен. Затем Linux отправит команды TRIM / UNMAP, когда вы удаляете данные, и ESXi будет знать, что эти сектора виртуального диска больше не используются.