KVM >= 79: Lassulás vagy metadata sérülés qcow2 használatával?

A KVM 79 és annál újabb verzióiban levő qemu kódban regresszió figyelhető meg qcow2-es formátumú image fájlok használatával.

Nálam 2.6.27.6-os kernelről 2.6.28-as kernelre frissítve jelentkezett a regresszió sajnos metadata sérülés formájában.

A probléma legegyszerűbben úgy látható, ha pl. üres qcow2-es image fájlt használva, partícionálni szeretnék az üres disket. Az új partíciós táblát hiába próbáljuk menteni, visszaolvasáskor is üres marad. Különböző cache paraméterekkel játszhatunk, aminek köszönhetően vagy a korábbi qemu kód disk átviteli sebességének 10%-át érhetjük el vagy a fenti hibát reprodukálhatjuk sikerrel.

Megoldás lehet a raw image formátumra áttérés:
kvm-img convert -f qcow2 image.qcow2 -O raw image.raw

Ezzel néhány csak qcow2 formátummal használható szolgáltatásról (pl. tömörített image) le kell mondanunk.

Fejlesztői e-mail a kvm-devel levelező listáról.

Én mindenesetre a meglévő image-eimet konvertáltam raw formátumúra, a jövendőbeli qcow2 bugok elkerülése végett.

Hozzászólások

raw helyett nem lett volna elég sima qcow?

1. Kipróbáltam qcow formátummal. Érdekes módon ezt kaptam:
qemu: could not open disk image teszt.qcow
Nem tudtam rávenni, hogy elinduljon qcow image használatával. :(

2. Tettem egy gyors partícionálós próbát vmdk image formátummal is. Eredmény ugyanaz mint qcow2 esetén. Nem jegyzi meg a mentett partíciós táblát egyik cache beállítással sem.

Szóval mégis csak raw marad. :)

Viszont nem tudom számíthat-e, hogy ext4-es fájlrendszer van a host gépen. Ha tudom, letesztelem majd ext3 alatt is.

Időközben sikerült behatárolni, hogy mi okozza a problémát.
Egy tavaly év elején felfedezett vulnerabilityt javító patch, amely nem része a vanilla kvm-nek/qemu-nak, de a Debian csomagban megtalálható. A patch régóta bent volt, de a Debian-féle 72-es verzióban még egy régebbi fix volt, amit cseréltek a Debian-féle 79+dfsg-3 verzióban egy frissebb fixre, amit a Fedoratól vettek át. Tehát a régi fix nem okozott galibát, de az újabb fix már okoz. A patchet kihagyva a problémám megoldódott, sőt már a qcow formátumot is felismeri. :)

Bugzilla bejegyzés itt.

Ugyanakkor úgy tűnik másnál egyéb ok miatt vanilla kvm-nél továbbra is fenn áll az adatvesztési hiba qcow2-vel.

Debian experimentalban található kvm-83+dfsg-1-ből már kiszedték a problémát okozó patchet.
Bugzilla bejegyzések: #511914, #512654.
Lehet visszafele konvertálni raw-ból qcow2-be. :)