|
|
7ed5e3 |
From 4e0b3de57486613c8f28ef7726df728cccd7624b Mon Sep 17 00:00:00 2001
|
|
|
7ed5e3 |
From: "Richard W.M. Jones" <rjones@redhat.com>
|
|
|
7ed5e3 |
Date: Thu, 28 May 2020 10:59:57 +0100
|
|
|
7ed5e3 |
Subject: [PATCH] v2v: -it vddk: Don't use nbdkit readahead filter with VDDK
|
|
|
7ed5e3 |
(RHBZ#1832805).
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
This filter deliberately tries to coalesce reads into larger requests.
|
|
|
7ed5e3 |
Unfortunately VMware has low limits on the size of requests it can
|
|
|
7ed5e3 |
serve to a VDDK client and the larger requests would break with errors
|
|
|
7ed5e3 |
like this:
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
nbdkit: vddk[3]: error: [NFC ERROR] NfcFssrvrProcessErrorMsg: received NFC error 5 from server: Failed to allocate the requested 33554456 bytes
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
We already increase the maximum request size by changing the
|
|
|
7ed5e3 |
configuration on the VMware server, but it's not sufficient for VDDK
|
|
|
7ed5e3 |
with the readahead filter.
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
As readahead is only an optimization, the simplest solution is to
|
|
|
7ed5e3 |
disable this filter when we're using nbdkit-vddk-plugin.
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
Thanks: Ming Xie
|
|
|
7ed5e3 |
(cherry picked from commit 1438174488f111fa24420758ba3bf0218dc9ee2a)
|
|
|
7ed5e3 |
---
|
|
|
7ed5e3 |
v2v/nbdkit_sources.ml | 8 ++++++--
|
|
|
7ed5e3 |
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
diff --git a/v2v/nbdkit_sources.ml b/v2v/nbdkit_sources.ml
|
|
|
7ed5e3 |
index 402dfd0e..bfda91a7 100644
|
|
|
7ed5e3 |
--- a/v2v/nbdkit_sources.ml
|
|
|
7ed5e3 |
+++ b/v2v/nbdkit_sources.ml
|
|
|
7ed5e3 |
@@ -97,9 +97,13 @@ let common_create ?bandwidth ?extra_debug ?extra_env plugin_name plugin_args =
|
|
|
7ed5e3 |
let cmd = Nbdkit.add_filter_if_available cmd "retry" in
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
(* Adding the readahead filter is always a win for our access
|
|
|
7ed5e3 |
- * patterns. However if it doesn't exist don't worry.
|
|
|
7ed5e3 |
+ * patterns. If it doesn't exist don't worry. However it
|
|
|
7ed5e3 |
+ * breaks VMware servers (RHBZ#1832805).
|
|
|
7ed5e3 |
*)
|
|
|
7ed5e3 |
- let cmd = Nbdkit.add_filter_if_available cmd "readahead" in
|
|
|
7ed5e3 |
+ let cmd =
|
|
|
7ed5e3 |
+ if plugin_name <> "vddk" then
|
|
|
7ed5e3 |
+ Nbdkit.add_filter_if_available cmd "readahead"
|
|
|
7ed5e3 |
+ else cmd in
|
|
|
7ed5e3 |
|
|
|
7ed5e3 |
(* Caching extents speeds up qemu-img, especially its consecutive
|
|
|
7ed5e3 |
* block_status requests with req_one=1.
|
|
|
7ed5e3 |
--
|
|
|
e21fe6 |
2.31.1
|
|
|
7ed5e3 |
|