CentOS Xen 源码安装实验

实验环境 Windows XP 32b

VMware Workstation 7

CentOS 5.4 Linux kernel 2.6.18-164.el5 (客户机)

 目 安装xen虚拟化环境,启动至少两台虚拟机,实现虚拟机桥接通信,进而进行MPI实验 

//机器配置不高,CentOS安装时分配内存、硬盘都不充足,

安装过程  

1.查看硬件是否支持Xen虚拟化

   半虚拟化:

        x86_64位机支持半虚拟化;x86 32位机 CPU 需要支持pae (Page Size Extensions)技术;

判断方法,见示例一:


[root@localhost ~]# cat /proc/cpuinfo | grep flags

flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht nx constant_tsc pni

flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht nx constant_tsc pni


全虚拟化:

          CPU 需要虚拟化技术,Intel 提供VT技术,AMD 提供 SVM 技术,在flags中的标识分别为 vmx , svm

  由此可知,示例一中的CPU不支持全虚拟化。

 支持全虚拟化CPU举例,示例二,                                                                                                                                                                                               


[root@A ~]# cat /proc/cpuinfo | grep flags

flags           : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc pnivmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm


2.环境准备(安装依赖工具包),下载安装xen hypervisor , Xen 内核  (参照Xen v3.0 用户手册


  #yum install "Development Tools" // 使用代理,勿忘export http_proxy , 当然也可以选择从光盘安装,

// yum --enablerepo =c5-media install *** 我是找不到安装盘 了

//CentOS 5.4 过于Old了,默认的镜像服务器已经不存储相关文件了,

//参照readme中所述,可修改CentOS.Base.repo中的baseurl ( http://vault.centos.org/5.4...)

// yum 配置好可谓 “事半功倍”

 # wget http://bits.xensource.com/oss-xen/release/3.4.4/xen-3.4.4.tar.gz //一样要注意http_proxy问题

//下载 xen ,这里我下的是Xen 3.4.4 ,以前没什么安装经验,这次选3.的也是随性的

 #tar zvxf xen-3.4.4.tar.gz // ./xen-3.4.4/README 中有Quick-Start Guide - Source Release,可参照

// 指明了部分依赖的软件包

    * GCC v3.4 or later
    * GNU Make
    * GNU Binutils
    * Development install of zlib (e.g., zlib-dev)
    * Development install of Python v2.3 or later (e.g., python-dev)
    * Development install of curses (e.g., libncurses-dev)
    * Development install of openssl (e.g., openssl-dev)
    * Development install of x11 (e.g. xorg-x11-dev)
    * bridge-utils package (/sbin/brctl)
    * iproute package (/sbin/ip)
    * hotplug or udev


 #cd xen-3.4.4/tools/check 

 #./chk build                  //查看缺少哪些依赖工具包

 # ./chk  install                  

    示例三


[root@localhost check]# ./chk build

Xen CHECK-BUILD  Tue Mar 26 22:43:21 PDT 2013
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_openssl_devel: 
 *** check_openssl_devel
FAILED : missing openssl headers
Checking check_python: OK
Checking check_python_devel: OK
Checking check_x11_devel: 
 *** check_x11_devel
FAILED: can't find X11 headers
OK
Checking check_xgettext: OK
Checking check_xml2: unused, OK
Checking check_zlib_devel: OK
Checking check_zlib_lib: OK
                                                                                                                           

//表示缺少openssl_devel , x11_devel
//缺什么装什么,yum install openssl_devel
// yum install x11_devel
                                                                                                                           

[root@localhost check]# ./chk build

Xen CHECK-BUILD  Tue Mar 26 23:03:22 PDT 2013
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_openssl_devel: OK
Checking check_python: OK
Checking check_python_devel: OK
Checking check_x11_devel: OK
Checking check_xgettext: OK
Checking check_xml2: unused, OK
Checking check_zlib_devel: OK
Checking check_zlib_lib: OK
                                                                                                                           

[root@localhost check]# ./chk install

Xen CHECK-INSTALL  Tue Mar 26 23:18:34 PDT 2013
Checking check_brctl: OK
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_iproute: OK
Checking check_python: OK
Checking check_python_xml: OK
Checking check_udev: which: no udevadm in (/sbin)  //没解决
OK
Checking check_xml2: unused, OK
Checking check_zlib_lib: OK

 # hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg   // 这步实施成功的前提是安装了mercurial,

//依旧要注意网络配置,解决clone 耗时过长的问题

 # cp -r ./linux-2.6.18-xen.hg ../xen-3.4.4/

 # //make 过程中会 Updating linux-2.6.18-xen.hg to revision tip. 很耗时。可以这样,但我没这么做

  

//   文件xen-3.4.4/buildconfigs/src.hg-clone
# vi buildconfigs/src.hg-clone
去掉从网上更新补丁的代码,最后的示例如下:
# 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 ; \      //这句前面要有tab键,否则会报错
        touch $@



  // 编译,补丁stubdom 网上说有这些包,下载好放到 /xen3.4.4/stubdom/下,我也下了几个没有装的包

//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

make dist 

make install

//首次时,可用make world, 即 make clean +make dist  

//README中使用 make dist,它 是由 make xen (make install-xen ), make kernels(make install-kernels), 

//make tools(make install-tools), make stubdom (make install-stubdom ), make docs(make install-docs) 

// 可采用分步方法,这样也好分析错误。

//make dist -j 4 表示用4个线程, 执行快速不易发现错误可采用 make dist 2>/error.txt

          //Makefile:21: === libgcrypt not installed: falling back to libcrypto === 安装libgcrypt-dev包

          //在编译安装过程中可能出现include2/asm/byteorder.h:5:28: error: linux/compiler.h: No such file or directory

//此错误可以忽略

//在make stubdom可能也会出现问题,它只是一个补丁集,同可以忽略

mkinitrd -v -f initrd-2.6.18.8-xen.img 2.6.18.8-xen 

mv initrd-2.6.18.8-xen.img /boot/

# vi /boot/grub/grub.conf                                //更新引导信息

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
fallback=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet
        initrd /initrd-2.6.18-164.el5.img
title xen3.4.4
        root(hd0,0)
        kernel /xen-3.4.gz
        module /vmlinuz-2.6.18.8-xen ro root=LABEL=/ rhgb quiet//root与黄色保持一致
        module /initrd-2.6.18.8-xen.img



# /sbin/chkconfig --add xend                     //设置xend开机自启动

# /sbin/chkconfig --add xendomains
# /sbin/chkconfig --add xencommons
# /sbin/chkconfig xend on
# /sbin/chkconfig xendomains on

# /sbin/chkconfig xencommons on

# reboot                                                    //完成了!















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值