Hi! The team has had a busy week -- sorry for the delay :) cc'ing Nir.

Work is almost always done in 4.3 (master) first, and then backported to
4.2.z. 4.2.5 is indeed just a couple weeks away.

Greg

On Thu, Jul 12, 2018 at 10:59 AM Ranjit DSouza <ranjit.dso...@veritas.com>
wrote:

> Hello oVirt Development team
>
>
>
> Not sure you got a chance to see this email, resending it.
>
> Thanks
>
> Ranjit
>
> *From:* Ranjit DSouza
> *Sent:* Monday, July 9, 2018 1:16 PM
> *To:* 'Nir Soffer' <nsof...@redhat.com>
> *Cc:* devel <devel@ovirt.org>; DL-VTAS-ENG-NBU-EverestFalcons <
> dl-vtas-eng-nbu-everestfalc...@veritas.com>; Navin Tah <
> navin....@veritas.com>; Sudhakar Paulzagade <
> sudhakar.paulzag...@veritas.com>; Pavan Chavva; Yaniv Lavi (Dary) <
> yl...@redhat.com>; Nisan, Tal <tni...@redhat.com>; Daniel Erez <
> de...@redhat.com>
> *Subject:* RE: [EXTERNAL] Re: [ovirt-devel] Image Transfer mechanism
> queries/API support
>
>
>
> Hi Nir
>
>
>
> Thanks for getting back!
>
> We have few follow up questions:
>
>
>
> 1.       On the new ‘Allocated extents API’:
>
> Can you share the release timeline for 4.2.z?  From the link below it
> seems like it will be available on 7/30/2018.
>
>
> https://www.ovirt.org/develop/release-management/releases/4.2.z/release-management/
>
> However, we thought we would double check on this.
>
> 2.       If this will be available in 4.2.z, does It mean, we can assume
> it will be backported to 4.3 also?
>
> 3.       When we downloaded the snapshot disk using Image Transfer API,
> the resulting format of the disk is “raw”.  However, for upload, we must
> upload a qcow2 disk (to enable further snapshots).
>
> It means, we need to convert it first using *qemu-img convert*. Or is
> there a way we directly ask via API for a qcow2 instead?
>
>
>
> Portion of the response of “GET
> /storagedomains/{storagedomain:id}/disksnapshots”
>
>     "format" : "*raw*",
>
>     "shareable" : "false",
>
>     "sparse" : "true",
>
>     "status" : "ok",
>
>     "snapshot" : {
>
>       "id" : "4756036e-92aa-4ebb-ae4b-052a30cd5109"
>
>     },
>
>     "actual_size" : "1345228800",
>
>     "content_type" : "data",
>
>     "propagate_errors" : "false",
>
>     "provisioned_size" : "21474836480",
>
>     "storage_type" : "image",
>
>     "total_size" : "0",
>
>     "wipe_after_delete" : "false",
>
>
>
> 4.       When downloading a snapshot in chunks, Is there any recommended
> chunk size? For our study we used 512 KB. Checked the documentation too.
>
> 5.       Regarding your ask on ‘Can you file RFE for this, explaining the
> use case and the current performance’.
>
> Since you do not recommend direct access to NFS storage, we will consider
> it only if we see significant performance degradation using http download.
>
> Also, if time permits, we may check if there is a significant performance
> benefit using Unix socket, over http download (via Rest API).
>
> But as it stands now, getting the allocated extents support (soon), will
> alleviate most of our performance concerns.
>
>
>
> Thanks
>
> Ranjit
>
>
>
> *From:* Nir Soffer [mailto:nsof...@redhat.com <nsof...@redhat.com>]
> *Sent:* Tuesday, July 3, 2018 4:29 PM
> *To:* Ranjit DSouza <ranjit.dso...@veritas.com>
> *Cc:* devel <devel@ovirt.org>; DL-VTAS-ENG-NBU-EverestFalcons <
> dl-vtas-eng-nbu-everestfalc...@veritas.com>; Navin Tah <
> navin....@veritas.com>; Sudhakar Paulzagade <
> sudhakar.paulzag...@veritas.com>; Pavan Chavva; Yaniv Lavi (Dary) <
> yl...@redhat.com>; Nisan, Tal <tni...@redhat.com>; Daniel Erez <
> de...@redhat.com>
> *Subject:* [EXTERNAL] Re: [ovirt-devel] Image Transfer mechanism
> queries/API support
>
>
>
> On Tue, Jul 3, 2018 at 11:32 AM Ranjit DSouza <ranjit.dso...@veritas.com>
> wrote:
>
> ...
>
> We had a conversation with Pavan Chavva for supporting RHV. He had
> suggested to contact you with queries related to oVirt APIs we plan to use.
>
> We have following queries:
>
>
>
> 1.       While downloading a snapshot disk, can we identify allocated
> extents and download only those using oVirt API? We are able to download
> the disk using the Image Transfer API mechanism.
>
> However, this method downloads the entire disk including the non-allocated
> extents, which is a performance overhead. If this functionality does not
> exist at this point will it be available in near future?
>
>
>
> Hi Ranjit,
>
>
>
> There is no way to do this in current 4.2, but we plan to introduce in in
> 4.2.z.
>
>
>
> The API will be something like:
>
>
>
> GET /images/xxx-yyy/map
>
> ...
>
> [{ "start": 0, "length": 65536, "depth": 0, "zero": false, "data": true,
> "offset": 0},
>
> { "start": 65536, "length": 983040, "depth": 0, "zero": true, "data":
> false, "offset": 65536},
>
> { "start": 1048576, "length": 65536, "depth": 0, "zero": false, "data":
> true, "offset": 1048576},
>
> { "start": 1114112, "length": 983040, "depth": 0, "zero": true, "data":
> false, "offset": 1114112},
>
> ...
>
> { "start": 5465571328, "length": 22675456, "depth": 0, "zero": false,
> "data": true, "offset": 5465571328},
>
> { "start": 5488246784, "length": 954138624, "depth": 0, "zero": true,
> "data": false, "offset": 5488246784},
>
> { "start": 6442385408, "length": 65536, "depth": 0, "zero": false, "data":
> true, "offset": 6442385408}]
>
>
>
> This is basically what you get using qemu-img map.
>
>
>
> You can test play this with this using:
>
>
>
>     virt-builder Fedora-27 -o /var/tmp/fedora-27.img
>
>     qemu-img map -f raw --output json /var/tmp/fedora-27.img
>
>
>
> This is the first data segment:
>
> { "start": 0, "length": 65536, "depth": 0, "zero": false, "data": true,
> "offset": 0}
>
>
>
> This is a hole between the first data segment and the second:
>
> { "start": 65536, "length": 983040, "depth": 0, "zero": true, "data":
> false, "offset": 65536}
>
>
>
> This is the second data segment:
>
> { "start": 1048576, "length": 65536, "depth": 0, "zero": false, "data":
> true, "offset": 1048576}
>
>
>
> Based on this output, you will be able to get the allocated parts of the
> image using:
>
>
>
> Request:
>
>
>
>     GET /image/xxx-yyy HTTP/1.1
>
>     Range: bytes=0-65535
>
>
>
> Response:
>
>
>
>     HTTP/1.1 206 Partial Content
>
>     Content-Range: bytes 0-65535/6442450944
>
>
>
>     <data of first segment>
>
>
>
> Request:
>
>
>
>     GET /image/xxx-yyy HTTP/1.1
>
>     Range: bytes=1048576-1114111
>
>
>
> Response:
>
>
>
>     HTTP/1.1 206 Partial Content
>
>     Content-Range: bytes 1048576-1114111/6442450944
>
>
>
>     <data of second segment>
>
>
>
> And so on.
>
>
>
> If you create a sparse file on your backup media, and download and write
>
> the data segments at the correct offset, you will get the a sparse version
> of
>
> the image as on the server side.
>
>
>
> This will work for raw or qcow2 images on NFS >= 4.2, or for qcow2 images
> on block
>
> storage.
>
>
>
> For older NFS versions, or raw images on block storage, we can solve the
> issue by
>
> reading the entire image and detecting zeroes - which is quite expensive,
> so I'm not
>
> sure we will implement this, maybe it will be done later.
>
>
>
> We have experimental patch using special sparse format, that can support
> this use
>
> case, downloading entire image in one pass. This commit message explain
> the
>
> format:
>
> https://gerrit.ovirt.org/#/c/85413/12//COMMIT_MSG
>
>
>
> For more info on using random I/O APIs, see:
>
> http://ovirt.github.io/ovirt-imageio/random-io
>
> (available since 4.2.3)
>
>
>
> For example code uploading sparse images see:
>
> https://github.com/oVirt/ovirt-imageio/blob/master/examples/upload
>
>
>
> For best performance, you should run your application on a oVirt host,
> using unix
>
> socket to communicate with imageio. See:
>
> http://ovirt.github.io/ovirt-imageio/unix-socket
>
> (will be available in 4.2.5)
>
>
>
> All this will work only for the non-active layer in a qcow2 chain. We are
> working now
>
> on incremental backup which will allow the same for the active layer with
> a running
>
> vm. This is expected in 4.3, and we may have a tech preview at some point
> in 4.2.z.
>
> Incremantal backup will use the similar API, allowing detection of dirty
> parts of an image,
>
> so you can download only the data that was changed since the last backup.
>
> Please watch and comment on the feature page:
>
>
> https://ovirt.org/develop/release-management/features/storage/incremental-backup/
>
>
>
> We are also considering exposing images using NBD. This will allow
> downloading
>
> and uploading images using qemu-img from any host. This work depends on
> TLS-PSK
>
> support in qemu-img and qemu-nbd. You can follow this work here:
>
> https://lists.nongnu.org/archive/html/qemu-devel/2018-06/threads.html#08491
>
>
>
> 2.       Is there an alternate method to transfer a snapshot to and from
> RHV storage? Are there other methods such as NFS share where we can
> download snapshot image to and from RHV storage?
>
> We don't support direct access to storage by 3rd party. You should use
> imageio API.
>
>
>
> Can you file RFE for this, explaning the use case and the current
> performance
>
> issues you experience?
>
>
>
> Nir
> _______________________________________________
> Devel mailing list -- devel@ovirt.org
> To unsubscribe send an email to devel-le...@ovirt.org
> Privacy Statement: https://www.ovirt.org/site/privacy-policy/
> oVirt Code of Conduct:
> https://www.ovirt.org/community/about/community-guidelines/
> List Archives:
> https://lists.ovirt.org/archives/list/devel@ovirt.org/message/KOO33S2OKE67NCIFQ5WJRHBX7NQK5WAG/
>


-- 

GREG SHEREMETA

SENIOR SOFTWARE ENGINEER - TEAM LEAD - RHV UX

Red Hat NA

<https://www.redhat.com/>

gsher...@redhat.com    IRC: gshereme
<https://red.ht/sig>
_______________________________________________
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/devel@ovirt.org/message/32FZTD4P2HAO4LJXNO3NBNHXXF7FLHIG/

Reply via email to