Уменьшите использование диска изображения xen

Два случая:

1. При создании изображения HDD с помощью dd и копии это nfs канавки к другому серверу:

mount -o ro,remount /
dd if=/dev/sda bs=64K | gzip -c > /share/test.img.gz

затем после gunzip я получаю 20 ГБ (для напр.) файл, заполненный w/zeroes в конце:

du -h /md/share/test.img
21G /md/share/test.img

2. Если я создаю пустое изображение с помощью dd:

dd if=/dev/zero of=/md/share/test2.img bs=1024k seek=20480 count=0

Я добрался:

du -h /md/share/test2.img
0 /md/share/test2.img
ls -lah /md/share/test2.img
-rw-r--r-- 1 root root 20G Aug 2 14:46 /md/share/test2.img

После монтирования этого гостю я могу использовать все 20G всегда, я хочу, и размер IMG всегда равен, это - фактическое содержание, ни с кем "обнуляет" еду моего пространства массива.

Вопрос: как я могу уменьшить размер образа диска для случая 1?

Ответ: если dd поддерживает conv=sparse атрибут, это должно использоваться в дополнение к tar --sparse. В противном случае обновление coreutils и попробуйте его снова. Еще пакет установки libguestfs-tools и выполненный virt-sparcify /md/share/test.img /md/share/test_sparse.img

2
задан 3 August 2015 в 18:50
2 ответа

Как сказал @sam_pan_mariusz, изображение уменьшенного размера вы создаете свое «пустое» изображение как «разреженный» файл. Чтобы создать разреженный файл из существующего блочного устройства, добавьте параметр conv = sparse в команду dd if = / dev / sda [...] , которую вы использовали для сделать исходное изображение. Вам нужно будет поместить файл образа в tar --sparse , потому что простое сжатие образа файла приведет к записи разреженных фрагментов, что сделает их неразреженными.

0
ответ дан 3 December 2019 в 12:45

Эта функция называется разреженными файлами . GNU tar --sparse обрабатывает их хорошо, за исключением одного только gzip.

Также не повредит использовать zerofree в конечном образе.

1
ответ дан 3 December 2019 в 12:45

Теги

Похожие вопросы