Есть ли у кого-нибудь такой опыт, что вы случайно удаляете использованный образ диска, когда виртуальная машина работает?
Я ожидал, что виртуальная машина сразу выйдет из строя, но, что удивительно, она все еще работает безупречно. Я пробовал выполнять множество команд ввода-вывода и даже создавать очень большие файлы с помощью «dd», которые намного больше, чем размер памяти виртуальной машины. Но он все еще жив.
Кто-нибудь может объяснить почему?
Информация о сервере: ubuntu 12.04 с KVM и libvirt, установленными из репозитория по умолчанию. Образ диска виртуальной машины имеет формат qcow2.
Удаление файла на самом деле не приводит к его удалению, это уменьшает количество имен, указывающих на индексный дескриптор. Если и количество имен, и количество открытых файловых дескрипторов в файле достигают 0, данные удаляются.
Таким образом, если вы удалите файл, который все еще открыт каким-то приложением, это приложение все еще может с радостью использовать этот файл. Только когда закрывается последний файловый дескриптор, файл удаляется (и тогда вы увидите, что использованное пространство снова освобождается).
Когда вы удаляете файл с открытым дескриптором файла, он не удаляется, пока дескриптор файла не будет закрыт. Вероятно, вы можете найти этот файл с помощью lsof | grep удалил команду
.
Попробуйте это, если вы хотите восстановить файл: http://www.serverwatch.com/tutorials/article.php/3822816/Recovering-Deleted-Files-With-lsof.htm