主要参考的几个官方文档:

http://wiki.centos.org/HowTos/Xen/Xen4QuickStart 在centos上安装xen组件并建立dom0

http://wiki.centos.org/zh/HowTos/Xen/Xen4QuickStart/Xen4Libvirt 安装libvirt相关组件

http://wiki.xen.org/wiki/DomU_Install_with_Virt-Manager 使用virt-manager创建domU

http://wiki.xenproject.org/wiki/Host_Configuration/Networking#Red_Hat-style_bridge_configuration_.28e.g._RHEL.2C_Fedora.2C_CentOS.29 在centos上建立bridge

http://wiki.xenproject.org/wiki/Xen_Networking#Paravirtualised_Network_Devices 将虚拟机的虚拟网卡挂到网桥上

环境:

Centos6.4社区版

Xen4.2

机器配置:8G RAM,500G硬盘,4核cpu

预备工作:配置好yum源,官方的最好,但国内访问速度一般很慢,这里使用163的yum源

1 使用yum安装xen组件并建立dom0

1启用xen在yum源里的软件库

yum install centos-release-xen

2成功后,安装xen

yum install xen

3 Xen 监督器是在 linux 内核之上运行,所以我们必须告诉 grub 先引导监督器,然后链式引导 dom0 的 linux 内核。要达至这个目的,centos-release-xen 的组件内已包含一个脚本,让我们执行它:

/usr/bin/grub-bootxen.sh

4 查看/boot/grub/grub.conf,包含如下类似内容

title CentOS (3.10.23-11.el6.centos.alt.x86_64)

root (hd0,4)

kernel /boot/xen.gz dom0_mem=4096M,max:4096M loglvl=all guest_loglvl=all

module /boot/vmlinuz-3.10.23-11.el6.centos.alt.x86_64 ro root=UUID=2a7805e6-c24c-448c-a807-7def4ae408b3 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet

module /boot/initramfs-3.10.23-11.el6.centos.alt.x86_64.img

title CentOS (2.6.32-358.el6.x86_64)

root (hd0,4)

则表示xen已经装好,dom0成功建立,修改dom0_mem=4096M,max:4096M,可以更改dom0的内存

5 重新开机,检查运作的内核版本是否是上述文件中包含xen的版本

uname -r

(上面的配置文件的相应正确输出是:3.10.23-11.el6.centos.alt.x86_64

xm info

检查xen是否在运作中。

2 安装libvirt组件

1  Libvirt 及 Xen 的基础:Xen 的主机操作系统称为 Dom0。通过 Xen 来执行的虚拟操作系统(VM)称为 DomU。

在缺省情况下,libvirt 会在缺省网络卡(一般是 eth0)背后创建一个 192.168.122.0/24 的 NAT 网络。

在这个 NAT 网络上运行的 DomU VM 可以互相连接及通过 Dom0 的网络向外连接,但你只能在 Dom0 上通过 libvirt(或 xen)连接到它们。你可以把缺省的 NAT 网络改为一个桥接式网络,这样你便能连接到 DomU VM,仿如它们与 Dom0 在同一个实体网络上。

2 安装几个可能用到的组件

yum install rsync wget vim-enhanced openssh-clients

3 安装libvirt(在dom0机器上)

yum install libvirt python-virtinst libvirt-daemon-xen

3 使用virt-manager创建domU

1 安装virt-manager

yum install virt-manager

2 准备磁盘(这里使用lvm来进行管理,由于第一次接触linux分区,在这里卡了好久)需要分出一个逻辑分区来给新建的domU使用。

3 [root@f13 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_f13
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               463.75 GiB
  PE Size               32.00 MiB
  Total PE              14840
  Alloc PE / Size       2944 / 92.00 GiB
  Free  PE / Size       11896 / 371.75 GiB
  VG UUID               5dsak7-VN89-zMFT-9ZiU-XGhY-s5is-u1vCUw

Free PE那是可供分配的lv,如果是0,表示lv已全部被分配,这时候你需要重新配置下lv,从别的逻辑分区挪过来一些磁盘,我就是属于这种情况

执行 df查看分区情况:

文件系统                  1K-块      已用      可用 已用% 挂载点

/dev/sda5             10189112   3929464   5719028  41% /

tmpfs                  1954124        72   1954052   1% /dev/shm

/dev/sda2             20511356     46208  19400188   1% /home

/dev/mapper/vg_node004-LogVol02

206293688   5603432 190188112   3% /opt

/dev/mapper/vg_node004-LogVol00

20511356    138992  19307404   1% /tmp

/dev/mapper/vg_node004-LogVol01

103081248    323700  97498284   1% /var

xenstore               1954124        72   1954052   1% /var/lib/xenstored

/dev/mapper/*的属于lvm分区,这里可以看到vg_node004-LogVol02被/opt挂载,占用很大磁盘空间,考虑从那儿分出100G。执行步骤如下(按步骤来,否则会导致文件系统出错)

l  先执行lvscan,查看lvm的大小

ACTIVE            '/dev/vg_node004/LogVol01' [100.00 GiB] inherit

ACTIVE            '/dev/vg_node004/LogVol00' [20.00 GiB] inherit

ACTIVE            '/dev/vg_node004/LogVol02' [200.00 GiB] inherit

ACTIVE            '/dev/vg_node004/LogVol03' [50.00 GiB] inherit

  • 卸载/opt目录:umount /opt
  • 检查文件系统:fsck –f /dev/vg_node004/LogVol02
  • 调整LV大小并重建文件系统: resize2fs  /dev/vg_node004/LogVol02  100G(这里的数值100必须为整数,否则会报无效数值的错)
  • 减小lv容量:lvreduce -L -100G  /dev/vg_node004/LogVol02(这里的100可以为小数,注意要计算的,也就是原来的lv大小减掉这里的100要等于resize2fs设置的大小)
  • 重新挂载opt目录:mount /opt
  • 新建一个LV:lvcreate -L 50G -n LogVol04 vg_node004(LogVol04是lv名,vg_node004是lv组)
  • 重启,完成分区创建

3 启动virt-manager开始安装,ssh连接dom0,输入

#virt-manager

4 点击新建,输入虚拟机名,选择安装源类型

 

5 选择虚拟机内容和使用cpu个数

6 选择虚拟机存储,手动输入存储位置

7 其他暂时不设置,完成,进入到系统安装

8 进入到系统安装界面就是普通的linux安装了,这里不再赘述。

9 装好系统后回到dom0的ssh界面,输入xm list可以看到所有运行的虚拟机

4 配置network bridge(适用于redhat系列的)

xen虚拟机bridge模式的结构图

1 现在host上手动建立bridge device

Disable Netfilter on Bridges:编辑/etc/sysctl.conf 加入下面几行

net.bridge.bridge-nf-call-ip6tables = 0

net.bridge.bridge-nf-call-iptables = 0

net.bridge.bridge-nf-call-arptables = 0

然后用root权限运行:

# sysctl -p /etc/sysctl.conf

官方文档说NetworkManager不支持bridge(版本为fedora12时),所以先禁用NetworkManager,也可以在网卡的配置文件后面加上NM_CONTROLLED=no

禁用NetworkManager:

# chkconfig NetworkManager off

# chkconfig network on

# service NetworkManager stop

# service network start

新建一个/etc/sysconfig/network-scripts/ifcfg-xenbr0 的配置文件,根据不同的需求有好几种建法:

通过dhcp获得ip的网桥

DEVICE=xenbr0

TYPE=Bridge

BOOTPROTO=dhcp

ONBOOT=yes

DELAY=0

NM_CONTROLLED=no

固定ip的网桥

DEVICE=xenbr0

TYPE=Bridge

BOOTPROTO=static

BROADCAST=192.168.1.255

IPADDR=192.168.1.2

NETMASK=255.255.255.0

ONBOOT=yes

DELAY=0

NM_CONTROLLED=no

没有分配ip的网桥

DEVICE=xenbr0

TYPE=Bridge

BOOTPROTO=none

ONBOOT=yes

DELAY=0

NM_CONTROLLED=no

建好网桥后将物理网卡eth0绑定到网桥,修改/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=00:16:76:D6:C9:45

ONBOOT=yes

BRIDGE=xenbr0

NM_CONTROLLED=no

最后执行

# service network restart

Host的bridge device配置完成,查看bridge device

# brctl show

可以看到两个设备,virbr0是libvirt创建的,不用管,同时可以看到eth0已经绑定到xenbr了。

修改xen的部分配置文件,将domU的虚拟网卡绑定到新建的xenbr0,修改/etc/xen/xend-config.sxp,修改下面图片的未注释那几句,指定bridge为我们在host上新建的bridge

新建/etc/xen/xl.cfg文件

写入vif=[ 'bridge=xenbr0','bridge=xenbr0' ] 为domU虚拟网卡指定bridge

重启dom0,再打开各个domU,此时domU的eth0网卡已经是相当于独立设备。

输入brctl show可以看到domU的虚拟机网卡(vif3.0,vif4.0)已经挂到xenbr下面:

在启动的domU系统里自行更改eth0的配置,配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,如下是我配置固定ip的格式

Network bridge配置完成。

centos安装xen虚拟机并且配置bridge的更多相关文章

  1. KVM | centos 安装 window 虚拟机

    KVM | centos 安装 window 虚拟机 环境: CENTOS 7.3 1. 准备 1.1 检查是否支持虚拟化 cat /proc/cpuinfo | egrep 'vmx|svm' 要求 ...

  2. Linux 学习笔记 2 Centos 安装与网络的配置以及VI编辑器的使用

    前言 当然,还是觉得Centos 在众多的Linux 发行版中,还是很有地位的,好多的服务器大多沿用的都是一代的Centos 因为它开源(这是废话)而且稳定,这才是服务器沿用的最重要的一项指标. 镜像 ...

  3. CentOS安装Xen

    1.服务器环境及Xen版本: CentOS 5.4 64bit Xen-3.4.3,已经自带安装包 2.自制本地yum源: 安装httpd,指向本地xen yum源 3.修改yum.repo使其指向本 ...

  4. centos安装及Xshell连接配置

    一.百度下载并安装VMware 二.下载centos 打开https://www.centos.org,点击“get centos now”,点击“DVD ISO”下载(也可以下滑点击“more do ...

  5. centos 安装amp 运行环境+配置虚拟地址

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  6. CentOS 安装后的常用配置

    镜像配置 CentOS系统的镜像配置文件路径在 /etc/yum.repos.d/CentOS-Base.repo, 将镜像内容copy到 CentOS-Base.repo中 然后运行 yum mak ...

  7. CentOS安装Nginx,并配置nodejs反向代理

    安装介绍 安装位置:/usr/local/nginx nginx安装包下载地址:http://nginx.org/download/nginx-1.7.11.tar.gz 安装依赖软件 安装nginx ...

  8. Centos安装php php-fpm 以及 配置nginx

    下载php源码包 http://www.php.net/downloads.php 安装php .tar.bz2 cd php- ./configure --prefix=/usr/local/php ...

  9. centos 安装git服务器,配置使用证书登录并你用hook实现代码自动部署

    安装git服务器先安装依赖软件:yum -y install gcc zlib-devel openssl-devel perl cpio expat-devel gettext-devel open ...

随机推荐

  1. PHP中extract()函数的妙用

    看cakephp 2.3.8的源代码,很多地方都用 到 compact('name', 'response'); extract($status, EXTR_OVERWRITE); 这样的代码.com ...

  2. chrome插件网站

    chrome插件网站 http://chromecj.com/

  3. 高仿微信实现左滑显示删除button功能

    在实际项目中删除列表中的某一项是很常见的功能.传统的做法能够使用长按监听器等,而如今流行的做法是左滑弹出删除button,微信,QQ等都是这么做的,以下做一个演示样例,代码例如以下: 主页面MainA ...

  4. 在Nginx上部署ThinkPHP,解决Pathinfo问题

    在Nginx上部署ThinkPHP,解决Pathinfo问题 事实上.要解决nginx不支持pathinfo的问题.有两个解决思路,一是不使用pathinfo模式,二是改动nginx的配置文件,使它支 ...

  5. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

  6. 【翻译自mos文章】多租户中的service管理

    来源于: Service Management For Multitenant (文档 ID 2009500.1) APPLIES TO: Oracle Database - Enterprise E ...

  7. 安装Sublime配合quick-cocos2d-x开发

    下载地址 Sublime下载地址 安装 Package Control 在Sublime中,按Ctrl+~打开控制台,输入: Sublime Text2 import urllib2,os; pf=' ...

  8. break 用法

    // break 在循环中的功能测试 # include <stdio.h> int main(void){ int i, j; for (i = 0; i<3; ++i) {  j ...

  9. Please verify that your device’s clock is properly set, and that your signing certificate is not exp

    真机调试的时候出现此类警告,之前也遇到过,但是一直没总结,今天总结一下 出现这样的问题大概有几个解决方法: 1.最简单的一种----假设你的证书是近期才申请的没什么问题.或者说前几天測试还没问题,突然 ...

  10. 基于redis集群实现的分布式锁,可用于秒杀商品的库存数量管理,有測试代码(何志雄)

    转载请标明出处. 在分布式系统中,常常会出现须要竞争同一资源的情况,本代码基于redis3.0.1+jedis2.7.1实现了分布式锁. redis集群的搭建,请见我的另外一篇文章:<>& ...