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
62 lines
2.2 KiB
Diff
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
|
|
|