LINUX.ORG.RU

История изменений

Исправление 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 там, где оно нужно - то есть там, где есть короткий цикл «создали много копий существующего блочного устройства, что-то поделали, удалили все копии» (в компьютерных классах, при тестировании ПО и т.д.) и не использовать там, где оно не нужно (в ситуации, когда создали виртуалку, индивидуально её настроили с нуля и используете в течение долгого времени).