Centos5.4 安裝XEN3.4.2 php
1.XEN 的安裝html
a須要的包名稱python
xen-3.4.2.tar.gz linux
linux-2.6.18-xen-3.4.2.tar.gz git
補丁bash
grub-0.97.tar.gz newlib-1.16.0.tar.gz pciutils-2.2.9.tar.gzdom
lwip-1.3.0.tar.gz pciutils-2.2.9.tar.bz2 zlib-1.2.3.tar.gzide
其中zlib-1.2.3.tar.gz注意解壓後文件夾名稱是否爲zlib-1.2.3(重要工具
不然會致使編譯錯誤oop
b.安裝包
# yum install
libx11-devel.x86_64
openssl-devel.x86_64
gettext_devel.x86_64
gcc.x86_64
dev86.x86_64
ncurses-devel
python-devel
libtool-ltdl
texinfo.x86_64
xorg-x11-xtrans-devel
xorg-x11-server-sdk
xorg-x11-drv-i810-devel
xorg-x11-drv-via
xorg-x11-proto-devel
c.設置配置文件
把對應的linux內核源碼包放到xen的目錄下改爲linux-2.6.18-xen.hg並修改src.hg-clone文件。
[root@localhost source]# mv linux-2.6.18-xen-3.4.2 xen-3.4.2/linux-2.6.18-xen.hg
[root@localhost source]# cd xen-3.4.2
[root@localhost xen-3.4.2]# gedit buildconfigs/src.hg-clone
去掉hg同步linux內核源碼的步驟(修改後的文件)以下
----------------------------------------------------------------
# Mercurial
HG ?= hg
LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg
# Repository to clone.
XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH))
# Set XEN_LINUX_HGREV to update to a particlar revision.
XEN_LINUX_HGREV ?= tip
$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
set -e ; \
touch $@
d.準備studom補丁集
studom是xen中的一個補丁集能夠增長性能是從xen3.3引入的並非必需的。網上有說能夠把這塊去掉(具體步驟能夠到網上去找)若是不想去掉的話能夠本身上網下載對應的工具包放到xen源碼目錄下的studom目錄下。我已經下好了這些工具包在按照名字在網上都很容易搜索到的。
[root@localhost stubdom]# ls
grub-0.97.tar.gz newlib-1.16.0.tar.gz pciutils-2.2.9.tar.gz
lwip-1.3.0.tar.gz pciutils-2.2.9.tar.bz2 zlib-1.2.3.tar.gz
[root@localhost stubdom]# cp * ../xen-3.4.2/stubdom/
其中zlib-1.2.3.tar.gz注意解壓後文件夾名稱是否爲zlib-1.2.3(重要
e.開始編譯安裝
[root@localhost xen-3.4.2]# make dist有Y選Y沒Y選M
[root@localhost xen-3.4.2]# make install
f.生成initrd鏡像
[root@localhost xen-3.4.2]# mkinitrd --without-dmraid -v -f /boot/initrd-2.6.18.8-xen.img 2.6.18.8-xen
g.修改grub配置文件
[root@localhost xen-3.4.2]# gedit /boot/grub/grub.conf
----------------------------------------------------------------
default=1
timeout=1
splashp_w_picpath=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.18-164.el5.img
title CentOS-Xen3.4.2 (2.6.18-8)
root (hd0,1)
kernel /boot/xen-3.4.2.gz
module /boot/vmlinuz-2.6.18.8-xen ro root=LABEL=/1 rhgb quiet
module /boot/initrd-2.6.18.8-xen.img
title Other
rootnoverify (hd0,0)
chainloader +1
----------------------------------------------------------------
2.DOMU的啓動
編譯一個domU內核
咱們使用上面下載的Xen源代碼來建立domU內核
一、進入包含源代碼的目錄
cd ~/xen-source
二、編譯domU內核
make linux-2.6-xenU-config
三、選擇domU內核須要的選項若是不肯定可使用缺省選項記得在退出時保存選項。
四、建立domU內核而後安裝
make linux-2.6-xenU-build
make linux-2.6-xenU-install
五、爲domU內核建立initrd(我沒有成功創建少個模塊沒有這個也能夠啓動)
mkinitrd -v -f --with=ide-disk --with=sd_mod --with=ide-generic --with=ext3 --with=scsi_mod /boot/initrd-2.6.**.**-xenU.img 2.6.**.**-xenU
mkinitrd -v -f initrd-2.6.21.DomU.img $(uname -r)
建立鏡像文件
For example, to create a 2GB sparse le-backed virtual block device (actually only
consumes 1KB of disk):
# dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1
Make a le system in the disk le:
# mkfs -t ext3 vm1disk
(when the tool asks for conrmation, answer `y')
Populate the le system e.g. by copying from the current root:
# mount -o loop vm1disk /mnt
# cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt
# mkdir /mnt/{proc,sys,home,tmp}
配置文件修改
修改與系統相關的配置文件例如
文件系統表/etc/fstab
主機名/etc/sysconfig/network
IP地址和MAC地址/etc/sysconfig/network-scripts/ifcfg-eth0這些最好都進行修改。
注意這裏所說的文件系統表還有主機名等文件是在/mnt/下的如/etc/fstab實際是指/mnt/etc/fstab含義其實很簡單就是修改咱們建立的vm1disk這套半虛擬話磁盤鏡像系統內的系統表主機名等這裏就再也不贅述了。
現將個人修改貼出來以供你們參考個人修改所有是必須的修改由於我以前這些有的沒有修改所以會爆出這樣或那樣的錯誤讓人很困擾後面的錯誤分析中我會具體說明是哪些未修改引發的錯誤。
文件系統表/etc/fstab
所有都註釋掉只留一行
/dev/sda2 / ext3 defaults 1 1
注sda2這個要視狀況而定。學長告訴我先要在終端中用fdisk -l這個命令看看哪一個在root那一行是*而後就寫成哪一個因此我原本寫的是sda1可是有問題後來另外一個學長告訴我偏偏相反要用沒有用過的所以用了在fdisk -l裏面沒有出現的sda2結果成功了因此這個選擇我但願你們最好仍是試試看吧有興趣的嘗試一下能夠告訴我哦~
補充剛纔我又試了一下在一切的成功的基礎上將sda2都改成sda1也沒有問題不知道是什麼狀況但願知道的留言解釋呵呵。
主機名/etc/sysconfig/network
將主機名修改便可。
IP和MAC地址/etc/sysconfig/network-scripts/ifcfg-eth0
這個能夠不修改可是不修改則沒法上網至少我用的時候不修改是沒法ping通本機的建議你們修改
更改系統級別/etc/inittab
選擇3 ×××面方式
Domu啓動配置文件
配置文件製做
kernel = "/boot/vmlinuz-2.6.21-2950.fc8xen" //DomU的內核
ramdisk = "/boot/initrd-2.6.21.DomU.img" // 包含相應驅動DomU 的intrd 文件 要本身製做最好不要用 系統生成的可選
#ramdisk = "/boot/initrd-2.6.21-2950.fc8xen.img"
memory = 200
maxmem = 200
name = "jiangyue-fc8"
vif = ['mac=AA:AA:0A:EF:EF:04,bridge=eth0']
vcpus = 1
ip = "192.168.201.18"
netmask= "255.255.255.0"
dns = "202.114.0.242"
disk = ['file:/media/disk/fc8.img,sda2,w'] //sda2 與DomU中 /etc/fstab中一致
root = "/dev/sda2 ro" //sda2 與DomU中一致
#extra = 'xencons=tty'
xen-4.1.2+Linux-3.1.2源碼編譯安裝
如下全部命令均在CentOS6.2系統上操做。
下載xen源碼
wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz
安裝必備軟件包
yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"
yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel
yum -y install glibc-devel.i686texinfo libuuid-devel iasl python-lxml
yum -y install openssl openssl-devel
yum -y install ncurses ncurses-*
yum install python-devel -y
編譯安裝xen hypervisor
tar zxvf xen-4.1.2.tar.gz
make world
make install
/boot下多了xen-4.1.2.gz和xen-syms-4.1.2文件
將Xen加入到啓動腳本
/sbin/chkconfig --add xend
/sbin/chkconfig --add xencommons
/sbin/chkconfig --add xendomains
/sbin/chkconfig xend on
/sbin/chkconfig xendomains on
/sbin/chkconfig xencommons on
編譯安裝Linux3.1.2內核
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
#make oldconfig # 所有默認
#make menuconfig
Processor type and features --- >
選中Paravirtualized Guest Support
Device Drivers --->
Xen driver support --->
所有選*
修改CONFIG_XEN_DEV_EVTCHN=y若是是m開機時沒法啓動xencommons
make
make modules
make modules_install
make install 會報找不到xen-evtchn模塊忽略
depmod 3.1.2
mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initramfs-3.1.2.img 3.1.2
配置grub
title CentOS (3.1.2-xen)
root (hd0,0)
kernel /boot/xen-4.1.2.gz dom0_mem=1024M
module /boot/vmlinuz-3.1.2 ro root=/dev/sda1
module /boot/initramfs-3.1.2.img
參考
http://linuxme.blog.51cto.com/1850814/390778
http://share.blog.51cto.com/278008/723828
http://blog.chinaunix.net/space.php?uid=147142&do=blog&id=2788048
http://wiki.xen.org/xenwiki/2.6.18-to-2.6.31-and-higher
http://wiki.xen.org/wiki/Migrate_from_Linux_2.6.18_to_2.6.31_and_higher
http://wiki.xen.org/wiki/Mainline_Linux_Kernel_Configs
http://wiki.xen.org/wiki/HostConfiguration/Networking
虛機配置文件中增長
extra="single"
#!/bin/bash
# Generate vm configuration file for already running vms
#
# Execute 'xm new -F test.cfg' to create vm using generated config
#
# By feisky
vms=`xm li | grep -v Name | grep -v Domain-0 | awk '{print $1}'`
for vm in $vms
do
xm li -l $vm > $vm.cfg
done
換過一個版本的xen以後從新編譯源代碼從新啓動出現Kernel panic - not syncing: Attempted to kill init!解決辦法initrd鏡像沒有更新從新生成下initrd的鏡像針對2.6.18.8的到boot目錄下執行以下命令mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen再次啓動就能夠了