I am pretty sure I know the answer, but is there any way to do this
gracefully, i.e. within the confines of the oVirt API? This is on an iSCSI
storage domain. My understanding and further research suggest no, but I
wanted to ask before we endeavor on a major overhaul of a production system
that some one setup without knowing the better of to the 2 for such use.
I am very familiar with the underlying systems (LVM, KVM, etc.) and would
appreciate any suggested hacks. So far, here is what I have come up with:
Sure to work: Setup a new VM with preallocated drives. Boot both VMs off
of a live virtual CD. Use cat/pv and nc (netcat) to read directly from the
block devices on one and write directly to the block devices on the other.
Reboot the new VM from the internal disks. Tweak MAC addresses along the
way so the new VM gets those of the old. The down side is the down time,
but we can probably swallow it if we have to. Any other risks?
Might work: Create a new VM. Identify the logical volumes (LVs) are
assigned for that block devices used by the new and the old. Log into the
SPM and read directly from the old LVs to the new. This is similar to that
above, but I expect I need to run the data through some kind of
qcow2-to-raw conversion process to make this work. Similar down sides to
the above, but maybe less so? Thoughts?
Another thought I had was to just write zeros to the empty space on the
block devices, from inside the guest OS, until the full allocation is
achieved. The down side is potential impact on performance of the system
while it is filling up and for the (hopefully) very short time the file
system is full before an rm of the zeros file kicks in. Also we would
still have qcow2 underneath, so would it still add overhead, or does that
only apply when it grows? Any other down sides to this?
Thanks in advance for your thoughts and consideration.
________________
Alan Johnson
alan(a)datdec.com
Date Format PSA <
http://xkcd.com/1179/>