Hi Rich,
On Wed, November 16, 2016 1:34 pm, Richard W.M. Jones wrote:
On Wed, Nov 16, 2016 at 11:31:40AM -0500, Derek Atkins wrote:
> > Running `virt-v2v -v -x ...' and observing the output will give you a
> > good idea of what precisely it was doing for those hours.
>
> Well, as I said in my original email, it was hanging at running
> setfiles:
>
> commandrvf: stdout=n stderr=y flags=0x0
> commandrvf: setfiles -F -e /sysroot/dev -e /sysroot/proc -e
> /sysroot/selinux -e /sysroot/sys -r /sysroot -q
> /sysroot/etc/selinux/targeted/contexts/files/file_contexts /sysroot/
> Can't stat exclude path "/sysroot/selinux", No such file or directory
> - ignoring.
OK that's interesting. setfiles is doing SELinux labelling of the
filesystem. The time taken should be approximately proportional to
the number of files in the filesystem.
What it precisely does is to run the host's /usr/sbin/setfiles command
over the whole guest filesystem, using the guest's
/etc/selinux/targeted/contexts/files/file_contexts to control the
labelling. So if either of the guest filesystem or the guest's
file_contexts is particularly large, or setfiles has a bug, then it
might take a long time.
I suppose there could be a bug. I just verified that it's absolutely
setfiles:
14:06:20 I: Started virt-v2v -v -x -i ova /ovirt/import/fc21-64.ova -of
raw -o null
14:06:20 O: [ 0.0] Opening the source -i ova /ovirt/import/fc21-64.ova
[snip]
14:07:25 E: libguestfs: trace: v2v: aug_get = "targeted"
14:07:25 E: libguestfs: trace: v2v: aug_close
14:07:25 E: guestfsd: main_loop: new request, len 0x28
14:07:25 E: guestfsd: main_loop: proc 26 (aug_close) took 0.03 seconds
14:07:25 E: libguestfs: trace: v2v: aug_close = 0
14:07:25 E: libguestfs: trace: v2v: selinux_relabel
"/etc/selinux/targeted/contexts/files/file_contexts" "/"
"force:true"
14:07:25 E: guestfsd: main_loop: new request, len 0x6c
14:07:25 E: commandrvf: stdout=n stderr=y flags=0x0
14:07:25 E: commandrvf: setfiles -F -e /sysroot/dev -e /sysroot/proc -e
/sysroot/selinux -e /sysroot/sys -r /sysroot -q
/sysroot/etc/selinux/targeted/contexts/files/file_contexts /sysroot/
14:07:25 E: Can't stat exclude path "/sysroot/selinux", No such file or
directory - ignoring.
[ Spacing Emphasis Mine -- there is no break (except time) here ]
16:00:42 E: libguestfs: trace: v2v: selinux_relabel = 0
16:00:42 O: virt-v2v: This guest has virtio drivers installed.
16:00:42 E: libguestfs: trace: v2v: rm_f "/.autorelabel"
16:00:42 E: guestfsd: main_loop: proc 467 (selinux_relabel) took 6797.01
seconds
16:00:42 E: guestfsd: main_loop: new request, len 0x3c
[SNIP]
16:01:13 I: Finished with exitcode 0
So it looks like it took almost two hours to run the setfiles on a 4GB
filesystem. The rest of the import was only a minute or three.
I'm happy to help debug this however I can in order to fix any potential
bugs. However I admit it probably wont affect me any more -- I don't
expect to migrate many more VMs. Still, I'm happy to work towards the
common good. :)
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
-derek
--
Derek Atkins 617-623-3745
derek(a)ihtfp.com
www.ihtfp.com
Computer and Internet Security Consultant