I could not figure out exactly what vol-download or vol-upload do or how
they work. But I did
discover that vol-create-from does work across pools. It does requires one
to create an XML
def for the volume which I had never done. It appears at least one does
not have to a give a
complete definition (I did not specify key or extents for example) or even
correct (I specificed
qcow2 format but it still made a raw format volume on the LV). SO
essentially I did
virsh vol-dumpxml surfer-2.img vmback > surfer.xml
Edit surfer.xml to have no key, change name, have LV path, etc.
virsh vol-create-from vmpool1 surfer.xml surfer-2.img --inputpool vmback
I then fired up virt-manager and edited the domain definition to delete the
old disk and add
the new volume as its new disk. Then booted it in single user mode so I
could fix the
mac address in the ifcfg-eth0 and udev/rules.d/70-persistant-net.rules
files.
On Wed, Nov 7, 2012 at 5:18 PM, Paul Raines <paul.raines(a)gmail.com> wrote:
Can you show me how one would use vol-download and vol-upload to do
this?
I cannot figure it out from the docs. What I have in the old directory
based storage pool is:
virsh # pool-info vmback
Name: vmback
UUID: 7a8ab88b-42a9-f4c9-128e-83adea324b9a
State: running
Persistent: yes
Autostart: yes
Capacity: 885.88 GB
Allocation: 65.57 GB
Available: 820.31 GB
virsh # vol-list vmback
Name Path
-----------------------------------------
lost+found /vmback/lost+found
pool.xml /vmback/pool.xml
ruby.img /vmback/ruby.img
surfer-1.img /vmback/surfer-1.img
webtemplate.img /vmback/webtemplate.img
The new one (LVM) is:
virsh # pool-info vmpool1
Name: vmpool1
UUID: a95f6f30-b035-7750-6b7d-77953ee7d9af
State: running
Persistent: yes
Autostart: yes
Capacity: 1.76 TB
Allocation: 0.00
Available: 1.76 TB
And I want to move the ruby domain (single disk file ruby.img) to it.
On Wed, Nov 7, 2012 at 4:37 PM, Eric Blake <eblake(a)redhat.com> wrote:
> On 11/07/2012 02:13 PM, Paul Raines wrote:
> >
> > I created a new LVM type storage pool on my server and would like to
> > move my VM disk volumes in a directory-based pool into this new pool.
> > But I cannot figure out how that is done. I find plenty of information
> > on how to migrate live VM images from one host to another, but not on
> > how to just move one live from one storage pool to another on the same
> > host.
> >
> > If it cannot be done live, how an I do it non-live? I guess non-live I
> > could clone, but that would change the MAC address. Just seems that if
> > libvirt
> > can migrate live it should be able to move a VM between storage pools
> > on the same host even easier.
>
> Hmm - you have a good point - right now, 'virsh vol-create-from' and
> 'virsh vol-clone' only allow motion within a single pool, and not from
> one pool to another. I guess you could use 'virsh vol-download' and
> 'virsh vol-upload' to move volumes from one place to another, although
> those APIs still lack the ability to cleanly state whether you are
> migrating metadata (what the host sees) or contents for conversion into
> a different format (what the guest sees). At any rate, these commands
> would be useful on offline disks (and NOT for a disk image in active
> read-write use by any qemu guest). I think there's a lot of work that
> could be done to improve matters with how we manage volumes and pools.
>
> Meanwhile, live storage migration IS possible, with libvirt 1.0.0 (now
> out) and qemu 1.3 (which will be released in December, or if you are
> comfortable building from qemu.git now), via the 'virsh blockcopy'
> command.
>
>
>