Jeroen Beerstra
2007-Jan-04 03:13 UTC
[Fedora-xen] problems with rhel4(clone) as DomainU on FC6 Xen host
hi there, I am currently playing around with the Xen support in FC6. Installation of Xen and FC6 Domain0, setting up a FC6 guest with virt-manager all went well, however I did not succeed in running a second RHEL4(clone) guest I prepped with Qemu. It took quite some time to figure things out, firstly the host is x86_64 and the guest is/was a 32 bit X/OS (Dutch RHEL clone) desktop , but if I understand things correctly there shouldn''t be any problems when running a 64 bit kernel with 32 bit userland. Then I had to learn that a initrd for domain0 is not the same as one for a domainU :) After that the guest booted with the FC6 Xen kernel when I disabled SELinux , however udev fails to start which makes the bootup stop on filesystem check time because I used the default LVM setup and the LVM devices are not created, so the rootfs cannot be found. The repair shell however showed the rootfs is mounted on /dev/mapper/VolGroup00-LogVol00 ro and a remount rw does work even though /dev/mapper/VolGroup00-LogVol00 does not seem to exist :? So I decided I needed a Xen enabled RHEL4 x86_64 kernel and got it from http://people.redhat.com/~jbaron/rhel4/RPMS.kernel/. I could also convert the image to a non LVM one (the Centos4.4 guest from jailtime.org does bootup properly even though it has the same udev problem, because of this), but I rather have a fully functional X/OS. Ofcourse there were problems. I could not install the x86_64 kernel inside the X/OS guest booted with Qemu so I tried manually putting things in place. Running ''/sbin/new-kernel-pkg --package kernel-xenU --mkinitrd --depmod --install 2.6.9-42.36.ELxenU'' produced some errors related to strip and 64bit kernel modules, but the initrd got created. I''m sure I can work around this if needed, however Xen crashes on the RHEL4 Xen kernel right away: # xm create -c VirtualXOS4_test Using config file "VirtualXOS4_test". Started domain VirtualXOS4 xen_start_info @ffffffff8068a000 shared @m0000fc7000 @ffffffff80107000=@ffffffffff5fd000 [0x802] xen_start_info: @ffffffff8068a000 cr3 0000000000101000 pml4p ffffffff80101ff8 pml4e 0000000000103067 (real 0000000028292067) pgdp ffffff8000103ff0 pgde 0000000000105067 (real 00000000064cc067) pmdp ffffff8000105018 pmde 0000000000693067 (real 0000000066165067) ptep ffffff8000693450 pte 001000000068a027 (real 0010000006c13027) xen_shared_info: @ffffffffff5fd000 cr3 0000000000101000 pml4p ffffffff80101ff8 pml4e 0000000000103067 (real 0000000028292067) pgdp ffffff8000103ff8 pgde 0000000000000000 is none PAGE_OFFSET+1.2: @ffffff8000001000 cr3 0000000000101000 pml4p ffffffff80101ff8 pml4e 0000000000103067 (real 0000000028292067) pgdp ffffff8000103000 pgde 0000000000694067 (real 00000000567a2067) pmdp ffffff8000694000 pmde 0000000000695067 (real 0000000067e6c067) ptep ffffff8000695008 pte 0000000000001167 (real 0000000008709167) Is the RHEL4 Xen kernel incompatible with FC6 Xen? If so does anybody know if an updated version exists and were to get it? And then there is pygrub, with the FC6 guest created by virt-manager this works like a charm, however with the X/OS guest it just won''t work: # xm create -c VirtualXOS4 Using config file "VirtualXOS4". Going to boot X/OS Linux (2.6.9-42.36.ELxenU) kernel: /vmlinuz-2.6.9-42.36.ELxenU initrd: /initrd-2.6.9-42.36.ELxenU.img Error: invalid literal for int(): gh I even tried copying over the grub installation from the FC6 x86_64 guest, but the problem remains. Anybody has any idea why pygrub is failing: Traceback (most recent call last): File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 194, in create vm.construct() File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1257, in construct handle = uuid.fromString(self.info[''uuid''])) File "/usr/lib64/python2.4/site-packages/xen/xend/uuid.py", line 67, in fromString return [ int(s[i : i + 2], 16) for i in range(0, 32, 2) ] ValueError: invalid literal for int(): gh [2007-01-04 03:47:06 xend.XendDomainInfo 3323] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=None [2007-01-04 03:47:06 xend 3323] ERROR (xmlrpclib2:184) invalid literal for int(): gh Traceback (most recent call last): File "/usr/lib64/python2.4/site-packages/xen/util/xmlrpclib2.py", line 162, in _marshaled_dispatch response = self._dispatch(method, params) File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch return func(*params) File "/usr/lib64/python2.4/site-packages/xen/xend/server/XMLRPCServer.py", line 64, in domain_create info = XendDomain.instance().domain_create(config) File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomain.py", line 228, in domain_create dominfo = XendDomainInfo.create(config) File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 194, in create vm.construct() File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1257, in construct handle = uuid.fromString(self.info[''uuid''])) File "/usr/lib64/python2.4/site-packages/xen/xend/uuid.py", line 67, in fromString return [ int(s[i : i + 2], 16) for i in range(0, 32, 2) ] ValueError: invalid literal for int(): gh -- regards, Jeroen Beerstra
Jeroen Beerstra
2007-Jan-07 00:57 UTC
Re: [Fedora-xen] problems with rhel4(clone) as DomainU on FC6 Xen host
hi again, Op donderdag 4 januari 2007 04:13, schreef Jeroen Beerstra:> hi there, ><big cut!> Just to make sure nobody is wasting time on this ... so far you haven''t but one never knows ;) or just to help out somebody with similar problems. I have given up and grabbed myself an X/OS 4 x86_64 iso and guess what it just worked (tm)! Actually that is a bit oversimplified, since RHEL4 (and clones) is not XEN enabled by default so it did required some manual labour, but basicly this time following the guidelines from http://people.redhat.com/riel/RHEL4-Xen-HOWTO produced a working xen guest. The problem was with the initrd: - an initrd created on i386 RHEL4 for the x86_64 RHEL4 kernel doesn''t has any modules in it, hence (?) it doesn''t boot at all. - an initrd created on a FC6 guest is incompatible with RHEL4 (nash consumes 100% CPU and the correct devices for lvm are not created so the system doesn''t boot) - finally an initrd created on the RHEL4 x86_64 guest (booted with qemu) for the x86_64 RHEL4 kernel did work. So you need a working x86_64 RHEL4 (clone) setup to be able to build a working initrd for the RHEL4 x86_64 xen kernels. This then does boot i386 RHEL4, but why bother :D However pygrub still doesn''t work, same problem as before :( I was kindoff hoping there was some problem with x86_64 versus i386, but apparently that isn''t it either ... anybody any ideas why pygrub is baling out with ''Error: invalid literal for int(): gh''?? http://people.redhat.com/riel/RHEL4-Xen-HOWTO suggests pygrub should work with RHEL4 guests.> > And then there is pygrub, with the FC6 guest created by virt-manager this > works like a charm, however with the X/OS guest it just won''t work: > > # xm create -c VirtualXOS4 > Using config file "VirtualXOS4". > Going to boot X/OS Linux (2.6.9-42.36.ELxenU) > kernel: /vmlinuz-2.6.9-42.36.ELxenU > initrd: /initrd-2.6.9-42.36.ELxenU.img > Error: invalid literal for int(): gh > > I even tried copying over the grub installation from the FC6 x86_64 guest, > but the problem remains. Anybody has any idea why pygrub is failing: > > Traceback (most recent call last): > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 194, in create > vm.construct() > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 1257, in construct > handle = uuid.fromString(self.info[''uuid''])) > File "/usr/lib64/python2.4/site-packages/xen/xend/uuid.py", line 67, in > fromString > return [ int(s[i : i + 2], 16) for i in range(0, 32, 2) ] > ValueError: invalid literal for int(): gh > [2007-01-04 03:47:06 xend.XendDomainInfo 3323] DEBUG (XendDomainInfo:1449) > XendDomainInfo.destroy: domid=None > [2007-01-04 03:47:06 xend 3323] ERROR (xmlrpclib2:184) invalid literal for > int(): gh > Traceback (most recent call last): > File "/usr/lib64/python2.4/site-packages/xen/util/xmlrpclib2.py", line > 162, in _marshaled_dispatch > response = self._dispatch(method, params) > File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch > return func(*params) > File > "/usr/lib64/python2.4/site-packages/xen/xend/server/XMLRPCServer.py", line > 64, in domain_create > info = XendDomain.instance().domain_create(config) > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomain.py", line > 228, in domain_create > dominfo = XendDomainInfo.create(config) > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 194, in create > vm.construct() > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 1257, in construct > handle = uuid.fromString(self.info[''uuid''])) > File "/usr/lib64/python2.4/site-packages/xen/xend/uuid.py", line 67, in > fromString > return [ int(s[i : i + 2], 16) for i in range(0, 32, 2) ] > ValueError: invalid literal for int(): gh-- Jeroen Beerstra