virt-v2v/0004-XXX-v2v-Remove-nbdcopy-request-size-4M-flag.patch
Richard W.M. Jones 8190ec8540 Include a few experimental non-upstream patches
These two patches fix potential issues.  Best to get them tested over
Christmas and New Year.

    v2v: Swap over the output and conversion stages

    In old virt-v2v, we did (approximately, since the steps were not as
    clear):

      Input -> Convert -> Output -> Copy -> Finalize

    After modularizing virt-v2v we changed this to:

      Input -> Output -> Convert -> Copy -> Finalize

    However this has a (sort of) problem.  For -o rhv-upload when we start
    the nbdkit rhv-upload-plugin machinery, it obtains a time-limited
    ticket from imageio.  This ticket could expire if the conversion step
    takes longer than a certain time (60 seconds by default, may be
    increased in a future version of oVirt).

    I believe this is really a problem in imageio or that the
    rhv-upload-plugin should really renew this ticket automatically, but
    it does not, instead failing.  (The ticket *is* renewed automatically
    whenever a request is sent to imageio, but in this case no requests
    are being sent).

    Anyway the easiest thing is to switch the ordering back to how it was
    in old virt-v2v (at top).  It doesn't make a difference for any other
    output modes.

    Reported-by: Nir Soffer

and:

    v2v: Remove nbdcopy --request-size=4M flag

    This was added when we were setting the cow-block-size to 1M.  However
    since commit 351d61f768 ("input: -it vddk: Reduce cow-block-size to 4K")
    we stopped doing that so this is no longer needed.

    Reverts: commit 08e764959ec9dadd71a95d22d3d88d647a18d165

Related: rhbz#2011713
2021-12-18 13:51:11 +00:00

62 lines
2.2 KiB
Diff

From b57ce6a2cd0dd4941b6d0bc88428487103688ec5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sat, 18 Dec 2021 13:40:08 +0000
Subject: [PATCH] XXX v2v: Remove nbdcopy --request-size=4M flag
XXX NEEDS BENCHMARKING XXX
This was added when we were setting the cow-block-size to 1M. However
since commit 351d61f768 ("input: -it vddk: Reduce cow-block-size to 4K")
we stopped doing that so this is no longer needed.
Reverts: commit 08e764959ec9dadd71a95d22d3d88d647a18d165
---
v2v/v2v.ml | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 1db0c233..47e6e937 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -587,17 +587,7 @@ read the man page virt-v2v(1).
nbdinfo ~content:false output_uri
);
- (* At the moment, unconditionally set nbdcopy --request-size
- * to 4M (up from the default of 256K). With nbdkit + vddk +
- * cow + cow-block-size=1M this is necessary because requests
- * must be larger than the cow filter block size to avoid
- * breaking up reads. It probably doesn't affect other
- * modes, but in future consider setting this only for
- * specific input modes that adjust cow-block-size.
- *)
- let request_size = Some (4*1024*1024) in
-
- nbdcopy ?request_size output_alloc input_uri output_uri
+ nbdcopy output_alloc input_uri output_uri
) disks;
(* End of copying phase. *)
@@ -616,17 +606,13 @@ read the man page virt-v2v(1).
*)
with_open_out (tmpdir // "done") (fun _ -> ())
-and nbdcopy ?request_size output_alloc input_uri output_uri =
+and nbdcopy output_alloc input_uri output_uri =
(* XXX It's possible that some output modes know whether
* --target-is-zero which would be a useful optimization.
*)
let cmd = ref [] in
List.push_back_list cmd [ "nbdcopy"; input_uri; output_uri ];
List.push_back cmd "--flush";
- (match request_size with
- | None -> ()
- | Some size -> List.push_back cmd (sprintf "--request-size=%d" size)
- );
(*List.push_back cmd "--verbose";*)
if not (quiet ()) then List.push_back cmd "--progress";
if output_alloc = Types.Preallocated then List.push_back cmd "--allocated";
--
2.31.1