LINUX.ORG.RU
ФорумAdmin

раздуло образы всех виртуалок

 ,


0

4

Мне казалось что qcow2 должен круто экономить место. Поэтому я выделил как бы 30гиг под свою виртуалочку, но внутри занято гига на три-пять (щас точно не скажу, она выключена для аплоада на новый сервер).

В общем, я думал что круто экономлю место, но не тут-то было: за два года размер перевалил за 20 гиг. Та же фигня случилась и с остальными виртуалками. Я что-то неправильно делаю или ext4 пишет таким образом что qcow2 распухает? Смотрел через ls -lksh|stat на случай если qemu-img создаёт дырявые образы.

Никогда внутри виртуалки места больше чем на 5гиг не было занято. То же самое с остальными. Я теперь не знаю что делать. Наверно переливать в raw небольшого размера и потом наращивать образ и делать resize2fs по мере необходимости.

PS не пугайтесь, скоро флуд от меня прекратится. Я уже почти переехал на новый сервер...

★★★★★

man qemu-img

читать раздел про 'convert'

перед этим в виртуалке «занулить» несипользуемое пространство (для ext2/3/4 есть zerofree, для reiserfs поищи сам, на крайняк - dd никто не отменял)

anonymous
()
Ответ на: комментарий от anonymous

Для reiserfs:

debugreiserfs -U -Z /dev/sdX

-U и -Z - недокументированые, так что в хелпе и мануале их не ищи, можешь посмотреть в debugreiserfs.c

anonymous
()
Ответ на: комментарий от anonymous

Да он потом опять распухнет если я не найду причину. Надо было мне вообще перелить тупо бэкап, он на 700-900 метров. А щас даже с компрессией образ не gzip не сжимается меньше чем до 8гиг.

Хотяя, с учётом времени копирования я попробую так сделать, посмотрим что получится.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от anonymous

zerofree доверия не вызвал, занулил через dd, конвертнул и образ съёжился с 9.5 гиг до 3.3. Пожалуй, больше не буду qcow2 для thin provisoning использовать т.к. гонять образа туда-сюда не дело, особенно когда размер виртуалки десятки гиг.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Есть ещё вариант: монтировать FS с опцией secrm. Но для этого надо патченные FS и у меня есть патчи пока только для ext2, ext3, ext4 и fat. В этом случае файли «зануляются» автоматически перед удалением.

anonymous
()
Ответ на: комментарий от true_admin

zerofree доверия не вызвал

zerofree на ext2/3 вполне юзабельный: у нас его тестировали и пользуются. Тем более, что сам по себе он ничего не делает а использует стандартную libext2fs.

anonymous
()
Ответ на: комментарий от hope13

Я не использую снапшоты.

А можешь привести пару примеров занятого места на своих виртуалках? Сколько занято внутри и сколько снаружи. И давно ли запущены виртуалки.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Без проблем, сейчас только firefox соберётся наконец-то с 3 раза :)

hope13 ★★★
()
Ответ на: комментарий от true_admin

Извини, что так долго. У меня 2 виртуальных машины на qcow2

Внутри:
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        8.9G   6.4G   2.1G  76% /

└─■ qemu-img info ubuntu.img 
image: ubuntu.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 9.2G
cluster_size: 65536

Внутри свободно: 3,92Гб

└─■ qemu-img info windows.img 
image: windows.img
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 27G
cluster_size: 65536

hope13 ★★★
()

Это нормальное поведение. Откажись от qcow2 и юзай LVM (нарезай lv под вирт.диски)

anonymous
()
Ответ на: комментарий от hope13

Лично у меня жиртуальные диски не разбухают.

На qcow2 только, если не удаляются файлы.

А это

Внутри:
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        8.9G   6.4G   2.1G  76% /

└─■ qemu-img info ubuntu.img 
disk size: 9.2G

как называется: вместо 6.4G занимает 9.2G?

gag ★★★★★
()

Мне казалось что qcow2 должен круто экономить место.

Если б ;)

Сам уже давно в (не очень активном) поиске решения. Причём задумался об этом после появления фичи discard в SSD. Ведь виртуальный HDD страдает как раз той же болезнью, что и реальный SSD. Ни контроллеру SSD, ни виртуальному HDD не известно, что какие-то блоки были освобождены. Значит, драйвер ФС должен об этом сообщать, а виртуалка это учитывать. ОК, драйвера что винды, что ext4 discard уже некоторое время поддерживают, но вот с виртуалками хуже. В virtualbox 4.2 появилась поддержка (но они там на SSD акцент делают), но никак не попробую. В qemu как раз с выходом 1.4 они должны были это включить, но не для qcow2, а для raw, если не ошибаюсь. И грозят, что производительность может пострадать, т.к. файл на реальном диске будет как ещё то решето.

gag ★★★★★
()
Ответ на: комментарий от gag

как называется: вместо 6.4G занимает 9.2G?

Просто cqow2 не сжимается сам после удаления файлов.

а фс на убунте какая? У меня ext4

ext4

hope13 ★★★
()
Ответ на: комментарий от hope13

Просто cqow2 не сжимается сам после удаления файлов.

Т.е. «разбухает» до макс. размера виртуального HDD, о чём и идёт речь.

Если и более того, тогда это уже баг.

gag ★★★★★
()
Ответ на: комментарий от gag

Т.е. «разбухает» до макс. размера виртуального HDD, о чём и идёт речь.

Ну да, только у меня там реально был диск записан под завязку в своё время.

hope13 ★★★
()

Я теперь не знаю что делать

Не создавать динамические диски.

ext4 точно будет со временем раздуваться... Из-за когда-то появившихся а потом удалённых файлах... Оно пишет куда бог пошлёт на душу.

Я научился переодически забивать свободное место в ext4 нулями, и снова ужимать динамический диск. - Если очень нужно завтра напишу как. Но у меня диски vmdk. - Хотя думаю qcow2 тоже так должна уметь.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

Я научился переодически забивать свободное место в ext4 нулями, и снова ужимать динамический диск

через qemu-img convert? Да, я так и сделал :). Но всё равно спасибо за помощь.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от true_admin

Это на уровне qemu, а ещё сперва на уровне фс в виртуалке надо сделать... На подобии fsclean или как-то так обзывается. - В общем я виртуалку с livecd пускал, там забивал нулями всё неиспользуемое пространство, и затем уже работал на уровне гипервизора.

DALDON ★★★★★
()
Ответ на: комментарий от DALDON

угу, я тоже через dd забивал свободное место нулями, только делал на живой системе (но веб-сервер потушил чтобы база не слегла от недостатка места).

true_admin ★★★★★
() автор топика
Ответ на: комментарий от DALDON

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

Я для хранения образа предпочитаю sparse-файлы. Здесь всё ещё сложнее. Насколько я знаю, файловой системе вообще нельзя сказать, что конкретный блок в файле больше не используется. Если однажды он был записан, будет уже жить на диске вечно.

shamus24
()
Ответ на: комментарий от shamus24

Я об этом выше уже писал.

Насколько я знаю, файловой системе вообще нельзя сказать, что конкретный блок в файле больше не используется. Если однажды он был записан, будет уже жить на диске вечно.

Это было так. До выхода ядра 3.0. Некоторые ФС это умели и раньше. Например, NTFS ;) А также уже более 2-х лет: XFS и ещё некая OCFS2,. С выходом 3.0 к ним присоединилась ext4. И писатели ФС могут добавить эту возможность в свои ФС.

Смотри man 2 fallocate (FALLOC_FL_PUNCH_HOLE).

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от gag

Спасибо. Прогресс, однако. А есть дистрибутив, в котором уже собрали этот qemu 1.4? В последней федоре 1.2.2. Я бы не поленился проверить что и как. Но пересобирать всё не хочу. Или гентушника в помощь взять? :-)

shamus24
()
Ответ на: комментарий от shamus24

А есть дистрибутив, в котором уже собрали этот qemu 1.4?

что-то не видно поэтому я собирал руками.

true_admin ★★★★★
() автор топика
Ответ на: комментарий от shamus24

shamus24:

А есть дистрибутив, в котором уже собрали этот qemu 1.4?

true_admin:

что-то не видно поэтому я собирал руками.

Да, есть: в дэбиане (экспериментал) пакеты появились буквально сразу после выхода 1.4.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.