热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS6.5系统安装Xen4.1.2虚拟机

在centos下安装xen不是很顺利,遇到很多问题。安装过程主要参考了以下两个文档:http://wiki.xen.org/xenwiki/RHEL6Xen4Tutorial?actionfullsearchvaluelinkto%3A%22RHEL6Xen4Tutorial%22context180这个方法可以正常安

centos下安装xen不是很顺利,遇到很多问题。安装过程主要参考了以下两个文档:

http://wiki.xen.org/xenwiki/RHEL6Xen4Tutorial?action=fullsearch&value=linkto%3A%22RHEL6Xen4Tutorial%22&cOntext=180

这个方法可以正常安装xen,并指出RedHat 6 下安装xen 会遇到的问题,只是安装过程复杂,不是源码安装。

系统和安装的xen版本上面有介绍,开始着手安装xen了。

1.下载Xen的源码

 wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz

2.安装必备软件包

 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 -y install python-devel

3.编译安装Xen hypervisor

 tar zxvf xen-4.1..tar.gz
 cd xen-4.1.
 make world

在此可能会遇到如下问题:

解决办法:yum ?y install texinfo

4.将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

5.编译安装Linux3.1.2内核

 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
 tar -jxvf linux-3.1..tar.bz2
 make menuconfig
 Processor type and features --- >
      选中Paravirtualized Guest Support
   Device Drivers --->
       Xen driver support --->
         全部选*
 修改:CONFIG_XEN_DEV_EVTCHN=y(如果是m,开机时无法启动xencommons)

 注意:仅仅上面的是不够的,还需要修改:否则在创建虚拟机的过程中遇到这样的问题:

注意:Device 0 (vif) could not be connected. HotPlug scripts not working.

在.config文件中做如下修改,就可以解决问题了

 CONFIG_XEN_BLKDEV_BACKEND=m
 CONFIG_XEN_NETDEV_BACKEND=m

接下来开始编译安装了:

 make
 make modules
 make modules_install
 make install
 depmod 3.1.
 mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initramfs-3.1..img 3.1.

6.配置grub:

 title Xen (3.1.-xen)
         root (hd0,)
         kernel /xen-4.1..gz dom0_mem=512M
         module /vmlinuz-3.1. ro root=UUID=3f920108-b74b-46b9-81c2-aff834494381
 rd_DM_UUID=ddf1_4c5349202020202010000055000000004711471100001450 rd_NO_LUKS rd_NO_LVM rd_NO_MD LANG=en_US.UTF-
 SYSFOnT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
         module /initramfs-3.1..img

这个配置在第4行后面root=UUID随自己的系统

7.安装virt-manager

 yum install libvirt virt-manager xorg-x11-xauth

 8. 重新编译libvirt

  在文章前面第一个链接中,说明了,redhat6系统中,默认的libvirt是不支持xen的,如果直接使用默认的这会出现如下的问题:

  注意virt-manager & 这个命令中的'&' 代表该进程后台运行

 [root@el6 ~]# virt-manager &
 []
 Unable to open connection to hypervisor URI 'xen:///':
 no connection driver available for xen:///
 Traceback (most recent call last):
   File "/usr/share/virt-manager/virtManager/connection.py", line , in _try_open
     None], flags)
   File "/usr/lib64/python2.6/site-packages/libvirt.py", line , in openAuth
     if ret is None:raise libvirtError('virConnectOpenAuth() failed')
 libvirtError: no connection driver available for xen:///

 开始重新编译libvirt解决以上的问题。

以下的操作都在非xen系统中进行:

没个系统遇到的缺的包不一样,我的系统中还缺失xen-devel包,并且在yum

 [root@el6 ~]# cd /root/src
 [root@el6 src]# wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/libvirt-0.8.1-27.el6.src.rpm
 [root@el6 src]# rpm -i libvirt-0.8.-.el6.src.rpm
 [root@el6 src]# wget http://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch
 [root@el6 src]# cd /root/rpmbuild/SPECS
 [root@el6 SPECS]# cp -a libvirt.spec libvirt.spec.orig
 [root@el6 SPECS]# patch -p0 < ~/src/libvirt-spec-rhel6-enable-xen.patch
 patching file libvirt.spec
 [root@el6 SPECS]# rpmbuild -bb libvirt.spec
 error: Failed build dependencies:
         libnl-devel >= 1.1 is needed by libvirt-0.8.-.el6.x86_64
         xhtml1-dtds is needed by libvirt-0.8.-.el6.x86_64
         libudev-devel >=  is needed by libvirt-0.8.-.el6.x86_64
         libpciaccess-devel >= 0.10. is needed by libvirt-0.8.-.el6.x86_64
         yajl-devel is needed by libvirt-0.8.-.el6.x86_64
         libpcap-devel is needed by libvirt-0.8.-.el6.x86_64
         avahi-devel is needed by libvirt-0.8.-.el6.x86_64
         parted-devel is needed by libvirt-0.8.-.el6.x86_64
         device-mapper-devel is needed by libvirt-0.8.-.el6.x86_64
         numactl-devel is needed by libvirt-0.8.-.el6.x86_64
         netcf-devel >= 0.1. is needed by libvirt-0.8.-.el6.x86_64
  [root@el6 SPECS]# yum install libnl-devel xhtml1-dtds libudev-devel libpciaccess-devel yajl-devel libpcap-devel avahi-devel parted-devel device-mapper-devel numactl-devel netcf-devel

安装的时候,提示No packages xen-devel available 。

在多次替换yum源之后,依然无法解决这个xen-devel包缺失的问题。

随后的解决方案如下:

在网上下载xen-devel rpm 包,安装遇到依赖问题,接着下载xen-libs rpm 包,接着还有其他的依赖问题,同样查找。

具体链接: 搜索xen-devel,找到符合系统版本的

 http://rpm.pbone.net/index.php3

我下载的版本是:
xen-devel-4.1.2_03-1.1.x86_64.rpm

安装xen-devel还依赖其他的包,如下:

xen-libs-4.1.2_03-1.1.x86_64.rpm

liblzma5-5.0.3-7.1.x86_64.rpm

glibc-common-2.14.90-14.x86_64.rpm

glibc-2.14.90-14.x86_64.rpm

强制安装如上的包。

如果缺少依赖包,依次去下载对应版本,解决问题。这个过程很蛋疼。

如果所有的依赖包都安装上后,接着下面的操作:

 [root@gb31 SPECS]# rpmbuild -bb libvirt.spec
 After a while you'll see: 
 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-0.8.-.el6.x86_64.rpm
 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-client-0.8.-.el6.x86_64.rpm
 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-devel-0.8.-.el6.x86_64.rpm
 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-python-0.8.-.el6.x86_64.rpm
 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-debuginfo-0.8.-.el6.x86_64.rpm

如果有如上的显示则安装成功。

如果遇到屏幕显示test 。。 一直卡住之后,卸载掉系统中已经安装的libvirt包,再重新尝试,即可。
接着如下:注意,可能版本不一样

如果还显示存在test失败,make失败,与libvirt版本相关,这个问题很蛋疼,多试下几个版本吧。就可以解决。

 [root@el6 ~]# cd /root/rpmbuild/RPMS/x86_64/
 [root@el6 x86_64]# rpm -Uvh --force libvirt-0.8.-.el6.x86_64.rpm libvirt-client-0.8.-.el6.x86_64.rpm libvirt-python-0.8.-.el6.x86_64.rpm
 Preparing...                ########################################### [%]
    :libvirt-client         ########################################### [ %]
    :libvirt                ########################################### [ %]
    :libvirt-python         ########################################### [%]

9.进入xen系统

重启系统,进入xen系统。

尝试输入如下命令:xm-list ,xm-info

再接着尝试如下命令:virt-install,尝试着安装虚拟机

如果显示的错误如下:

 ERROR unable to connect to ‘localhost:′: Connection refused

则需要去做如下修改:

 解决方案:查看libvirtd服务是否启动,关闭防火墙,在/etc/xen/xend-config.sxp
 (xend-http-server yes)
 # Port xend should use for the HTTP interface, if xend-http-server is set.
 (xend-port )
 去掉上面两个括弧的注释,ok

再重新启动xend服务

至此,可以尝试在桌面上气筒virtual machine manager 去创建虚拟机。
创建过程如果如下问题:

可以系统路劲的问题,在usr/lib/xen/bin下找到qemu-dm放到lib64下对应的路径。

就ok。

10.配置网桥桥接模式

修改ifcfg-eth0如下:

 DEVICE="eth0"
 BOOTPROTO="static"
 HWADDR="**********“
 NM_COnTROLLED="no"
 OnBOOT="yes"
 IPADDR="*******”
 NETMASK="255.255.0.0"
 GATEWAY="********"
 TYPE=Ethernet
 DNS1="8.8.8.8"
 DNS2="8.8.4.4"
 BRIDGE=br100

创建ifcfg-br100文件,内容如下:

 DEVICE="br100"
 BOOTPROTO="static"
 HWADDR="*********"
 NM_COnTROLLED="no"
 OnBOOT="yes"
 IPADDR="*******"
 NETMASK="255.255.0.0"
 GATEWAY="*******"
 TYPE=Bridge
 DEFROUTE=yes
 DNS1="8.8.8.8"
 DNS2="8.8.4.4"

11.ok,至此,xen的安装结束了,可以放心大胆的创建虚拟机了。


推荐阅读
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
author-avatar
min-章_998
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有