История изменений
Исправление Harliff, (текущая версия) :
откуда эти 130 гиг лишних то…
Могу ошибаться; кажется, так thin provisoing работает.
Например,
- Вы выделили для VM раздел 100 Гб. С точки зрения ОС в VM - это обычный диск. С точки зрения хоста - это «тонкий» раздел.
- ОС в VM стала работать и генерить дисковую активность - создавать файлы, записывать в них информацию, перезаписывать файлы, перезаписывать части файлов, удалять файлы и создавать новые и т.д. - короче, работать как обычно.
- работая так, VM сгенерировала операций дисковой записи на 300 Гб. При этом, если зайти в ОС то там видно, что, например, из имеющихся 100 Гб у неё есть 30 Гб свободных.
- в итоге, у вас фактически занято 300 Гб (в cow файле или в VG). Да, всё правильно - 100 Гб диск виртуалки смог занять втрое больше своего объема на хосте.
- если зайти в VM и удалить там, например, 40 Гб файлов, то на хосте по-прежнему будет занято 300 Гб.
Что с этим делать?
- делать TRIM внутри VM - то есть, уведомлять блочное устройство о том, что часть блоков ей больше не используются. Тут есть нюансы (раньше было так: где-то trim работает, где-то нет, где-то нужны особые настройки и драйверы; как сейчас - не знаю). Насколько я знаю, TRIM надо настраивать заранее; то есть, в Вашем случае проще подключить второй диск в VM и сделать копирование через
dd
/tar
/rsync
в виртуалке (или через qemu-img в хосте). - использовать thin provisioning там, где оно нужно - то есть там, где есть короткий цикл «создали много копий существующего блочного устройства, что-то поделали, удалили все копии» (в компьютерных классах, при тестировании ПО и т.д.) и не использовать там, где оно не нужно (в ситуации, когда создали виртуалку, индивидуально её настроили с нуля и используете в течение долгого времени).
Исправление Harliff, :
откуда эти 130 гиг лишних то…
Могу ошибаться; кажется, так thin provisoing работает.
Например,
- Вы выделили для VM раздел 100 Гб. С точки зрения ОС в VM - это обычный диск. С точки зрения хоста - это «тонкий» раздел.
- ОС в VM стала работать и генерить дисковую активность - создавать файлы, записывать в них информацию, перезаписывать файлы, перезаписывать части файлов, удалять файлы и создавать новые и т.д. - короче, работать как обычно.
- работая так, VM сгенерировала операций дисковой записи на 300 Гб. При этом, если зайти в ОС то там видно, что, например, из имеющихся 100 Гб у неё есть 30 Гб свободных.
- в итоге, у вас фактически занято 300 Гб (в cow файле или в VG). Да, всё правильно - 100 Гб диск виртуалки смог занять втрое больше своего объема на хосте.
- если зайти в VM и удалить там, например, 40 Гб файлов, то на хосте по-прежнему будет занято 300 Гб.
Что с этим делать?
- делать trim внутри VM - то есть, уведомлять блочное устройство о том, что часть блоков ей больше не используются. Тут есть нюансы (раньше было так: где-то trim работает, где-то нет, где-то нужны особые настройки и драйверы; как сейчас - не знаю).
- использовать thin provisioning там, где оно нужно - то есть там, где есть короткий цикл «создали много копий существующего блочного устройства, что-то поделали, удалили все копии» (в компьютерных классах, при тестировании ПО и т.д.) и не использовать там, где оно не нужно (в ситуации, когда создали виртуалку, индивидуально её настроили с нуля и используете в течение долгого времени).
Исходная версия Harliff, :
откуда эти 130 гиг лишних то…
Могу ошибаться; кажется, так thin provisoing работает.
Например,
- Вы выделили для VM раздел 100 Гб. С точки зрения ОС в VM - это обычный диск. С точки зрения хоста - это «тонкий» раздел.
- ОС в VM стала работать и генерить дисковую активность - создавать файлы, записывать в них информацию, перезаписывать файлы, перезаписывать части файлов, удалять файлы и создавать новые и т.д. - короче, работать как обычно.
- работая так, VM сгенерировала операций дисковой записи на 300 Гб. При этом, если зайти в ОС то там видно, что, например, из имеющихся 100 Гб у неё есть 30 Гб свободных.
- в итоге, у вас фактически занято 300 Гб (в cow файле или в VG).
Что с этим делать?
- делать trim внутри VM - то есть, уведомлять блочное устройство о том, что часть блоков ей больше не используются. Тут есть нюансы (раньше было так: где-то trim работает, где-то нет, где-то нужны особые настройки и драйверы; как сейчас - не знаю).
- использовать thin provisioning там, где оно нужно - то есть там, где есть короткий цикл «создали много копий существующего блочного устройства, что-то поделали, удалили все копии» (в компьютерных классах, при тестировании ПО и т.д.) и не использовать там, где оно не нужно (в ситуации, когда создали виртуалку, индивидуально её настроили с нуля и используете в течение долгого времени).