LINUX.ORG.RU

qcow2 с динамическим размером перенести на другой физический диск

 ,


0

1

Копирование файла машины разворачивает размер файла до фиксированного (максимального) размера, где магия и что делать? Нужна какая-то процедура миграции?


Ответ на: комментарий от futurama

При создании машины указал опцию - динамический диск и хотя ext4 почему-то показывает максимальный размер файла машины, занятое место на диске гораздо меньше, следовательно размер динамический. Но при копировании на другой диск, размер файла машины оказывается максимальным. Наверное используется какая-то опция ext4, позволяющая резервировать место, но не занимать его. Вопрос: возможно ли перенести машины сохранив динамичность размера файла-контейнера qcow2.

vrnd
() автор топика

Скорее всего имеется в виду то, что файл может занимать физически меньше места, чем заявлено. По моему, это называется sparce file. Но если скопировать такой файл, то начинает занимать свой заявленный размер.

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

При создании машины

Какими средствами ты её создавал?

хотя ext4 почему-то показывает максимальный размер файла машины

Покажи вывод

ls -lsh файл_образа_диска
qemu-img info файл_образа_диска
stat файл_образа_диска

Но при копировании на другой диск

Как копируешь?

kostik87 ★★★★★
()
Ответ на: комментарий от vrnd
$ ls -lh file.qcow2
-rw-r--r-- 1 libvirt-qemu libvirt-qemu 11G Jun 26 13:24 file.qcow2

$ qemu-img info file.qcow2 | grep size
virtual size: 20 GiB (21474836480 bytes)
disk size: 10.3 GiB
cluster_size: 65536

Вот динамический qcow2, а у тебя нет

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

Вообще не понятно про что ты говоришь:

qemu-img create -f qcow2 hdd.qcow2 2G
Formatting 'hdd.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=2147483648 lazy_refcounts=off refcount_bits=16

ls -lsh hdd.qcow2
196K -rw-r--r-- 1 root root 193K Dec 15 18:38 hdd.qcow2

qemu-img info hdd.qcow2
image: hdd.qcow2
file format: qcow2
virtual size: 2 GiB (2147483648 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false

cp hdd.qcow2 /var/share/

ls -ls /var/share/hdd.qcow2
196 -rw-r--r-- 1 root root 196640 Dec 15 18:38 /var/share/hdd.qcow2

qemu-img info /var/share/hdd.qcow2
image: /var/share/hdd.qcow2
file format: qcow2
virtual size: 2 GiB (2147483648 bytes)
disk size: 196 KiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
    extended l2: false

Вот пример, создал диск в формате qcow2 размером 2Гб, он занимает 196Кб, скопировал на другую файловую систему, на ней файл так же занимает 196Кб.

Что ты делаешь?

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

Virtual Machine Manager

/mnt/vm/qemu » ls -lsh arch.qcow2                                                                             
4,4G -rw-------. 1 ____  51G ноя  4 23:24 arch.qcow2
------------------------------------------------------
/mnt/vm/qemu » qemu-img info arch.qcow2                                                                       

image: arch.qcow2
file format: qcow2
virtual size: 50 GiB (53687091200 bytes)
disk size: 4.35 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: true
    refcount bits: 16
    corrupt: false
    extended l2: false
Child node '/file':
    filename: arch.qcow2
    protocol type: file
    file length: 50 GiB (53695545344 bytes)
    disk size: 4.35 GiB
-----------------------------------------------------------------
/mnt/vm/qemu » stat arch.qcow2                                                                                

  Файл: arch.qcow2
  Размер: 53695545344	Блоков: 9116744    Блок В/В: 4096   обычный файл
Устройство: 253/3	Инода: 12582917    Ссылки: 1
Доступ: (0600/-rw-------)  Uid: ( 1000/      )   Gid: ( 1000/      )
Контекст: unconfined_u:object_r:svirt_image_t:s0:c470,c590
Доступ:        2024-12-15 17:09:00.590287453 +0300
Модифицирован: 2024-11-04 23:24:32.153037487 +0300
Изменён:       2024-11-04 23:24:32.153037487 +0300
Создан:        2024-11-04 18:23:15.588519552 +0300

Копирую гномовским файловым менеджером

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

Наверное используется какая-то опция ext4, позволяющая резервировать место, но не занимать его

Упоминали sparse file, но это к qcow2 не относится

$ ls -lh file.dat
-rw-r--r-- 1 user group 910T Dec 15 18:44 file.dat

$ du -sh file.dat 
0	file.dat
futurama ★★★★★
()
Ответ на: комментарий от vrnd
  Файл: arch.qcow2
  Размер: 53695545344	Блоков: 9116744    Блок В/В: 4096   обычный файл

У тебя размер файла 53695545344, т.е. 50 Гб, именно это пространство он занимает на файловой системе.

Вот почитай: https://bytesandbones.wordpress.com/2019/11/06/kvm-qemu-qcow2-sparse-disk-allocation-problem-shrink-sparse-qcow2-disks-howto/

Забей на уровне файловой системы в гостевой ОС на файловой системе виртуального диска всё нулями.

А потом сделай shrink, как описано в статье по ссылке.

kostik87 ★★★★★
()