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