[libvirt-users] Why cannot block copy local storage to network disk

wyang w90p710 at gmail.com
Wed Jul 26 04:06:23 UTC 2017



On 2017年07月25日 17:17, Peter Krempa wrote:
> On Tue, Jul 18, 2017 at 15:33:24 +0200, Martin Kletzander wrote:
>> On Tue, Jul 18, 2017 at 06:06:45PM +0800, wyang wrote:
>>> Hi, guys
>>>
>>> I was executing the following command to lively migrate local storage to
>>> network storage,
>>>
>>>     [root at 192-168-152-51 ~]# virsh blockcopy
>>>     a75056a4-44e0-4b97-bc77-78142ee17038 vda —xml rbd.xml —wait —verbose
>>>     —pivot
>>>     error: argument unsupported: non-file destination not supported yet
>>>
>>> but I get the following error:
>>>
>>>     error: argument unsupported: non-file destination not supported yet
>>>
>>> I check my libvirt source code, and find the following code sniff in
>>> /qemuDomainBlockCopyCommon/ function
>>>
>>> |if (!virStorageSourceIsLocalStorage(mirror)) {
>>> virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", _("non-file
>>> destination not supported yet")); } |
>>>
>>> it was introduced by Eric.
>>>
>>>     commit e53ee6c123321a1775ef3b36e15a5fa351d10fe4
>>>     Author: Eric Blake eblake at redhat.com <http://mailto:eblake@redhat.com>
>>>     Date: Fri Aug 29 16:30:46 2014 -0600
>>>
>>>     blockcopy: tweak how rebase calls into copy
>>>
>>> So my question is that why we cannot block copy to network storage?
>>>
>> The answer is in the commit message.  It was not supported even before
>> the commit, it's just that now it needs to be explicitly checked.  IIUC,
>> before that commit the stat() call would just fail. It's just that
>> nobody implemented it yet.  Having said that, I'm unaware of the actual
>> limitations that there are.
> I'm working on that currently. The code was never adapted to target
> network in this case. As it was never implemented yet, the new approach
> will use blockdev-add and blockdev-mirror, since we also need to support
> multi-host based protocols, which are impossible to use with
> drive-mirror command in qemu..
Look forward to your patch.  live migration  should also use 
blockdev-mirror.  I do not know whether somebody else is dong it.

Wei




More information about the libvirt-users mailing list