virt-p2v VM testing bitrot?
by Laszlo Ersek
I've started looking into RHBZ 1590721 for virt-p2v.
For p2v development, quick local testing is helpful. "make
run-virt-p2v-directly" seems to be working great; however, the VM-based
test methods seem to have developed problems, since I last looked.
Namely:
- "make run-virt-p2v-in-a-vm" boots quickly, but the GUI does not come up.
- "make run-virt-p2v-in-an-nvme-vm" boots *incredibly slowly*. I
checked, and the host CPU utilization during guest boot was around 20%
(and KVM was enabled). I don't understand how or why, but exposing the
"physical machine" disk over NVMe slows guest boot to a crawl -- it
looks strangely "IO-bound". I don't recall this from the time I added
this Makefile target!
Do these symptoms look familiar?
(For RHBZ 1590721, I think run-virt-p2v-directly will suffice; just
wanted to record the above somewhere.)
Thanks
Laszlo
2 years
[PATCH nbdkit 0/2] file: Add fd=<FILE_DESCRIPTOR>
by Richard W.M. Jones
Patch 1 looks better if you look at it with "git show -w".
This adds the ability to explicitly pass file descriptors to the file
plugin, matching a recent feature of qemu. Actually this was already
possible on some platforms using file=/dev/fd/<N> but it seems better
to support it on all platforms[1], and make the feature and usage
explicit.
Rich.
[1] All platforms that have inheritable, numeric file descriptors, so
not Windows.
2 years
[v2v PATCH] convert_linux: start the QEMU guest agent in a distro-specific way
by Laszlo Ersek
The current command "service <package-name> start" does not apply to
RHEL-6; the service name ("qemu-ga") differs from the package name
("qemu-guest-agent") there.
Overhaul the logic -- detach the command from the package name; cover the
RHEL, ALT, SUSE and Debian families separately. Remove the "chkconfig"
command, as in all tested / investigated cases, it is unnecessary.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2028764
Signed-off-by: Laszlo Ersek <lersek(a)redhat.com>
---
convert/convert_linux.ml | 56 ++++++++++++++++++++++++++++------------
1 file changed, 40 insertions(+), 16 deletions(-)
diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml
index 2aaa438e42ac..b8e9ad15e22d 100644
--- a/convert/convert_linux.ml
+++ b/convert/convert_linux.ml
@@ -66,6 +66,34 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
| _ -> None
in
+ let qga_svc_start_cmd family distro major =
+ match family, distro, major with
+ | `RHEL_family, ( "rhel" | "centos" | "scientificlinux" | "redhat-based" |
+ "oraclelinux" ), 6 ->
+ (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *)
+ Some "service qemu-ga start"
+
+ | `RHEL_family, _, _ ->
+ (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c52 *)
+ Some "systemctl start qemu-guest-agent"
+
+ | `ALT_family, _, _ ->
+ (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c45 *)
+ Some "systemctl start qemu-guest-agent"
+
+ | `SUSE_family, _, _ ->
+ (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c51 *)
+ None
+
+ | `Debian_family, _, _ ->
+ (* https://bugzilla.redhat.com/show_bug.cgi?id=2028764#c42 *)
+ Some "service qemu-guest-agent start"
+
+ | _ ->
+ (* should never be called when "qga_pkg_of_family" returns None *)
+ assert false
+ in
+
assert (inspect.i_package_format = "rpm" || inspect.i_package_format = "deb");
(* Fail early if i_apps is empty. Certain steps such as kernel
@@ -615,23 +643,19 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
\ \ rm -f %s\n\
fi\n" selinux_enforcing selinux_enforcing);
- (* Start the agent now and at subsequent boots. The following
- * commands should work on both sysvinit distros / distro versions
- * (regardless of "/etc/rc.d/" vs. "/etc/init.d/" being the scheme
- * in use) and systemd distros (via redirection to systemctl).
- *
- * On distros where the chkconfig command is redirected to
- * systemctl, the chkconfig command is likely superfluous. That's
- * because on systemd distros, the QGA package comes with such
- * runtime dependencies / triggers that the presence of the
- * virtio-serial port named "org.qemu.guest_agent.0" automatically
- * starts the agent during (second and later) boots. However, even
- * on such distros, the chkconfig command should do no harm.
+ (* On all the distro families covered by "qga_pkg_of_family" and
+ * "qga_svc_start_cmd", the QEMU guest agent service is always
+ * enabled by package installation for *subsequent* boots. Package
+ * installation may or may not enable the service for the current
+ * (i.e., first) boot, however, so try that here manually.
*)
- fbs "start qga"
- (sprintf "#!/bin/sh\n\
- service %s start\n\
- chkconfig %s on\n" qga_pkg qga_pkg)
+ match qga_svc_start_cmd family inspect.i_distro inspect.i_major_version
+ with
+ | None -> ()
+ | Some start_cmd ->
+ fbs "start qga"
+ (sprintf "#!/bin/sh\n\
+ %s\n" start_cmd)
with
| Guest_packages.Unknown_package_manager msg
| Guest_packages.Unimplemented_package_manager msg ->
2 years
[libnbd PATCH 0/3] Another round of server bug toleration patches
by Eric Blake
I found some more 1-line hacks to nbdkit that can produce a subtly
buggy server that is still easy enough to work around in libnbd.
Eric Blake (3):
states: Refactor where interrupted reply state is stored
states: Skip server replies to unknown command cookies
states: Tolerate simple reply to structured read request
lib/internal.h | 4 +--
generator/states-reply-simple.c | 46 +++++++++++++++++++++-------
generator/states-reply-structured.c | 24 ++++++++-------
generator/states-reply.c | 47 ++++++++++++++---------------
4 files changed, 73 insertions(+), 48 deletions(-)
--
2.37.1
2 years