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

CentOS6.5系统中xen虚拟机的安装和配置

一、环境系统:centOS6.3xen版本:4.1.2linuxkernel:3.1.2libvirt:0.7.7资源地址xen:http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gzkernel:http://www.kernel.org/pu

 一、环境

系统:centOS6.3  

xen版本:4.1.2 

linux kernel:3.1.2 

libvirt:0.7.7  

资源地址

xen:http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz
kernel:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2
libvirt:http://pkgs.fedoraproject.org/repo/pkgs/libvirt/libvirt-0.7.7.tar.gz/5f315b0bf20e3964f7657ba1e630cd67/libvirt-0.7.7.tar.gz
libvirt所有的版本:http://pkgs.fedoraproject.org/repo/pkgs/libvirt/  

xen和内核都是编译安装,libvirt也需要编译安装,因为6.0之后默认支持的虚拟化是KVM,源里面的libvirt默认是不支持xen的。
yum install libvirt 这种安装方式使用virt-install会出现错误:主机不支持任何虚拟化。
使用virt-manager会出现无法连接xen。  

1、初始化环境

yum update 

2、关闭selinux,xen不支持selinux。  

vi /etc/selinux/config 

SELINUX=disabled 

3、安装必备软件包

yum -y groupinstall "Development Libraries" 

yum -y groupinstall "Development Tools" 

yum -y 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 

yum -y install vim wget tcpdump ntp ntpdate man smartmontools links lynx ethtool xorg-x11-xauth 

4、安装xen  

tar zxvf xen-4.1.2.tar.gz 

cd xen-4.1.2 

make world 

make install 

             将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内核

linux3.0之后已经默认支持xen,所以3.0之后的版本不需要安装xen-kernel内核补丁,直接编译内核就可以。

 

tar jxf linux-3.1.2.tar.bz2 

cd linux-3.1.2 

make menuconfig 

参数配置:

Processor type and features --- > 

选中Paravirtualized Guest Support 

Device Drivers ---> 

XEN driver support ---> 

[ * ] Xen memory balloon driver 

[ * ] Scrub pages before returning them to system 

<*> Xen /dev/xen/evtchn device 

[ * ] Backend driver support 

<*> Xen filesystem 

[ * ] Create compatibility mount point /proc/xen 

[ * ] Create xen entries under /sys/hypervisor 

<*> userspace grant access device driver 

       在.config文件中做如下修改,我在创建虚拟机的时候出现vif0错误。查找网上的资料说是下面两个没有修改。

CONFIG_XEN_BLKDEV_BACKEND=m

CONFIG_XEN_NETDEV_BACKEND=m

 

编译安装

make -j6 

make -j6 modules 

make -j6 modules_install 

make -j6 install 

depmod 3.1.2 

注:-j参数是指定运行的线程数,没有用这个参数会慢特别多。建议使用节省编译时间。后面的数字根据自己的机器配置设置。详细参数可以查看man make

 

6、编译安装libvirt

tar -zxvf libvirt-0.7.7.tar.gz 

./configure 

make && make install 

运行程序

libvirt:libvirtd -d 

7、修改启动项,使用xen内核启动

vi /etc/grub.conf 

默认会有一个3.1.2的启动项。基本是是这样的:

title CentOS (3.1.2) 

root *** 

kernel /********** 

initrd /******** 

复制上面几行。title前面粘贴,在root和kernel之间插入一行kernel /xen.gz

修改kernel和initrd为module,修改后为:

title xen (3.1.2) 

root *** 

kernel /xen.gz 

modul /********** 

modul /******** 

然后修改default=N这个,查看修改的这个title xen是第几个title,第一个则修改为default=0

第二个修改为default=1,依次类推。

reboot

二、重启进入系统后:

xl list查看

出现下面这个证明安装好了。 

Name ID Mem VCPUs   State   Time(s) 

Domain-0 0 29762 8 r----- 3687.1 

1、xen网桥配置

显示xen网桥:brctl show

没有发现xenbr0虚拟网卡

xen4.1版本之后官方建议手动建立桥接网络。所以默认的/etc/xen/scripts/network-bridge 脚本是没有启动的。

(1)关闭xen网络脚本 

/etc/xen/scripts/network-bridge stop 

(2)修改xen配置文件 

vi /etc/xen/xend-config 

注释下面两行

#network-script network-bridge) 

#(vif-script vif-bridge) 

(3)重启xend服务

service xend restart 

(4)手动创建桥接网络,将物理网卡eth0设置为桥,我设置的服务器是DELL 410,网卡装完系统是em1,em2,只是名称区别而已。 

vi /etc/sysconfig/network-scripts/ifcfg-em1 

DEVICE=eth0 

OnBOOT=yes 

BRIDGE=xenbr0 

HWADDR=*********** 

UUID=************ 

  

vi /etc/sysconfig/network-scripts/ifcfg-xenbr0 

DEVICE=xenbr0 

BOOTPROTO=static 

IPADDR=192.168.*.* 

NETMASK=255.255.255.0 

GATEWAY=192.168.*.* 

OnBOOT=yes 

TYPE=Bridge 

上面这个就是创建一个xenbr0桥接到网卡em1,xen的虚拟机就可以通过xenbr0这个桥上网了
还有em2 em3网卡的话按照上面的方式创建就可以了。
重启网络:service network restart

5、更改虚拟机的桥接网卡。
假如虚拟机现在使用的桥是xenbr0,是通过em1出去的。修改成em2出去的话按照以下步骤 

[root@localhost data]# xl list 

Name ID Mem VCPUs   State   Time(s) 

Domain-0 0 29762 8 r----- 3687.1 

vm03 13 512 4 -b---- 53.6 

vm02 16 512 1 -b---- 40.9 

可以看到虚拟机的id号分别是13和16。 

[root@localhost data]# brctl show 

bridge name bridge id    STP enabled    interfaces 

xenbr0   8000.782bcb4ce1a6  no   em1 

vif13.0 

vif16.0 

xenbr1   8000.782bcb4ce1a7  no   em2 

可以看到vif13.0是vm03这个虚拟机的网络。vif(虚拟机ID).0就是虚拟机的网络 

先删除vif13.0

brctl delif xenbr0 vif13.0 

创建 vif13.0桥接到xenbr1

brctl addif xenbr1 vif13.0 

重启网络

service networkrestart 

显示虚拟机网桥

#brctl show 

xenbr0   8000.782bcb4ce1a6  no   em1 

                       vif16.0 

xenbr1   8000.782bcb4ce1a7  no   em2 

                       vif13.0 

这样就可以了。


推荐阅读
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上搭建GitLab服务器的过程,包括环境准备、软件安装及基本配置等关键步骤。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • CentOS 转向引发争议,联合创始人推出 Rocky Linux
    CentOS 转向 CentOS Stream 引发用户不满,其联合创始人 Gregory Kurtzer 推出新的社区项目 Rocky Linux,旨在延续 CentOS 的精神。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
author-avatar
Echocc07
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有