Hi, I''m having a very difficult time getting paravirtualized Xen running on Centos 5 64bit and I''m hoping someone can spot what I''m doing wrong. I''ve been attemping to do this for a few days now and I''m really not seeing what I''m doing wrong. Here''s what I''ve done: 1. Installed Centos 5 64-bit on the Dom0 2. Installed a fully virtualized DomU running Centos 5 64-bit. 3. Created a new configuration file that will create a paravirtualized DomU. The DomU boots and runs in fully virtualized mode. However, the paravirutalized DomU refuses to boot. Here are the relevant configurations: 1. The fully virtualized config # Automatically generated xen config file name = "vm_oracle" builder = "hvm" memory = "2000" disk = [ ''phy:/dev/BigMamaVolGroup/VMOracleSysDisk,hda,w'', ] vif = [ ''type=ioemu, mac=00:16:3e:67:38:e4, bridge=xenbr0'', ] uuid = "d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a" device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader" vnc=1 vncunused=1 apic=1 acpi=1 pae=1 vcpus=2 serial = "pty" # enable serial console on_reboot = ''restart'' on_crash = ''restart'' 2. The paravirtualized config # Automatically generated xen config file name = "vm_oracle_para" builder = "linux" memory = "2000" disk = [ ''phy:/dev/BigMamaVolGroup/VMOracleSysDisk,hda,w'', ] vif = [ ''type=ioemu, mac=00:16:3e:67:38:e4, bridge=xenbr0'', ] uuid = "d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a" #pae=1 kernel="/boot/vmlinuz-2.6.18-8.1.15.el5.centos.plusxen" bootloader="/usr/bin/pygrub" vcpus=2 serial = "pty" # enable serial console on_reboot = ''restart'' on_crash = ''preserve'' Also on Dom0: [root@bigmama xen]# uname -a Linux bigmama.secana.local 2.6.18-8.1.15.el5.centos.plusxen #1 SMP Thu Oct 25 07:21:34 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux [root@bigmama xen]# arch x86_64 Then, I try to create the vm_oracle_para DomU, choosing the same kernel as the Dom0. (The vm_oracle is of course not running) [root@bigmama xen]# xm create -c vm_oracle_para Using config file "./vm_oracle_para". Going to boot CentOS (2.6.18-8.1.15.el5.centos.plusxen) kernel: /xen.gz-2.6.18-8.1.15.el5.centos.plus Error: (22, ''Invalid argument'') Hmm! Let''s look at the logs: [root@bigmama xen]# xm log | tail -100 .... [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:190) XendDomainInfo.create([\047vm\047, [\047name\047, \047vm_oracle_para\047], [\047memory\047, \0472000\047], [\047on_reboot\047, \047restart\047], [\047on_crash\047, \047preserve\047], [\047vcpus\047, 2], [\047uuid\047, \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047], [\047bootloader\047, \047/usr/bin/pygrub\047], [\047image\047, [\047linux\047, [\047kernel\047, \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, \047None\047]]], [\047device\047, [\047vbd\047, [\047uname\047, \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, \047hda\047], [\047mode\047, \047w\047]]], [\047device\047, [\047vif\047, [\047bridge\047, \047xenbr0\047], [\047mac\047, \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]]]]) [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:296) parseConfig: config is [\047vm\047, [\047name\047, \047vm_oracle_para\047], [\047memory\047, \0472000\047], [\047on_reboot\047, \047restart\047], [\047on_crash\047, \047preserve\047], [\047vcpus\047, 2], [\047uuid\047, \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047], [\047bootloader\047, \047/usr/bin/pygrub\047], [\047image\047, [\047linux\047, [\047kernel\047, \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, \047None\047]]], [\047device\047, [\047vbd\047, [\047uname\047, \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, \047hda\047], [\047mode\047, \047w\047]]], [\047device\047, [\047vif\047, [\047bridge\047, \047xenbr0\047], [\047mac\047, \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]]]] [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:397) parseConfig: result is {\047shadow_memory\047: None, \047start_time\047: None, \047uuid\047: \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047, \047on_crash\047: \047preserve\047, \047on_reboot\047: \047restart\047, \047localtime\047: None, \047image\047: [\047linux\047, [\047kernel\047, \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, \047None\047]], \047on_poweroff\047: None, \047bootloader_args\047: None, \047cpus\047: None, \047name\047: \047vm_oracle_para\047, \047backend\047: [], \047vcpus\047: 2, \047cpu_weight\047: None, \047features\047: None, \047vcpu_avail\047: None, \047memory\047: 2000, \047device\047: [(\047vbd\047, [\047vbd\047, [\047uname\047, \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, \047hda\047], [\047mode\047, \047w\047]]), (\047vif\047, [\047vif\047, [\047bridge\047, \047xenbr0\047], [\047mac\047, \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]])], \047bootloader\047: \047/usr/bin/pygrub\047, \047cpu\047: None, \047maxmem\047: None} [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:1264) XendDomainInfo.construct: None [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:1296) XendDomainInfo.initDomain: 70 1.0 [2007-11-14 10:44:53 xend 8352] DEBUG (balloon:127) Balloon: 4125180 KiB free; need 2048000; done. [2007-11-14 10:44:53 xend 8352] INFO (image:136) buildDomain os=linux dom=70 vcpus=2 [2007-11-14 10:44:53 xend 8352] DEBUG (image:199) dom = 70 [2007-11-14 10:44:53 xend 8352] DEBUG (image:200) image /var/lib/xen/vmlinuz.wLlJ26 [2007-11-14 10:44:53 xend 8352] DEBUG (image:201) store_evtchn = 1 [2007-11-14 10:44:53 xend 8352] DEBUG (image:202) console_evtchn = 2 [2007-11-14 10:44:53 xend 8352] DEBUG (image:203) cmdline = None [2007-11-14 10:44:53 xend 8352] DEBUG (image:204) ramdisk [2007-11-14 10:44:53 xend 8352] DEBUG (image:205) vcpus = 2 [2007-11-14 10:44:53 xend 8352] DEBUG (image:206) features [2007-11-14 10:44:53 xend.XendDomainInfo 8352] ERROR (XendDomainInfo:202) Domain construction failed Traceback (most recent call last): File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195, in create vm.initDomain() File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1377, in initDomain raise VmError(str(exn)) VmError: (22, \047Invalid argument\047) [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:1463) XendDomainInfo.destroy: domid=70 [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG (XendDomainInfo:1471) XendDomainInfo.destroyDomain(70) .. and.. [root@bigmama xen]# tail -2 /var/log/xen/xend-debug.log ERROR: Kernel not a Xen-compatible Elf image. ERROR: Error constructing guest OS If I start vm_oracle (not vm_oracle_para), I''ll get this: [root@vm-oracle ~]# uname -a Linux vm-oracle.secana.local 2.6.18-8.1.15.el5.centos.plus #1 SMP Thu Oct 25 06:48:46 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux [root@vm-oracle ~]# arch x86_64 I''ve set up grub to boot by defailt non-xen kernel in order to accomodate booting both in fully virtualized and paravirtualized mode. I use pygrub to boot the xen-kernel when trying to boot in paravirtualized mode. As you probably spotted, I''m using LVM on the Dom0 to provide physical storage for my virtual block devices. Can anyone provide a link til a guide, or can anyone tell me what I''m doing wrong, please? Best regards, Jens-Petter Salvesen _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Jens-Petter Salvesen wrote:> Hi, > > I''m having a very difficult time getting paravirtualized Xen running on > Centos 5 64bit and I''m hoping someone can spot what I''m doing wrong. > I''ve been attemping to do this for a few days now and I''m really not > seeing what I''m doing wrong. > > Here''s what I''ve done: > > 1. Installed Centos 5 64-bit on the Dom0 > 2. Installed a fully virtualized DomU running Centos 5 64-bit. > 3. Created a new configuration file that will create a paravirtualized > DomU.Why aren''t you using virt-install? Did you want to duplicate the virtual system entirely? Also, if you''re using pygrub, you don''t have to state a kernel. I don''t know if it breaks things, but it''s confusing at best.> The DomU boots and runs in fully virtualized mode. However, the > paravirutalized DomU refuses to boot. > > Here are the relevant configurations: > > 1. The fully virtualized config > > # Automatically generated xen config file > name = "vm_oracle" > builder = "hvm" > memory = "2000" > disk = [ ''phy:/dev/BigMamaVolGroup/VMOracleSysDisk,hda,w'', ] > vif = [ ''type=ioemu, mac=00:16:3e:67:38:e4, bridge=xenbr0'', ] > uuid = "d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a" > device_model = "/usr/lib64/xen/bin/qemu-dm" > kernel = "/usr/lib/xen/boot/hvmloader" > vnc=1 > vncunused=1 > apic=1 > acpi=1 > pae=1 > > vcpus=2 > serial = "pty" # enable serial console > on_reboot = ''restart'' > on_crash = ''restart'' > > 2. The paravirtualized config > > # Automatically generated xen config file > name = "vm_oracle_para" > builder = "linux" > memory = "2000" > disk = [ ''phy:/dev/BigMamaVolGroup/VMOracleSysDisk,hda,w'', ] > vif = [ ''type=ioemu, mac=00:16:3e:67:38:e4, bridge=xenbr0'', ] > uuid = "d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a" > #pae=1 > kernel="/boot/vmlinuz-2.6.18-8.1.15.el5.centos.plusxen" > bootloader="/usr/bin/pygrub" > > vcpus=2 > serial = "pty" # enable serial console > on_reboot = ''restart'' > on_crash = ''preserve'' > > > Also on Dom0: > [root@bigmama xen]# uname -a > Linux bigmama.secana.local 2.6.18-8.1.15.el5.centos.plusxen #1 SMP Thu > Oct 25 07:21:34 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux > [root@bigmama xen]# arch > x86_64 > > > > > Then, I try to create the vm_oracle_para DomU, choosing the same kernel > as the Dom0. (The vm_oracle is of course not running) > > [root@bigmama xen]# xm create -c vm_oracle_para > Using config file "./vm_oracle_para". > Going to boot CentOS (2.6.18-8.1.15.el5.centos.plusxen) > kernel: /xen.gz-2.6.18-8.1.15.el5.centos.plus > Error: (22, ''Invalid argument'') > > Hmm! Let''s look at the logs: > > [root@bigmama xen]# xm log | tail -100 > .... > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:190) XendDomainInfo.create([\047vm\047, [\047name\047, > \047vm_oracle_para\047], [\047memory\047, \0472000\047], > [\047on_reboot\047, \047restart\047], [\047on_crash\047, > \047preserve\047], [\047vcpus\047, 2], [\047uuid\047, > \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047], [\047bootloader\047, > \047/usr/bin/pygrub\047], [\047image\047, [\047linux\047, > [\047kernel\047, \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, > \047None\047]]], [\047device\047, [\047vbd\047, [\047uname\047, > \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, > \047hda\047], [\047mode\047, \047w\047]]], [\047device\047, > [\047vif\047, [\047bridge\047, \047xenbr0\047], [\047mac\047, > \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]]]]) > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:296) parseConfig: config is [\047vm\047, [\047name\047, > \047vm_oracle_para\047], [\047memory\047, \0472000\047], > [\047on_reboot\047, \047restart\047], [\047on_crash\047, > \047preserve\047], [\047vcpus\047, 2], [\047uuid\047, > \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047], [\047bootloader\047, > \047/usr/bin/pygrub\047], [\047image\047, [\047linux\047, > [\047kernel\047, \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, > \047None\047]]], [\047device\047, [\047vbd\047, [\047uname\047, > \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, > \047hda\047], [\047mode\047, \047w\047]]], [\047device\047, > [\047vif\047, [\047bridge\047, \047xenbr0\047], [\047mac\047, > \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]]]] > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:397) parseConfig: result is {\047shadow_memory\047: > None, \047start_time\047: None, \047uuid\047: > \047d0e7d705-aa8c-c2c0-8926-bc03d3f9d56a\047, \047on_crash\047: > \047preserve\047, \047on_reboot\047: \047restart\047, \047localtime\047: > None, \047image\047: [\047linux\047, [\047kernel\047, > \047/var/lib/xen/vmlinuz.wLlJ26\047], [\047args\047, \047None\047]], > \047on_poweroff\047: None, \047bootloader_args\047: None, \047cpus\047: > None, \047name\047: \047vm_oracle_para\047, \047backend\047: [], > \047vcpus\047: 2, \047cpu_weight\047: None, \047features\047: None, > \047vcpu_avail\047: None, \047memory\047: 2000, \047device\047: > [(\047vbd\047, [\047vbd\047, [\047uname\047, > \047phy:/dev/BigMamaVolGroup/VMOracleSysDisk\047], [\047dev\047, > \047hda\047], [\047mode\047, \047w\047]]), (\047vif\047, [\047vif\047, > [\047bridge\047, \047xenbr0\047], [\047mac\047, > \04700:16:3e:67:38:e4\047], [\047type\047, \047ioemu\047]])], > \047bootloader\047: \047/usr/bin/pygrub\047, \047cpu\047: None, > \047maxmem\047: None} > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:1264) XendDomainInfo.construct: None > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:1296) XendDomainInfo.initDomain: 70 1.0 > [2007-11-14 10:44:53 xend 8352] DEBUG (balloon:127) Balloon: 4125180 KiB > free; need 2048000; done. > [2007-11-14 10:44:53 xend 8352] INFO (image:136) buildDomain os=linux > dom=70 vcpus=2 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:199) dom = 70 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:200) image > /var/lib/xen/vmlinuz.wLlJ26 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:201) store_evtchn = 1 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:202) console_evtchn = 2 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:203) cmdline = None > [2007-11-14 10:44:53 xend 8352] DEBUG (image:204) ramdisk > [2007-11-14 10:44:53 xend 8352] DEBUG (image:205) vcpus = 2 > [2007-11-14 10:44:53 xend 8352] DEBUG (image:206) features > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] ERROR > (XendDomainInfo:202) Domain construction failed > Traceback (most recent call last): > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 195, in create > vm.initDomain() > File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", > line 1377, in initDomain > raise VmError(str(exn)) > VmError: (22, \047Invalid argument\047) > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:1463) XendDomainInfo.destroy: domid=70 > [2007-11-14 10:44:53 xend.XendDomainInfo 8352] DEBUG > (XendDomainInfo:1471) XendDomainInfo.destroyDomain(70) > > .. and.. > > [root@bigmama xen]# tail -2 /var/log/xen/xend-debug.log > ERROR: Kernel not a Xen-compatible Elf image. > ERROR: Error constructing guest OS > > > > > If I start vm_oracle (not vm_oracle_para), I''ll get this: > > [root@vm-oracle ~]# uname -a > Linux vm-oracle.secana.local 2.6.18-8.1.15.el5.centos.plus #1 SMP Thu > Oct 25 06:48:46 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux > [root@vm-oracle ~]# arch > x86_64 > > I''ve set up grub to boot by defailt non-xen kernel in order to > accomodate booting both in fully virtualized and paravirtualized mode. I > use pygrub to boot the xen-kernel when trying to boot in paravirtualized > mode. > > As you probably spotted, I''m using LVM on the Dom0 to provide physical > storage for my virtual block devices. > > > > Can anyone provide a link til a guide, or can anyone tell me what I''m > doing wrong, please? > > Best regards, > Jens-Petter Salvesen > > _______________________________________________ > Xen-users mailing list > Xen-users@lists.xensource.com > http://lists.xensource.com/xen-users >_______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Nico wrote:>Jens-Petter Salvesen wrote: >> Hi, >> >> I''m having a very difficult time getting paravirtualized Xen running >> on Centos 5 64bit and I''m hoping someone can spot what I''m doingwrong.>> I''ve been attemping to do this for a few days now and I''m really not >> seeing what I''m doing wrong. >> >> Here''s what I''ve done: >> >> 1. Installed Centos 5 64-bit on the Dom0 >> 2. Installed a fully >> virtualized DomU running Centos 5 64-bit. >> 3. Created a new configuration file that will create aparavirtualized >>> DomU >Why aren''t you using virt-install? Did you want to duplicate thevirtual system entirely? I would prefer to be able to select upon boot-time if the VM is going to run as fully virtualized or paravirtualized. That would enable me to evaluate both solutions. I thought that it was possible to just make two different config files that boot two different kernels for the same VM? To my understanding, a fully virtualized VM must _not_ run a xen-enabled kernel while a paravirtualized VM _requires_ a compatible xen-enabled kernel. Is this correct?>Also, if you''re using pygrub, you don''t have to state a kernel. I don''tknow if it breaks things, but it''s confusing at best. I know. That kernel= statement is just a leftover from debugging. Best regards, Jens-Petter Salvesen _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Jens-Petter Salvesen wrote:> Nico wrote: > >> Jens-Petter Salvesen wrote: >> >>> Hi, >>> >>> I''m having a very difficult time getting paravirtualized Xen running >>> on Centos 5 64bit and I''m hoping someone can spot what I''m doing >>> > wrong. > >>> I''ve been attemping to do this for a few days now and I''m really not >>> seeing what I''m doing wrong. >>> >>> Here''s what I''ve done: >>> >>> 1. Installed Centos 5 64-bit on the Dom0 >>> 2. Installed a fully >>> virtualized DomU running Centos 5 64-bit. >>> 3. Created a new configuration file that will create a >>> > paravirtualized > > >>> DomU >>> >> Why aren''t you using virt-install? Did you want to duplicate the >> > virtual system entirely? > > I would prefer to be able to select upon boot-time if the VM is going to > run as fully virtualized or paravirtualized. That would enable me to > evaluate both solutions. I thought that it was possible to just make two > different config files that boot two different kernels for the same VM? > > To my understanding, a fully virtualized VM must _not_ run a xen-enabled > kernel while a paravirtualized VM _requires_ a compatible xen-enabled > kernel. Is this correct? >Oh, no. A fully virtualized VM can certainly run a Xen enabled kernel (barring some oddnesses with particular kernels). But the initrd certainly needs the right drivers to do so. I think you''ll find that a fully virtual VM needs different device drivers than a para-virtualized one.>> Also, if you''re using pygrub, you don''t have to state a kernel. I don''t >> > know if it breaks things, but it''s confusing at best. > > I know. That kernel= statement is just a leftover from debugging. >Got it. One thing I''ve done when doing a restoration from a system image, to get the grub set up, is to delete the kernel from the guest domain and do a virt-install "upgrade" on top of it. _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
>> To my understanding, a fully virtualized VM must _not_ run a >> xen-enabled kernel while a paravirtualized VM _requires_ a compatible>> xen-enabled kernel. Is this correct? >> >Oh, no. A fully virtualized VM can certainly run a Xen enabled kernel(barring some oddnesses with particular kernels).>But the initrd certainly needs the right drivers to do so. I thinkyou''ll find that a fully virtual VM needs different>device drivers than a para-virtualized one.Aha!!>Got it. One thing I''ve done when doing a restoration from a systemimage, to get the grub set up, is to delete the kernel from the guest domain and do a virt-install "upgrade" on top of it. I did a virt-install that was really an upgrade, and paravirtualized "mode" works now! Now I''ll just try to coax the VM to run in fully virtualized mode again - it didn''t like my new kernel.. Thanks you very much for your help! Best regards, Jens-Petter Salvesen _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users