Назад | Перейти на главную страницу

LibVirt: образ диска имеет неправильный размер внутри гостевой системы

Я создаю новый виртуальный диск с помощью следующей команды *:

$ virsh vol-create-as --format=qcow2 guest-disks disk_instid.24_diskid.30 8192M
Vol disk_instid.24_diskid.30 created

Пул "гостевые диски" - это простой пул типа "dir". Как видите, команда выполняется успешно, но когда я пытаюсь установить операционную систему в новом домене, она отображается в размере лишь доли мегабайта:

# fdisk -l /dev/sda 

Disk /dev/sda: 0 MB, 262144 bytes
1 heads, 1 sectors/track, 512 cylinders, total 512 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

Как видите, размер совсем не тот. Есть идеи, почему это так?

* Не обращайте внимания на числа - это часть инструмента, который автоматически создает домены.

Хорошо, я разобрался сам. Если вы не укажете формат в доменном XML, Libvirt ожидает, что по умолчанию он будет иметь «необработанный» формат, который не расширяется по мере использования, но должен быть полностью выделен (см. Ответ dyasny). ~ 200 КБ - это начальная структура данных формата qcow2.

Что нужно сделать, это следующее: вы должны добавить элемент «драйвер» в «дисковую» часть домена xml, явно указав формат qcow2, например:

<disk type="file" device="disk">
    <driver name="qemu" type="qcow2" />
    <source file="/var/lib/virt/guest-disks/disk_instid.24_diskid.30" />
    <target dev="sda" />
</disk>

После этого изменения ОС домена видит диск, как и ожидалось.

попробуйте с --allocation 8192M это выделит размер диска