千家信息网

xen虚拟化技术

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,虚拟化技术的分类:(1) 模拟:Emulation:Qemu,PearPC,Bochs(2) 完全虚拟化:Full Virtualization,Native VirtualizationHVMVMw
千家信息网最后更新 2024年09月22日xen虚拟化技术

虚拟化技术的分类:
(1) 模拟:Emulation:
Qemu,PearPC,Bochs
(2) 完全虚拟化:Full Virtualization,Native Virtualization
HVM
VMware Workstation,VirtualBox,VMWare Server,Parallels Desktop,KVM,XEN
(3) 半虚拟化:ParaVirtualization
GuestOS:知晓自己是运行Virtualization
Hypercall
(4) OS级别虚拟化:
将用户控件分割为多个,彼此间互相隔离;
容器级虚拟化
OpenVZ,LXC(LinuX Container),libcontainer,Virtuozzo,Linux V Servers
(5) 库级别虚拟化
WINE

Type-I,Type-II

IaaS:Infrastructure,基础架构服务
PaaS:Platfrom,平台即服务

Xen:
剑桥大学,开源VMM

Xen组成部分:        (1) Xen Hypervisor            分配CPU、Memory、Interrupt            (2) Dom0                特权域,I/O分配                        网络设备                                net-front(GuestOS),net-backend                            块设备                                block-front(GuestOS),block-backend                    Linux Kernel:                        2.6.37:开始支持运行Dom0                        3.0:对关键特性进行了优化                     提供管理DomU工具栈                         用于实现对虚拟机进行添加、启动、快照、停止、删除等操作;            (3) DomU                非特权域,根据其虚拟化方式实现,有多种类型                        PV:半虚拟化                            HVM:硬件辅助虚拟化

Xen的PV技术:
不依赖于CPU的HVM特性,但要求GuestOS的内核做出修改以知晓自己运行于PV环境;
运行于DomU中的OS:Linux(2.6.24+),NetBSD,FreeBSD,OpenSolaris

Xen的HVM技术:
依赖于Inter VT或AMD AMD-V,还要依赖于Qemu来模拟IO设备;
运行于DomU中的OS:几乎所有支持此X86平台的;

PV on HVM:
CPU为HVM模式运行
IO设备为PV模式运行
运行于DomU中的OS:只要OS能驱动PV接口类型的IO设备;
net-front,blk-front

Xen的工具栈:
xm/xend:在Xen Hypervisor的Dom0中药启动xend服务
xm:命令行管理工具,有诸多子命令;
create,destroy,stop,pause...

    xl:基于libxenlight提供的轻量级的命令行工具栈;    xe/xapi:提供了对xen管理的api,因此多用于cloud环境,Xen Server,XCP    virsh/libvirt:

XenStore:
为各Domain提供的共享信息存储空间,有着层级结构的名称空间,位于Dom0

CentOS对Xen的支持:
RHEL 5.7-:默认的虚拟化技术为xen
kernel version:2.6.18
kernel-
kernel-xen
RHEL 6+:仅支持kvm
Dom0:不支持
DomU:支持
如何在CentOS 6.6上使用Xen:
(1) 编译3.0以上版本的内核,启动对Dom0的支持
(2) 编译xen程序

制作好相关程序的项目:
xen4centos
xen made easy

Para Virt
Xen Para-virtualization Architecture

xen工具:

xm vs xl:

libvirtd管理工具:

xen工具栈:

Dom0 Kernel
CONFIG_ACPI_PROCFS=y
CONFIG_XEN=ye
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PCI=y
CONFIG_PCI_XEN=y
CONFIG_XEN_BLKDEV_FRONTENE=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_KBDDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_XEN_FS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_PCIDEV_FRONTEND=y

DomU Kernel
CONFIG_XEN=y
CONFIG_PARAVIRT_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_DEV_DETCHN=y
CONFIG_XEN_XENBUS_FRONTEND=y

grub配置:

#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (3.7.4-1.el6xen.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin(dom0_mem指定dom0使用内存空间多大,cpufreq cpu由xen管理,dom0_max_vcpus dom0最多使用多少虚拟cpu)
module /vmlinuz-3.7.4-1.el6xen.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg0/root rhgb quiet
module /initramfs-3.7.4-1.el6xen.x86_64.img
title Red Hat Enterprise Linux (2.6.32-279.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_DM KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg0/root rhgb quiet
initrd /initramfs-2.6.32-279.el6.x86_64.img

安装完成后对grub的配置示例:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.18.17-13.el6.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
module /vmlinuz-3.18.17-13.el6.x86_64 ro root=UUID=cf43ec31-f59f-423f-aa0b-d091c18b2fa4 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module /initramfs-3.18.17-13.el6.x86_64.img

grub.conf boot options:http://xenbits.xen.org/docs/unstable/misc/xen-command-line.html
官网Man手册:http://wiki.xenproject.org/wiki/Xen_Man_Pages

工具栈:
xm/xend
xl

xl list:显示Domain的相关信息
xen虚拟机状态:
r: running
b:阻塞
p:暂停
s:停止
c:崩溃
d:dying,正在关闭的过程中

如何创建xen pv模式:
1、kernel
2、initrd或initramfs
3、DomU内核模块
4、根文件系统
5、swap设备
将上述内容定义在DomU的配置文件

    注意:xm与xl启动DomU使用的配置文件略有不同;对于xl而言,其创建DomU使用的配置指令可通过"man xl.cfg"获取        常用指令:                name:域唯一的名称                    builder:指明虚拟机的类型,generic表示pv,hvm表示hvm                    vcpus:虚拟cpu个数                    maxcpus:最大虚拟cpu个数                    cpus:vcpu可运行于其上物理CPU列表                    memory-MBYTES:内存大小                    maxmem-MBYTES:可以使用的最大内存空间                    on_poweroff:指明关机时采取的action                        destroy,restart,preserve                    on_reboot="ACTION":指明"重启"DomU执行操作                    on_crash="ACTION":虚拟机意外崩溃时采取的action                    uuid:DomU的唯一标识                    disk=["DISK_SPEC_STRING","DISK_SPEC_STRING",...]:指明磁盘设备,列表;                    vif=["NET_SPEC_STRING","NET_SPEC_STRING",...]:指明网络接口,列表;                    vfb=["VFB_SPEC_STRING","VFB_SPEC_STRING",...]:指明virtual frame buffer,列表;                    pci=["PCI_SPEC_STRING","PCI_SPEC_STRING",...]:pci设备的列表            PV模式专用指令:                kernel="PATHNAME":内核文件路径,此路径为Dom0中路径                    ramdisk="PATHNAME":为kernel指定内核提供的ramdisk文件路径                    root="STRING":指明根文件系统                    extra="STRING":额外传递给内核引导的参数                    bootloader="PROGRAM":如果DomU使用自己的kernel及ramdisk,此时需要一个Dom0钟的应用程序来实现其bootloader功能;    磁盘参数指定方式:                官方文档:http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt                    [,[,[,[]]]]                        表示磁盘映像文件或设备文件路径:/images/xen/linux.img, /dev/myvg/linux                            表示磁盘格式,如果映像文件,有多重格式,例如raw,qcow,qcow2                            vdev:此设备在DomU被识别为硬件设备类型,支持hd[x],xvd[x],sd[x]                            access:访问权限                            ro,r:只读                                    rw,w:读写                            disk=["/images/xen/linux.img,raw,xvda,rw",...]                    使用qemu-img管理磁盘映像:                        create [-f fmt] [-o options] filename [size]                            可创建sparse格式的磁盘映像文件示例:
            创建一个pv格式的vm:                    (1) 准备磁盘映像文件                            qemu-img create -f raw -o size=2G /images/xen/busybox.img                                mke2fs -t ext /images/xen/busybox.img                        (2)根文件系统                            编译busybox,并复制到busybox.img映像中                                mout -o /images/xen/busybox.img /mnt                                cp -a $BUSYBOX/_install/ /mnt                                mkdir /mnt/{proc,sys,dev,var}                        (3) 提供配置DomU配置文件*                            name = "busybox-001"                                kernel = "/boot/vmlinuz"                                ramdisk = "/boot/initramfs.img"                                extra = "selinux=0 init=/bin/sh"                                memory = 256                                vcpus = 2                                disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]                                root = "/dev/xvda ro"                        (4) 启动实例:                            xl [-v] create  -n                                xl create  -c                                Ctrl + ]
            如何配置网络接口:                vif = [ '', '',...]                    vifspec: [=|,]                    常用的key:                        mac=: mac地址,要以00:16:3e开头                            bridge=: 指定此网络接口在Dom0被关联至那个桥上                            model=: rt8139、e1000;                            vifname=: 接口名称,在Domu0中显示的名称                            script=: 执行的脚本                            ip=: 指定ip地址,会注入到DomU中                            rate=: 指明设备传输速率,通常为"#UNIT/s"格式                                UNIT: GB, MB, KB, B for bytes,                                              Gb, Mb, Kb, b for bits,

注意:内核版本降至3.7.4,Sources/6.x86_64/xen4.1

网络接口启用:
vif = [ 'bridge=xenbr0', ]

xl的其他常用命令:
shutdown: 关机
reboot: 重启
pause: 暂停
unpause: 解除暂停
console: 连接控制台
save: 将DomuU内存中的数据转存指定的磁盘文件中;
Usage: xl [-vf] save [options] []
restore: 从指定的磁盘文件中恢复DomU内存数据
Usage: xl [-vf] restore [options] []

vcpu-list
vcpu-pin
vcpu-set
info: 当前xen hypervisor的摘要信息
domid
domname
top: 查看domain资源占用排序状态命令
network-list: 查看指定域使用的网络及接口
network-attach
network-detach

block-list: 查看指定域使用的块设备的列表;
block-attach
block-detach

uptime: 运行时长

使用DomU自有kernel来运行启动运行DomU:
制作磁盘映像文件:
losetup - set up and control loop devices
losetup -a: 显示所有已用的loop设备相关信息
losetup -f: 显示第一个空闲的loop设备文件

使用xl命令进行创建虚拟机并完成CentOS 6.6的系统安装
(1) 创建磁盘映像文件
(2) 获取安装指定版本的系统所需要kernel及initrd文件
(3) 创建DomU配置文件,示例如下:
name = "centos-001"
kernel = "/images/kernel/vmlinuz"
ramdisk = "/images/kernel/initrd.img"
extra = "ks=http://172.16.100.10/ks_config/CentOS-6.6-ks.cfg"
memory = 512
vcpus = 2
vif = [ 'bridge=xenbr0' ]
disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
(4) 安装完成后,创建虚拟机的配置文件需要作出修改;
name = "centos-001"
bootloader = "/usr/bin/pygrub"
memory = 512
vcpus = 2
vif = [ 'bridge=xenbr0' ]

启动图形窗口:
在创建虚拟机的配置文件中定义vfb
(1) vfb = [ 'sdl=1' ]
(2) vnc
(a) yum install tigervnc
(b) vfb = [ 'vnc=1' ]
vnc监听的端口为5900,相应的DISPLAYNUM为0

使用Dom0中物理磁盘分区为DomU提供存储空间:

使用libvirt实现xen虚拟机管理;
yum install libvirt libvirt-damon-xen virt-manager python-virtinst libvirt-client
service libvirtd start
virt-manager, virsh, virt-install

实验环境:
操作系统:centos6.6
内核版本:2.6.32-504.el6.x86_64
IP地址:172.16.100.6
CPU:4核心
内存:2G

在VMware Workstation操作需要开启cpu虚拟化:

[root@xen ~]# hostnamexen.smoke.com
[root@xen ~]# vim /etc/sysconfig/networkNETWORKING=yesHOSTNAME=xen.smoke.com
[root@xen ~]# vim /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.100.6    xen.com xen.smoke.com
[root@xen ~]# uname -r2.6.32-504.el6.x86_64
我这里使用http://archive.kernel.org/centos-vault/6.6/xen4/x86_64/Packages/ yum源安装[root@xen ~]# vim /etc/yum.repos.d/xen4.repo[xen4centos]name=Xen4 for CentOS 6baseurl=http://archive.kernel.org/centos-vault/6.6/xen4/x86_64/gpgcheck=0gpgkey=http://archive.kernel.org/centos-vault/RPM-GPG-KEY-CentOS-6repo_gpgcheck=0enabled=1[root@xen ~]# yum clan all[root@xen ~]# yum makecache

[root@localhost ~]# yum -y install xen

[root@xen ~]# vim /etc/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-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (3.18.17-13.el6.x86_64)        root (hd0,0)        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.18.17-13.el6.x86_64 ro root=UUID=cf43ec31-f59f-423f-aa0b-d091c18b2fa4 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.18.17-13.el6.x86_64.imgtitle CentOS 6 (2.6.32-504.el6.x86_64)        root (hd0,0)        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=cf43ec31-f59f-423f-aa0b-d091c18b2fa4 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        initrd /initramfs-2.6.32-504.el6.x86_64.img

[root@xen xen]# shutdown -r now

重新启动操作系统,启动新内核:

现在运行在虚拟化环境中,看到的内核虽然是3.18.17-13.el6.x86_64,但是看到的是Dom0中的内核;

[root@xen ~]# uname -r3.18.17-13.el6.x86_64

查看运行的虚拟机,r---- r代表运行状态;

[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1024     2     r-----      69.1

xm命令以及废弃,但是仍然是支持的,需要启动xend服务才可以使用;

[root@xen ~]# xm listWARNING: xend/xm is deprecated.Error: Unable to connect to xend: No such file or directory. Is xend running?

[root@xen ~]# service xend start

[root@xen ~]# xm listWARNING: xend/xm is deprecated.Name                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1024     2     r-----     81.6
[root@xen ~]# service xend stop[root@xen ~]# mkdir -p /images/xen/

选项-o ?可以查看支持的格式;

[root@xen ~]# qemu-img create -f raw -o ? /images/xen/busybox.imgSupported options:size             Virtual disk sizepreallocation    Preallocation mode (allowed values: off, falloc, full)[root@xen ~]# qemu-img create -f raw -o size=2G /images/xen/busybox.img

查看为0G,最大可以为2G,稀疏格式的磁盘映像文件;

[root@xen ~]# du -sh /images/xen/busybox.img0       /images/xen/busybox.img
[root@xen ~]# rm -rf /images/xen/busybox.img[root@xen ~]# qemu-img create -f raw /images/xen/busybox.img 2G[root@xen ~]# du -sh /images/xen/busybox.img0       /images/xen/busybox.img

不分区将整个磁盘当做一个分区使用;
[root@xen ~]# mke2fs -t ext2 /images/xen/busybox.img

格式化以后就会部署上元数据,这个磁盘没有分区表;

[root@xen ~]# du -sh /images/xen/busybox.img33M     /images/xen/busybox.img

本地回环设备挂载使用-o loop选项;
[root@xen ~]# mount -o loop /images/xen/busybox.img /mnt

[root@xen ~]# ls /mnt/lost+found

[root@xen ~]# yum -y groupinstall "Development Tools" "Server Platform Development"

下载busybox,并上传,官网:https://busybox.net/downloads/ 这里使用busybox-1.22.1

[root@xen ~]# tar xf busybox-1.22.1.tar.bz2[root@xen ~]# cd busybox-1.22.1

将busybox编译静态格式,不让它依赖于其他库,静态格式需要安装glibc-static;

[root@xen busybox-1.22.1]# yum -y install glibc-static[root@xen busybox-1.22.1]# make menuconfigBusybox Settings  --->Build Options  --->[*] Build BusyBox as a static binary (no shared libs)    

不使用共享的额外库文件;

[root@xen busybox-1.22.1]# make[root@xen busybox-1.22.1]# make install
[root@xen busybox-1.22.1]# ls _install/bin  linuxrc  sbin  usr[root@xen busybox-1.22.1]# cp -a _install/* /mnt/[root@xen busybox-1.22.1]# ls /mnt/bin  linuxrc  lost+found  sbin  usr[root@xen busybox-1.22.1]# cd /mnt/[root@xen mnt]# mkdir proc sys dev etc var boot home
[root@xen ~]# chroot /mnt/ /bin/sh/ # lsbin         dev         home        lost+found  sbin        usrboot        etc         linuxrc     proc        sys         var/ # exit
[root@xen ~]# cd /boot/[root@xen boot]# ln -s vmlinuz-2.6.32-504.el6.x86_64 vmlinuz[root@xen boot]# ln -s initramfs-2.6.32-504.el6.x86_64.img initramfs.img
[root@xen boot]# cd /etc/xen/[root@xen xen]# cp xlexample.pvlinux busybox[root@xen xen]# vim busyboxname = "busybox-001"kernel = "/boot/vmlinuz"    pv模式可以使用Dom0中的内核ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2#vif = [ '' ]disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]root = "/dev/xvda ro"

测试虚拟机是否可以跑起来;

[root@xen xen]# xl -v create busybox -nParsing config from busybox{    "domid": null,    "config": {        "c_info": {            "type": "pv",            "hap": "",            "oos": "",            "ssidref": 0,            "name": "busybox-001",            "uuid": "10e85dda-f56e-45ec-9b45-d7593cd53d60",            "xsdata": {            },            "platformdata": {            },            "poolid": 0,            "run_hotplug_scripts": "True",            "pvh": "",            "driver_domain": ""        },        "b_info": {            "max_vcpus": 2,            "avail_vcpus": [                0,                1            ],            "cpumap": [            ],            "nodemap": [            ],            "numa_placement": "",            "tsc_mode": "default",            "max_memkb": 262144,            "target_memkb": 262144,            "video_memkb": -1,            "shadow_memkb": 4096,            "rtc_timeoffset": 0,            "exec_ssidref": 0,            "localtime": "",            "disable_migrate": "",            "cpuid": [            ],            "blkdev_start": null,            "device_model_version": "unknown",            "device_model_stubdomain": "",            "device_model": null,            "device_model_ssidref": 0,            "extra": [            ],            "extra_pv": [            ],            "extra_hvm": [            ],            "sched_params": {                "sched": "unknown",                "weight": -1,                "cap": -1,                "period": -1,                "slice": -1,                "latency": -1,                "extratime": -1            },            "ioports": [            ],            "irqs": [            ],            "iomem": [            ],            "claim_mode": "True",            "event_channels": 0,            "u": {                "kernel": "/boot/vmlinuz",                "slack_memkb": -1,                "bootloader": null,                "bootloader_args": [                ],                "cmdline": "root=/dev/xvda ro selinux=0 init=/bin/sh",                "ramdisk": "/boot/initramfs.img",                "e820_host": ""            }        },        "disks": [            {                "backend_domid": 0,                "backend_domname": null,                "pdev_path": "/images/xen/busybox.img",                "vdev": "xvda",                "backend": "unknown",                "format": "raw",                "script": null,                "removable": 0,                "readwrite": 1,                "is_cdrom": 0            }        ],        "nics": [        ],        "pcidevs": [        ],        "vfbs": [        ],        "vkbs": [        ],        "vtpms": [        ],        "on_poweroff": "destroy",        "on_reboot": "restart",        "on_watchdog": "destroy",        "on_crash": "destroy"    }}
[root@xen xen]# xl -v create busybox[root@xen xen]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1024     2     r-----    2292.9busybox-001                                  4   256     2     -b----       1.5
[root@xen xen]# xl console busybox-001/ # lsbin         dev         home        lost+found  sbin        usrboot        etc         linuxrc     proc        sys         var/ # [root@xen xen]#    (退出ctrl+])
[root@xen xen]# grep -v "^#" busybox | grep -v "^$"name = "busybox-001"kernel = "/boot/vmlinuz"ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]root = "/dev/xvda ro"
关闭虚拟机;[root@xen xen]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1024     2     r-----    2302.5busybox-001                                  5   256     2     -b----       2.7[root@xen xen]# xl destroy busybox-001DEBUG libxl__device_destroy_tapdisk 105 type=aio:/images/xen/busybox.img disk=:/images/xen/busybox.img
[root@xen xen]# xl create /etc/xen/busybox -c/ #/ # [root@xen xen]#
[root@xen xen]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:11:21:56          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe11:2156/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:17604 errors:0 dropped:0 overruns:0 frame:0          TX packets:17754 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:3443094 (3.2 MiB)  TX bytes:1829722 (1.7 MiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:11:21:60          inet addr:192.168.190.128  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe11:2160/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:277920 errors:0 dropped:0 overruns:0 frame:0          TX packets:54903 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:378101310 (360.5 MiB)  TX bytes:3362705 (3.2 MiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@xen xen]# cd /etc/sysconfig/network-scripts/[root@xen network-scripts]# cp ifcfg-eth0 ifcfg-xenbr0[root@xen network-scripts]# vim ifcfg-eth0DEVICE=eth0HWADDR=00:0C:29:11:21:56TYPE=EthernetUUID=f343369c-4aa9-4975-81b3-3f38f4c56ef0ONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticBRIDGE=xenbr0
[root@xen network-scripts]# vim ifcfg-xenbr0DEVICE=xenbr0TYPE=BridgeONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticIPADDR=172.16.100.6NETMASK=255.255.255.0
[root@xen network-scripts]# chkconfig --list NetworkManager    确认关闭NetworkManager服务[root@xen network-scripts]# service network restart

默认在centos6.6的bridge-utils工具与3.18的内核可能有冲突导致启动桥设备以后内核就会终止,内核就会死机;只能升级bridge-utils工具;

使用其他版本内核解决:

[root@xen ~]# yum list all kernel*已加载插件:fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirror.bit.edu.cn已安装的软件包kernel.x86_64                    2.6.32-504.el6          @anaconda-CentOS-201410241409.x86_64/6.6kernel.x86_64                    3.18.17-13.el6          @xen4centoskernel-devel.x86_64              2.6.32-754.6.3.el6      @updateskernel-firmware.noarch           3.18.17-13.el6          @xen4centoskernel-headers.x86_64            2.6.32-754.6.3.el6      @updates可安装的软件包kernel-abi-whitelists.noarch     2.6.32-754.6.3.el6      updateskernel-debug.x86_64              2.6.32-754.6.3.el6      updateskernel-debug-devel.i686          2.6.32-754.6.3.el6      updateskernel-debug-devel.x86_64        2.6.32-754.6.3.el6      updateskernel-devel.x86_64              3.18.17-13.el6          xen4centoskernel-doc.noarch                3.18.17-13.el6          xen4centoskernel-headers.x86_64            3.18.17-13.el6          xen4centos

kernel一定不要做升级,要做安装,因为升级以后kernel不能使用将会导致系统无法启动,即便有n个版本kernel也一定要安装,而非升级,安装kernel还会安装kernel-firmware,它们是相匹配的,否则会导致内核版本无法实用;
[root@xen ~]# yum -y install kernel-3.10.68 kernel-firmware-3.10.68

[root@xen xen]# vim /etc/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-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (3.10.68-11.el6.centos.alt.x86_64)        root (hd0,0)        kernel /xen.gz dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.10.68-11.el6.centos.alt.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.10.68-11.el6.centos.alt.x86_64.imgtitle CentOS (3.18.17-13.el6.x86_64)        root (hd0,0)        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.18.17-13.el6.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.18.17-13.el6.x86_64.imgtitle CentOS 6 (2.6.32-504.el6.x86_64)        root (hd0,0)        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        initrd /initramfs-2.6.32-504.el6.x86_64.img

[root@xen xen]# shutdown -r now

重启后,使用新内核还是会死机,用原来内核启动;
下载bridge-utils-1.5-2.el6.x86_64.rpm、kernel-xen-3.7.4-1.el6xen.x86_64.rpm、kernel-xen-firmware-3.7.4-1.el6xen.x86_64.rpm、kernel-xen-release-6-4.noarch.rpm包;

[root@xen ~]# lsanaconda-ks.cfg                    install.logbridge-utils-1.5-2.el6.x86_64.rpm  install.log.syslogbusybox-1.22.1                     kernel-xen-3.7.4-1.el6xen.x86_64.rpmbusybox-1.22.1.tar.bz2             kernel-xen-firmware-3.7.4-1.el6xen.x86_64.rpmkernel-xen-release-6-4.noarch.rpm

尝试升级本地的bridge-utils;

[root@xen ~]# rpm -Uvh bridge-utils-1.5-2.el6.x86_64.rpm[root@xen ~]# rpm -q bridge-utilsbridge-utils-1.5-2.el6.x86_64

[root@xen ~]# vim /etc/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-[generic-]version.img#boot=/dev/sdadefault=1     (更改默认启动内核为3.18.17-13.el6.x86_64)timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (3.10.68-11.el6.centos.alt.x86_64)        root (hd0,0)        kernel /xen.gz dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.10.68-11.el6.centos.alt.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.10.68-11.el6.centos.alt.x86_64.imgtitle CentOS (3.18.17-13.el6.x86_64)        root (hd0,0)        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.18.17-13.el6.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.18.17-13.el6.x86_64.imgtitle CentOS 6 (2.6.32-504.el6.x86_64)        root (hd0,0)        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=511ef4c6-c062-4fde-9ccc-984f0674e1b2 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        initrd /initramfs-2.6.32-504.el6.x86_64.img

[root@xen ~]# shutdown -r now

[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:44 errors:0 dropped:0 overruns:0 frame:0          TX packets:66 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:7171 (7.0 KiB)  TX bytes:9072 (8.8 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:13 errors:0 dropped:0 overruns:0 frame:0          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:1270 (1.2 KiB)  TX bytes:1344 (1.3 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@xen ~]# ifconfig eth0 0[root@xen ~]# brctl addbr xenbr0[root@xen ~]# brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.000000000000       no[root@xen ~]# brctl addif xenbr0 eth0[root@xen ~]# brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.000c2976d258       no              eth0[root@xen ~]# ifconfig xenbr0 172.16.100.6/24 up

升级bridge-utils后创建桥还是死机,降低内核;
[root@xen ~]# rpm -ivh kernel-xen-3.7.4-1.el6xen.x86_64.rpm kernel-xen-firmware-3.7.4-1.el6xen.x86_64.rpm kernel-xen-release-6-4.noarch.rpm --nodeps --force

[root@xen ~]# vim /etc/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-[generic-]version.img#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (3.7.4-1.el6xen.x86_64)        root (hd0,0)        kernel /xen.gz dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.7.4-1.el6xen.x86_64 ro root=UUID=657e9736-a990-4ad8-88c0-76a2f65da127 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.7.4-1.el6xen.x86_64.imgtitle CentOS (3.10.68-11.el6.centos.alt.x86_64)        root (hd0,0)        kernel /xen.gz dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.10.68-11.el6.centos.alt.x86_64 ro root=UUID=657e9736-a990-4ad8-88c0-76a2f65da127 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.10.68-11.el6.centos.alt.x86_64.imgtitle CentOS (3.18.17-13.el6.x86_64)        root (hd0,0)        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin        module /vmlinuz-3.18.17-13.el6.x86_64 ro root=UUID=657e9736-a990-4ad8-88c0-76a2f65da127 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        module /initramfs-3.18.17-13.el6.x86_64.imgtitle CentOS 6 (2.6.32-504.el6.x86_64)        root (hd0,0)        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=657e9736-a990-4ad8-88c0-76a2f65da127 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet        initrd /initramfs-2.6.32-504.el6.x86_64.img

[root@xen ~]# shutdown -r now

[root@xen ~]# uname -r3.7.4-1.el6xen.x86_64
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1895     2     r-----      34.8
[root@xen ~]# ifconfig eth0 0[root@xen ~]# brctl addbr xenbr0[root@xen ~]# brctl addif xenbr0 eth0[root@xen ~]# ifconfig xenbr0 172.16.100.6/24 up
[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:10 errors:0 dropped:0 overruns:0 frame:0          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:600 (600.0 b)  TX bytes:1930 (1.8 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:283 errors:0 dropped:0 overruns:0 frame:0          TX packets:172 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:23729 (23.1 KiB)  TX bytes:17208 (16.8 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
[root@xen ~]# cd /etc/sysconfig/network-scripts/[root@xen network-scripts]# vi ifcfg-eth0DEVICE=eth0HWADDR=00:0C:29:76:D2:58TYPE=EthernetUUID=01e1be41-1948-41c6-8f29-9834f8c5586aONBOOT=yesNM_CONTROLLED=noBOOTPROTO=staticBRIDGE=xenbr0
[root@xen network-scripts]# vi ifcfg-xenbr0DEVICE=xenbr0TYPE=BridgeBOOTPROTO=staticONBOOT=yesNM_CONTROLLED=noIPADDR=172.16.100.6NETMASK=255.255.255.0

[root@xen network-scripts]# service network restart

[root@xen ~]# xl create /etc/xen/busybox -c/ # ifconfig -alo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)/ # exit
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1608     2     r-----      46.7
[root@xen ~]# vim /etc/xen/busyboxname = "busybox-001"kernel = "/boot/vmlinuz"ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr0' ]vif = [ 'bridge=xenbr1' ]disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]root = "/dev/xvda ro"
[root@xen ~]# xl create /etc/xen/busybox -c/ # ifconfig -a    (还是没有网卡,因为没有网卡驱动)lo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)/ # uname -r2.6.32-504.el6.x86_64/ # exit

[root@xen ~]# mount -o loop /images/xen/busybox.img /mnt/

虚拟机内核实用的是2.6.32-504.el6.x86_64,因此在 /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/net/目录找网卡驱动;

[root@xen ~]# cd /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/net/[root@xen net]# mkdir /mnt/lib/modules -pv

查看depends选项有没有依赖其他模块,如果有要移过去;

[root@xen net]# modinfo xen-netfront.kofilename:       xen-netfront.koalias:          xennetalias:          xen:viflicense:        GPLdescription:    Xen virtual network device frontendsrcversion:     5C6FC78BC365D9AF8135201depends:vermagic:       2.6.32-504.el6.x86_64 SMP mod_unload modversions
[root@xen net]# cp xen-netfront.ko  /mnt/lib/modules/[root@xen net]# sync[root@xen ~]# umount /mnt
[root@xen ~]# xl create /etc/xen/busybox -c/ # ifconfig -alo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)/ # insmod /lib/modules/xen-netfront.koInitialising Xen virtual ethernet driver./ # ifconfig -aeth0      Link encap:Ethernet  HWaddr 00:16:3E:30:08:CB          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)          Interrupt:18lo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

在网卡半虚拟化清空下Dom0添加网卡vif3.0,3.0代表Dom ID为3的dom上第0块网卡的后半段;

[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:216 errors:0 dropped:0 overruns:0 frame:0          TX packets:107 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:34587 (33.7 KiB)  TX bytes:26570 (25.9 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:2461 errors:0 dropped:0 overruns:0 frame:0          TX packets:1281 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:181386 (177.1 KiB)  TX bytes:125444 (122.5 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)vif3.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:0 (0.0 b)  TX bytes:1434 (1.4 KiB)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:98 errors:0 dropped:0 overruns:0 frame:0          TX packets:77 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:11710 (11.4 KiB)  TX bytes:19076 (18.6 KiB)
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1608     2     r-----      57.3busybox-001                                  3   256     2     -b----       1.9

把虚拟机关闭,vif3.0接口没有了,会自动被删除;

/ # exit[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:8736 errors:0 dropped:0 overruns:0 frame:0          TX packets:195 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:1431302 (1.3 MiB)  TX bytes:33472 (32.6 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:38504 errors:0 dropped:0 overruns:0 frame:0          TX packets:1717 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2505549 (2.3 MiB)  TX bytes:179962 (175.7 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:3253 errors:0 dropped:0 overruns:0 frame:0          TX packets:156 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:321520 (313.9 KiB)  TX bytes:23874 (23.3 KiB)

[root@xen ~]# xl create /etc/xen/busybox -c

虚拟机ID号变为4;

[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1608     2     r-----     367.6busybox-001                                  4   256     2     -b----       1.2
[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:8826 errors:0 dropped:0 overruns:0 frame:0          TX packets:258 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:1439226 (1.3 MiB)  TX bytes:42620 (41.6 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:38632 errors:0 dropped:0 overruns:0 frame:0          TX packets:1771 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2514511 (2.3 MiB)  TX bytes:185356 (181.0 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)vif4.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          UP BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:3339 errors:0 dropped:0 overruns:0 frame:0          TX packets:219 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:327380 (319.7 KiB)  TX bytes:32980 (32.2 KiB)
[root@xen ~]# brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.000c2976d258       no              eth0                                                        vif4.0
/ # insmod /lib/modules/xen-netfront.koInitialising Xen virtual ethernet driver./ # ifconfig -aeth0      Link encap:Ethernet  HWaddr 00:16:3E:6B:31:0A          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)          Interrupt:18lo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # ifconfig eth0 172.16.100.21 up/ # ping 172.16.100.254PING 172.16.100.254 (172.16.100.254): 56 data bytes64 bytes from 172.16.100.254: seq=0 ttl=64 time=1.546 ms64 bytes from 172.16.100.254: seq=1 ttl=64 time=0.652 ms64 bytes from 172.16.100.254: seq=2 ttl=64 time=0.939 ms^C64 bytes from 172.16.100.254: seq=3 ttl=64 time=1.663 ms64 bytes from 172.16.100.254: seq=4 ttl=64 time=1.020 ms^C64 bytes from 172.16.100.254: seq=5 ttl=64 time=0.867 ms64 bytes from 172.16.100.254: seq=6 ttl=64 time=1.017 ms64 bytes from 172.16.100.254: seq=7 ttl=64 time=0.260 ms
[root@xen ~]# xl destroy busybox-001[root@xen ~]# cp /images/xen/busybox.img /images/xen/busybox2.img[root@xen ~]# du -sh /images/xen/busybox2.img4.0M    /images/xen/busybox2.img[root@xen ~]# cp /etc/xen/busybox /etc/xen/busybox2
[root@xen xen]# vim /etc/xen/busybox2name = "busybox-002"kernel = "/boot/vmlinuz"ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/busybox2.img,raw,xvda,rw' ]root = "/dev/xvda ro"
[root@xen ~]# brctl addbr xenbr1[root@xen ~]# brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.000c2976d258       no              eth0xenbr1          8000.000000000000       no[root@xen ~]# ifconfig xenbr1 up
[root@xen ~]# vim /etc/xen/busyboxvif = [ 'bridge=xenbr1' ][root@xen ~]# vim /etc/xen/busybox2vif = [ 'bridge=xenbr1' ]
[root@xen ~]# xl create /etc/xen/busybox2Parsing config from /etc/xen/busybox2[root@xen ~]# xl create /etc/xen/busyboxParsing config from /etc/xen/busybox
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     403.2busybox-002                                  6   256     2     -b----       1.3busybox-001                                  8   256     2     -b----       1.0
[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:12159 errors:0 dropped:0 overruns:0 frame:0          TX packets:3134 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:1777571 (1.6 MiB)  TX bytes:315554 (308.1 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:41158 errors:0 dropped:0 overruns:0 frame:0          TX packets:2489 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2689974 (2.5 MiB)  TX bytes:253078 (247.1 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)vif6.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          UP BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)vif7.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          UP BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:3767 errors:0 dropped:0 overruns:0 frame:0          TX packets:431 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:358705 (350.2 KiB)  TX bytes:51636 (50.4 KiB)xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          inet6 addr: fe80::807b:9dff:fe55:b07f/64 Scope:Link          UP BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
[root@xen ~]# brctl showbridge name     bridge id               STP enabled     interfacesxenbr0          8000.000c2976d258       no              eth0xenbr1          8000.feffffffffff       no              vif6.0                                                        vif7.0
[root@xen ~]# xl console busybox-001/ # insmod /lib/modules/xen-netfront.koInitialising Xen virtual ethernet driver./ # ifconfig eth0 172.16.100.21 up/ # ifconfigeth0      Link encap:Ethernet  HWaddr 00:16:3E:49:F2:49          inet addr:172.16.100.21  Bcast:172.16.255.255  Mask:255.255.0.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:6 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:384 (384.0 B)  TX bytes:0 (0.0 B)          Interrupt:18
[root@xen ~]# ping 172.16.100.21PING 172.16.100.21 (172.16.100.21) 56(84) bytes of data.From 172.16.100.6 icmp_seq=1 Destination Host UnreachableFrom 172.16.100.6 icmp_seq=2 Destination Host UnreachableFrom 172.16.100.6 icmp_seq=3 Destination Host UnreachableFrom 172.16.100.6 icmp_seq=4 Destination Host Unreachable^C--- 172.16.100.21 ping statistics ---7 packets transmitted, 0 received, +4 errors, 100% packet loss, time 6639mspipe 4
/ # ifconfig eth0 10.0.11.1 up/ # ifconfigeth0      Link encap:Ethernet  HWaddr 00:16:3E:49:F2:49          inet addr:10.0.11.1  Bcast:10.255.255.255  Mask:255.0.0.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:6 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:384 (384.0 B)  TX bytes:0 (0.0 B)          Interrupt:18
[root@xen ~]# xl console busybox-002/ # insmod /lib/modules/xen-netfront.koInitialising Xen virtual ethernet driver./ # ifconfig eth0 10.0.11.2 up/ # ping 10.0.11.1PING 10.0.11.1 (10.0.11.1): 56 data bytes64 bytes from 10.0.11.1: seq=0 ttl=64 time=1.841 ms64 bytes from 10.0.11.1: seq=1 ttl=64 time=1.293 ms64 bytes from 10.0.11.1: seq=2 ttl=64 time=1.959 ms64 bytes from 10.0.11.1: seq=3 ttl=64 time=1.389 ms64 bytes from 10.0.11.1: seq=4 ttl=64 time=1.517 ms
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     408.0busybox-001                                  8   256     2     -b----       1.4busybox-002                                  9   256     2     -b----       1.4

关闭虚拟机,如果虚拟机有shutdown命令,但是这里使用busybox没有shutdown命令;

[root@xen ~]# xl shutdown busybox-002Shutting down domain 9[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     410.3busybox-001                                  8   256     2     -b----       1.7busybox-002                                  9   256     2     -b----       2.1

查看pci设备、暂停虚拟机、恢复暂停;

[root@xen ~]# xl pci-list busybox-002[root@xen ~]# xl pause busybox-002[root@xen ~]# xl unpause busybox-002

挂起虚拟机,从内存转存到磁盘文件;

[root@xen ~]# xl save busybox-002 /tmp/busybox-002.img /etc/xen/busybox2Saving to /tmp/busybox-002.img new xl format (info 0x0/0x0/1416)xc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536  100%[root@xen ~]# xl save busybox-001 /tmp/busybox-001.img  /etc/xen/busyboxSaving to /tmp/busybox-001.img new xl format (info 0x0/0x0/1415)xc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536  100%
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     418.0

恢复挂起的虚拟机,从磁盘文件恢复到内存;

[root@xen ~]# ls /tmp/ -hbusybox-001.img  busybox-002.img  yum.log[root@xen ~]# xl restore /etc/xen/busybox /tmp/busybox-001.imgLoading new save file /tmp/busybox-001.img (new xl fmt info 0x0/0x0/1415) Savefile contains xl domain configParsing config from /etc/xen/busyboxxc: Reloading memory pages: 65536/65536  100%
[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     420.4busybox-001                                 10   256     2     -b----       0.0
[root@xen ~]# xl vcpu-list busybox-001Name                                ID  VCPU   CPU State   Time(s) CPU Affinitybusybox-001                         10     0    3   -b-       0.2  allbusybox-001                         10     1    2   -b-       0.2  all

绑定vcpu到物理cpu核心;

root@xen ~]# xl vcpu-pin busybox-001 0 3[root@xen ~]# xl vcpu-list busybox-001Name                                ID  VCPU   CPU State   Time(s) CPU Affinitybusybox-001                         10     0    3   -b-       0.3  3busybox-001                         10     1    2   -b-       0.3  all

可以设置使用vcpu的个数,不能随便加,在启动虚拟机实例配置文件已经指定最大cpu个数为2个,只能少于最大cpu个数;

[root@xen ~]# xl vcpu-set busybox-001 4[root@xen ~]# xl vcpu-list busybox-001Name                                ID  VCPU   CPU State   Time(s) CPU Affinitybusybox-001                         10     0    3   -b-       0.3  3busybox-001                         10     1    2   -b-       0.3  all
[root@xen ~]# xl vcpu-set busybox-001 1[root@xen ~]# xl vcpu-list busybox-001Name                                ID  VCPU   CPU State   Time(s) CPU Affinitybusybox-001                         10     0    3   -b-       0.4  3busybox-001                         10     1    -   --p       0.3  all
[root@xen ~]# xl vcpu-set busybox-001 2[root@xen ~]# xl vcpu-list busybox-001Name                                ID  VCPU   CPU State   Time(s) CPU Affinitybusybox-001                         10     0    3   -b-       0.4  3busybox-001                         10     1    -   --p       0.3  all

查看xen hypervisor摘要信息;

[root@xen ~]# xl info busybox-001host                   : xen.smoke.comrelease                : 3.7.4-1.el6xen.x86_64version                : #1 SMP Wed Jan 23 15:52:51 EST 2013machine                : x86_64nr_cpus                : 4max_cpu_id             : 127nr_nodes               : 1cores_per_socket       : 2threads_per_core       : 1cpu_mhz                : 2493hw_caps                : 1f8bfbff:28100800:00000000:00007f00:f7ba2223:00000000:00000001:00000283virt_caps              : hvmtotal_memory           : 2047free_memory            : 413sharing_freed_memory   : 0sharing_used_memory    : 0outstanding_claims     : 0free_cpus              : 0xen_major              : 4xen_minor              : 4xen_extra              : .2-5.el6xen_version            : 4.4.2-5.el6xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64xen_scheduler          : creditxen_pagesize           : 4096platform_params        : virt_start=0xffff800000000000xen_changeset          : Thu Apr 23 15:06:13 2015 +0100 git:a93c3fa-dirtyxen_commandline        : dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pincc_compiler            : gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)cc_compile_by          : mockbuildcc_compile_domain      : centos.orgcc_compile_date        : Mon Jul 27 12:16:07 UTC 2015xend_config_format     : 4
[root@xen ~]# xl domid busybox-00110[root@xen ~]# xl domname 10busybox-001
[root@xen ~]# xl dmesg busybox-001 Xen 4.4.2-5.el6(XEN) Xen version 4.4.2-5.el6 (mockbuild@centos.org) (gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)) debug=n Mon Jul 27 12:16:07 UTC 2015(XEN) Latest ChangeSet: Thu Apr 23 15:06:13 2015 +0100 git:a93c3fa-dirty(XEN) Bootloader: GNU GRUB 0.97(XEN) Command line: dom0_men=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin(XEN) Video information:(XEN)  VGA is text mode 80x25, font 8x16(XEN) Disc information:(XEN)  Found 1 MBR signatures(XEN)  Found 1 EDD information structures(XEN) Xen-e820 RAM map:(XEN)  0000000000000000 - 000000000009ec00 (usable)(XEN)  000000000009ec00 - 00000000000a0000 (reserved)(XEN)  00000000000dc000 - 0000000000100000 (reserved)(XEN)  0000000000100000 - 000000007fee0000 (usable)(XEN)  000000007fee0000 - 000000007feff000 (ACPI data)(XEN)  000000007feff000 - 000000007ff00000 (ACPI NVS)(XEN)  000000007ff00000 - 0000000080000000 (usable)(XEN)  00000000f0000000 - 00000000f8000000 (reserved)(XEN)  00000000fec00000 - 00000000fec10000 (reserved)(XEN)  00000000fee00000 - 00000000fee01000 (reserved)(XEN)  00000000fffe0000 - 0000000100000000 (reserved)(XEN) System RAM: 2047MB (2096632kB)(XEN) ACPI: RSDP 000F6A10, 0024 (r2 PTLTD )(XEN) ACPI: XSDT 7FEE965B, 005C (r1 INTEL  440BX     6040000 VMW   1324272)(XEN) ACPI: FACP 7FEFEE73, 00F4 (r4 INTEL  440BX     6040000 PTL     F4240)(XEN) ACPI: DSDT 7FEEB345, 13B2E (r1 PTLTD  Custom    6040000 MSFT  3000001)(XEN) ACPI: FACS 7FEFFFC0, 0040(XEN) ACPI: BOOT 7FEEB31D, 0028 (r1 PTLTD  $SBFTBL$  6040000  LTP        1)(XEN) ACPI: APIC 7FEEA8BD, 0742 (r1 PTLTD        APIC    6040000  LTP        0)(XEN) ACPI: MCFG 7FEEA881, 003C (r1 PTLTD  $PCITBL$  6040000  LTP        1)(XEN) ACPI: SRAT 7FEE9757, 08A8 (r2 VMWARE MEMPLUG   6040000 VMW         1)(XEN) ACPI: HPET 7FEE971F, 0038 (r1 VMWARE VMW HPET  6040000 VMW         1)(XEN) ACPI: WAET 7FEE96F7, 0028 (r1 VMWARE VMW WAET  6040000 VMW         1)(XEN) Domain heap initialised(XEN) Processor #0 7:10 APIC version 21(XEN) Processor #1 7:10 APIC version 21(XEN) Processor #2 7:10 APIC version 21(XEN) Processor #3 7:10 APIC version 21(XEN) IOAPIC[0]: apic_id 128, version 32, address 0xfec00000, GSI 0-23(XEN) Enabling APIC mode:  Phys.  Using 1 I/O APICs(XEN) Not enabling x2APIC: depends on iommu_supports_eim.(XEN) Using scheduler: SMP Credit Scheduler (credit)(XEN) Detected 2493.508 MHz processor.(XEN) Initing memory sharing.(XEN) xstate_init: using cntxt_size: 0x340 and states: 0x7(XEN) I/O virtualisation disabled(XEN) ENABLING IO-APIC IRQs(XEN)  -> Using new ACK method(XEN) Platform timer is 14.318MHz HPET(XEN) Allocated console ring of 16 KiB.(XEN) VMX: Supported advanced features:(XEN)  - APIC TPR shadow(XEN)  - Extended Page Tables (EPT)(XEN)  - Virtual-Processor Identifiers (VPID)(XEN)  - Virtual NMI(XEN)  - MSR direct-access bitmap(XEN)  - Unrestricted Guest(XEN) HVM: ASIDs enabled.(XEN) HVM: VMX enabled(XEN) HVM: Hardware Assisted Paging (HAP) detected(XEN) HVM: HAP page sizes: 4kB, 2MB(XEN) Brought up 4 CPUs(XEN) *** LOADING DOMAIN 0 ***(XEN)  Xen  kernel: 64-bit, lsb, compat32(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1d87000(XEN) PHYSICAL MEMORY ARRANGEMENT:(XEN)  Dom0 alloc.:   0000000074000000->0000000078000000 (459256 pages to be allocated)(XEN)  Init. ramdisk: 000000007d43d000->000000007f9ff400(XEN) VIRTUAL MEMORY ARRANGEMENT:(XEN)  Loaded kernel: ffffffff81000000->ffffffff81d87000(XEN)  Init. ramdisk: ffffffff81d87000->ffffffff84349400(XEN)  Phys-Mach map: ffffffff8434a000->ffffffff846fddd8(XEN)  Start info:    ffffffff846fe000->ffffffff846fe4b4(XEN)  Page tables:   ffffffff846ff000->ffffffff84726000(XEN)  Boot stack:    ffffffff84726000->ffffffff84727000(XEN)  TOTAL:         ffffffff80000000->ffffffff84800000(XEN)  ENTRY ADDRESS: ffffffff81745210(XEN) Dom0 has maximum 2 VCPUs(XEN) Scrubbing Free RAM: .done.(XEN) Initial low memory virq threshold set at 0x4000 pages.(XEN) Std. Loglevel: Errors and warnings(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)(XEN) Xen is relinquishing VGA console.(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)(XEN) Freed 284kB init memory.

[root@xen ~]# xl top

显示网络接口、网络接口热插拔;

[root@xen ~]# xl network-list busybox-001Idx BE Mac Addr.         handle state evt-ch   tx-/rx-ring-ref BE-path0   0  00:16:3e:4e:c6:cb     0     4     14   769/768         /local/domain/0/backend/vif/10/0[root@xen ~]# xl network-attach busybox-001 bridge=xenbr0[root@xen ~]# xl network-list busybox-001Idx BE Mac Addr.         handle state evt-ch   tx-/rx-ring-ref BE-path0   0  00:16:3e:4e:c6:cb     0     4     14   769/768         /local/domain/0/backend/vif/10/01   0  00:16:3e:23:d4:a1     1     4      8  1280/1281        /local/domain/0/backend/vif/10/1
[root@xen ~]# xl console busybox-001/ # ifconfig -aeth0      Link encap:Ethernet  HWaddr 00:16:3E:4E:C6:CB          inet addr:10.0.11.1  Bcast:10.255.255.255  Mask:255.0.0.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:769 errors:0 dropped:0 overruns:0 frame:0          TX packets:758 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:62228 (60.7 KiB)  TX bytes:72100 (70.4 KiB)          Interrupt:18eth2      Link encap:Ethernet  HWaddr 00:16:3E:23:D4:A1          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)          Interrupt:26lo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
[root@xen ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:15541 errors:0 dropped:0 overruns:0 frame:0          TX packets:5753 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2063044 (1.9 MiB)  TX bytes:620056 (605.5 KiB)eth2      Link encap:Ethernet  HWaddr 00:0C:29:76:D2:62          inet addr:192.168.190.130  Bcast:192.168.190.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d262/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:42664 errors:0 dropped:0 overruns:0 frame:0          TX packets:2634 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2789515 (2.6 MiB)  TX bytes:266230 (259.9 KiB)lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:7 errors:0 dropped:0 overruns:0 frame:0          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:784 (784.0 b)  TX bytes:784 (784.0 b)vif10.0   Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:1 errors:0 dropped:0 overruns:0 frame:0          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:28 (28.0 b)  TX bytes:468 (468.0 b)vif10.1   Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:32          RX bytes:0 (0.0 b)  TX bytes:618 (618.0 b)xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:76:D2:58          inet addr:172.16.100.6  Bcast:172.16.100.255  Mask:255.255.255.0          inet6 addr: fe80::20c:29ff:fe76:d258/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:6942 errors:0 dropped:0 overruns:0 frame:0          TX packets:3046 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:559406 (546.2 KiB)  TX bytes:337324 (329.4 KiB)xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF          inet6 addr: fe80::807b:9dff:fe55:b07f/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:2 errors:0 dropped:0 overruns:0 frame:0          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:56 (56.0 b)  TX bytes:468 (468.0 b)
[root@xen ~]# xl network-list busybox-001Idx BE Mac Addr.         handle state evt-ch   tx-/rx-ring-ref BE-path0   0  00:16:3e:4e:c6:cb     0     4     14   769/768         /local/domain/0/backend/vif/10/01   0  00:16:3e:23:d4:a1     1     4      8  1280/1281        /local/domain/0/backend/vif/10/1[root@xen ~]# xl network-detach busybox-001 1
/ # net eth2: xennet_release_rx_bufs: fix me for copying receiver./ # ifconfig -aeth0      Link encap:Ethernet  HWaddr 00:16:3E:4E:C6:CB          inet addr:10.0.11.1  Bcast:10.255.255.255  Mask:255.0.0.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:769 errors:0 dropped:0 overruns:0 frame:0          TX packets:758 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:62228 (60.7 KiB)  TX bytes:72100 (70.4 KiB)          Interrupt:18lo        Link encap:Local Loopback          LOOPBACK  MTU:65536  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition table
[root@xen ~]# qemu-img create -f qcow2 -o ? /images/xen/busybox1.2.imgSupported options:size             Virtual disk sizebacking_file     File name of a base imagebacking_fmt      Image format of the base imageencryption       Encrypt the imagecluster_size     qcow2 cluster sizepreallocation    Preallocation mode (allowed values: off, metadata, falloc, full)
[root@xen ~]# qemu-img create -f qcow2 -o size=5G,preallocation=metadata /images/xen/busybox1.2.imgFormatting '/images/xen/busybox1.2.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 preallocation='metadata'
[root@xen ~]# ll -h /images/xen/总用量 40M-rw-r--r--. 1 root root 5.1G 11月 25 06:37 busybox1.2.img-rw-r--r--. 1 root root 2.0G 11月 25 05:34 busybox2.img-rw-r--r--. 1 root root 2.0G 11月 24 07:00 busybox.img
[root@xen ~]# du -sh /images/xen/40M     /images/xen/[root@xen ~]# du -sh /images/xen/busybox1.2.img972K    /images/xen/busybox1.2.img
[root@xen ~]# xl block-list busybox-001Vdev  BE  handle state evt-ch ring-ref BE-path51712 0   10     4     13     8        /local/domain/0/backend/qdisk/10/51712[root@xen ~]# xl block-attach busybox-001 '/images/xen/busybox1.2.img,qcow2,xvdb,w'[root@xen ~]# xl block-list busybox-001Vdev  BE  handle state evt-ch ring-ref BE-path51712 0   10     4     13     8        /local/domain/0/backend/qdisk/10/5171251728 0   10     4     8      1281     /local/domain/0/backend/qdisk/10/51728
/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition tableDisk /dev/xvdb: 5368 MB, 5368709120 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvdb doesn't contain a valid partition table
/ # fdisk /dev/xvdbDevice contains neither a valid DOS partition table, nor Sun, SGI, OSF or GPT disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until you decide to write them. After that the previous contentwon't be recoverable.Command (m for help): pDisk /dev/xvdb: 5368 MB, 5368709120 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes    Device Boot      Start         End      Blocks  Id SystemCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-652, default 1): Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): +50MCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (8-652, default 8): Using default value 8Last cylinder or +size or +sizeM or +sizeK (8-652, default 652): +1GCommand (m for help): pDisk /dev/xvdb: 5368 MB, 5368709120 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes    Device Boot      Start         End      Blocks  Id System/dev/xvdb1               1           7       56196  83 Linux/dev/xvdb2               8         130      987997+ 83 LinuxCommand (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table xvdb: xvdb1 xvdb2
/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition tableDisk /dev/xvdb: 5368 MB, 5368709120 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes    Device Boot      Start         End      Blocks  Id System/dev/xvdb1               1           7       56196  83 Linux/dev/xvdb2               8         130      987997+ 83 Linux
[root@xen ~]# xl block-detach busybox-001 51728[root@xen ~]# xl block-list busybox-001Vdev  BE  handle state evt-ch ring-ref BE-path51712 0   10     4     13     8        /local/domain/0/backend/qdisk/10/51712
/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition table
[root@xen ~]# xl uptime busybox-001Name                                ID Uptimebusybox-001                         10  0:38:46
[root@xen ~]# xl destroy busybox-001[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----     436.8
[root@xen ~]# qemu-img create -f qcow2 -o size=5G,preallocation=metadata /images/xen/busybox3.imgFormatting '/images/xen/busybox3.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 preallocation='metadata'

显示已用的回环设备、显示空闲loop设备、关联loop设备;

[root@xen yum.repos.d]# losetup -a[root@xen yum.repos.d]# mount -o loop /images/xen/busybox.img /mnt[root@xen yum.repos.d]# losetup -a/dev/loop0: [0802]:131076 (/images/xen/busybox.img)[root@xen yum.repos.d]# umount /mnt[root@xen yum.repos.d]# losetup -f/dev/loop0[root@xen yum.repos.d]# losetup /dev/loop0 /images/xen/busybox3.img[root@xen yum.repos.d]# losetup -a/dev/loop0: [0802]:131079 (/images/xen/busybox3.img)
[root@xen yum.repos.d]# fdisk /dev/loop0Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xad46703f.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/loop0: 5369 MB, 5369757696 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xad46703f      Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-652, default 1):Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +50MCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (8-652, default 8):Using default value 8Last cylinder, +cylinders or +size{K,M,G} (8-652, default 652): +1GCommand (m for help): pDisk /dev/loop0: 5369 MB, 5369757696 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xad46703f      Device Boot      Start         End      Blocks   Id  System/dev/loop0p1               1           7       56196   83  Linux/dev/loop0p2               8         139     1060290   83  LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 22: 无效的参数.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.

显示loop设备分区信息;

[root@xen yum.repos.d]# kpartx -av /dev/loop0add map loop0p1 (253:0): 0 112392 linear /dev/loop0 63add map loop0p2 (253:1): 0 2120580 linear /dev/loop0 112455
[root@xen yum.repos.d]# ls /dev/mapper/control  loop0p1  loop0p2
[root@xen yum.repos.d]# mke2fs -t ext2 /dev/mapper/loop0p1mke2fs 1.41.12 (17-May-2010)Discarding device blocks: 完成文件系统标签=操作系统:Linux块大小=1024 (log=0)分块大小=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks14056 inodes, 56196 blocks2809 blocks (5.00%) reserved for the super user第一个数据块=1Maximum filesystem blocks=576716807 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks:        8193, 24577, 40961正在写入inode表: 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 35 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@xen yum.repos.d]# mke2fs -t ext2 /dev/mapper/loop0p2mke2fs 1.41.12 (17-May-2010)Discarding device blocks: 完成文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks66384 inodes, 265072 blocks13253 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=2726297609 block groups32768 blocks per group, 32768 fragments per group7376 inodes per groupSuperblock backups stored on blocks:        32768, 98304, 163840, 229376正在写入inode表: 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 39 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@xen yum.repos.d]# losetup -a/dev/loop0: [0802]:131079 (/images/xen/busybox3.img)[root@xen yum.repos.d]# mkdir /mnt/{boot,sysroot}[root@xen yum.repos.d]# mount /dev/mapper/loop0p1 /mnt/boot/[root@xen yum.repos.d]# mount /dev/mapper/loop0p2 /mnt/sysroot/
[root@xen yum.repos.d]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)/dev/mapper/loop0p1 on /mnt/boot type ext2 (rw)/dev/mapper/loop0p2 on /mnt/sysroot type ext2 (rw)
[root@xen yum.repos.d]# cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz[root@xen yum.repos.d]# cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img[root@xen yum.repos.d]# grub-install --root-directory=/mnt /dev/loop0Probing devices to guess BIOS drives. This may take a long time./dev/loop0 does not have any corresponding BIOS drive.[root@xen yum.repos.d]# ls /mnt/boot/grub  initramfs.img  lost+found  vmlinuz[root@xen yum.repos.d]# ls /mnt/boot/grub/device.map     fat_stage1_5  iso9660_stage1_5  minix_stage1_5     stage1  ufs2_stage1_5    xfs_stage1_5e2fs_stage1_5  ffs_stage1_5  jfs_stage1_5      reiserfs_stage1_5  stage2  vstafs_stage1_5
[root@xen yum.repos.d]# vim /mnt/boot/grub/grub.confdefault=0timeout=5title BusyBox(kernel-2.6.32)        root (hd0,0)        kernel /vmlinuz root=/dev/xvda1 ro selinux=0 init=/bin/sh        initrd /initramfs.img
[root@xen ~]# cp -a busybox-1.22.1/_install/* /mnt/sysroot/[root@xen ~]# cd /mnt/sysroot/[root@xen sysroot]# lsbin  linuxrc  lost+found  sbin  usr[root@xen sysroot]# mkdir lib/modules dev proc sys etc var tmp -p[root@xen sysroot]# cp /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/net/xen-netfront.ko lib/modules/[root@xen sysroot]# sync

拆除loop设备;

[root@xen sysroot]# cd[root@xen ~]# losetup -a/dev/loop0: [0802]:131079 (/images/xen/busybox3.img)[root@xen ~]# umount /mnt/boot/[root@xen ~]# umount /mnt/sysroot/[root@xen ~]# losetup -d /dev/loop0[root@xen ~]# losetup -a/dev/loop0: [0802]:131079 (/images/xen/busybox3.img)[root@xen ~]# kpartx -d /dev/loop0[root@xen ~]# ls /dev/mapper/control[root@xen ~]# losetup -f/dev/loop0
[root@xen ~]# cd /etc/xen/[root@xen xen]# cp busybox busybox3[root@xen ~]# which pygrub/usr/bin/pygrub[root@xen xen]# vim busybox3name = "busybox-003"#kernel = "/boot/vmlinuz"#ramdisk = "/boot/initramfs.img"#extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/busybox3.img,qcow2,xvda,rw' ]#root = "/dev/xvda ro"bootloader = '/usr/bin/pygrub'
[root@xen xen]# xl create busybox3 -cParsing config from busybox3libxl: error: libxl_device.c:1225:libxl__wait_for_backend: Backend /local/domain/0/backend/qdisk/0/51712 not readylibxl: error: libxl_bootloader.c:405:bootloader_disk_attached_cb: failed to attach local disk for bootloader executionlibxl: error: libxl_bootloader.c:276:bootloader_local_detached_cb: unable to detach locally attached disklibxl: error: libxl_create.c:1022:domcreate_rebuild_done: cannot (re-)build domain: -3

虚拟机启动不了的原因是使用losetup方式对qcow2格式的映像文件进行分区、格式化、挂载、虚拟机xen的xl是识别不了这个分区。

[root@xen xen]# cd /images/xen/[root@xen xen]# lsbusybox1.2.img  busybox2.img  busybox3.img  busybox.img[root@xen xen]# rm busybox3.imgrm:是否删除普通文件 "busybox3.img"?y
[root@xen xen]# qemu-img create -f raw -o size=2G /images/xen/busybox3.imgFormatting '/images/xen/busybox3.img', fmt=raw size=2147483648[root@xen xen]# losetup -f/dev/loop0[root@xen xen]# losetup /dev/loop0 /images/xen/busybox3.img[root@xen xen]# losetup -a/dev/loop0: [0802]:131079 (/images/xen/busybox3.img)
[root@xen xen]# fdisk /dev/loop0Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x07f78d24.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/loop0: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x07f78d24      Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-261, default 1):Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +50MCommand (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 2First cylinder (8-261, default 8):Using default value 8Last cylinder, +cylinders or +size{K,M,G} (8-261, default 261): +1GCommand (m for help): pDisk /dev/loop0: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x07f78d24      Device Boot      Start         End      Blocks   Id  System/dev/loop0p1               1           7       56196   83  Linux/dev/loop0p2               8         139     1060290   83  LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 22: 无效的参数.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)
[root@xen xen]# kpartx -av /dev/loop0add map loop0p1 (253:0): 0 112392 linear /dev/loop0 63add map loop0p2 (253:1): 0 2120580 linear /dev/loop0 112455[root@xen xen]# ls /dev/mapper/control  loop0p1  loop0p2
[root@xen xen]# mke2fs -t ext2 /dev/mapper/loop0p1mke2fs 1.41.12 (17-May-2010)Discarding device blocks: 完成文件系统标签=操作系统:Linux块大小=1024 (log=0)分块大小=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks14056 inodes, 56196 blocks2809 blocks (5.00%) reserved for the super user第一个数据块=1Maximum filesystem blocks=576716807 block groups8192 blocks per group, 8192 fragments per group2008 inodes per groupSuperblock backups stored on blocks:        8193, 24577, 40961正在写入inode表: 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 36 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@xen xen]# mke2fs -t ext2 /dev/mapper/loop0p2mke2fs 1.41.12 (17-May-2010)Discarding device blocks: 完成文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks66384 inodes, 265072 blocks13253 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=2726297609 block groups32768 blocks per group, 32768 fragments per group7376 inodes per groupSuperblock backups stored on blocks:        32768, 98304, 163840, 229376正在写入inode表: 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 36 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@xen xen]# mount /dev/mapper/loop0p1 /mnt/boot/[root@xen xen]# mount /dev/mapper/loop0p2 /mnt/sysroot/[root@xen xen]# cp /boot/vmlinuz-2.6.32-504.el6.x86_64 /mnt/boot/vmlinuz[root@xen xen]# cp /boot/initramfs-2.6.32-504.el6.x86_64.img /mnt/boot/initramfs.img[root@xen xen]# cd[root@xen ~]# cp -a busybox-1.22.1/_install/* /mnt/sysroot/[root@xen ~]# mkdir /mnt/sysroot/lib/modules -p
[root@xen ~]# modinfo xen-netfrontfilename:       /lib/modules/3.7.4-1.el6xen.x86_64/kernel/drivers/net/xen-netfront.koalias:          xennetalias:          xen:viflicense:        GPLdescription:    Xen virtual network device frontendsrcversion:     746EC04CBED591C2D0F65D1depends:intree:         Yvermagic:       3.7.4-1.el6xen.x86_64 SMP mod_unload modversions
[root@xen ~]# cp /lib/modules/3.7.4-1.el6xen.x86_64/kernel/drivers/net/xen-netfront.ko /mnt/sysroot/lib/modules/[root@xen ~]# cd /mnt/sysroot/[root@xen sysroot]# mkdir -p dev proc sys tmp var home boot[root@xen sysroot]# sync
[root@xen sysroot]# xl create /etc/xen/busybox -c/ #

[root@xen ~]# xl block-attach busybox-001 '/images/xen/busybox3.img,raw,xvdb,w'

/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition tableDisk /dev/xvdb: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes    Device Boot      Start         End      Blocks  Id System/dev/xvdb1               1           7       56196  83 Linux/dev/xvdb2               8         139     1060290  83 Linux
/ # mount /dev/xvdb1 /etc/EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended/ # ls /etc/initramfs.img  lost+found     vmlinuz/ # umount /etc
[root@xen ~]# xl block-list busybox-001Vdev  BE  handle state evt-ch ring-ref BE-path51712 0   14     4     13     8        /local/domain/0/backend/qdisk/14/5171251728 0   14     4     14     28       /local/domain/0/backend/qdisk/14/51728[root@xen ~]# xl block-detach busybox-001 51728[root@xen ~]# xl block-list busybox-001Vdev  BE  handle state evt-ch ring-ref BE-path51712 0   14     4     13     8        /local/domain/0/backend/qdisk/14/51712
[root@xen ~]# grub-install --root-directory=/mnt /dev/loop0Probing devices to guess BIOS drives. This may take a long time./dev/loop0 does not have any corresponding BIOS drive.[root@xen ~]# ls /mnt/boot/grub  initramfs.img  lost+found  vmlinuz
[root@xen ~]# vim /mnt/boot/grub/grub.confdefault=0timeout=5title BusyBox(kernel-2.6.32)        root (hd0,0)        kernel /vmlinuz root=/dev/xvda1 ro selinux=0 init=/bin/sh        initrd /initramfs.img
[root@xen ~]# sync[root@xen ~]# vim /etc/xen/busybox3[root@xen ~]# which pygrub/usr/bin/pygrub[root@xen xen]# vim busybox3name = "busybox-003"#kernel = "/boot/vmlinuz"#ramdisk = "/boot/initramfs.img"#extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/busybox3.img,raw,xvda,rw' ]#root = "/dev/xvda ro"bootloader = '/usr/bin/pygrub'

[root@xen ~]# xl create /etc/xen/busybox3 -c

[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1352     2     r-----    1634.9busybox-001                                 14   256     2     -b----      66.0

[root@xen ~]# xl destroy busybox-001

下载Centos6.6的vmlinuz和initrd.img文件,可以将Centos6.6操作系统iso文件解压后再isolinux目录中找到

[root@xen ~]# lsanaconda-ks.cfg                    busybox-1.22.1.tar.bz2  install.log.syslog                             vmlinuzbridge-utils-1.5-2.el6.x86_64.rpm  initrd.img              kernel-xen-3.7.4-1.el6xen.x86_64.rpmbusybox-1.22.1                     install.log             kernel-xen-firmware-3.7.4-1.el6xen.x86_64.rpm
[root@xen ~]# mkdir /images/kernel[root@xen ~]# mv vmlinuz initrd.img /images/kernel/[root@xen ~]# cp /etc/xen/busybox /etc/xen/centos[root@xen ~]# qemu-img create -f qcow2 -o size=120G,preallocation=metadata /images/xen/centos6.6.imgFormatting '/images/xen/centos6.6.img', fmt=qcow2 size=128849018880 encryption=off cluster_size=65536 preallocation='metadata'
[root@xen ~]# vim /etc/xen/centosname = "centos-001"kernel = "/images/kernel/vmlinuz"ramdisk = "/images/kernel/initrd.img"extra = ""memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
[root@xen ~]# xl create /etc/xen/centosParsing config from /etc/xen/centos[root@xen ~]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0  1350     2     r-----    1656.1centos-001                                  18   512     2     -b----       8.8

[root@xen ~]# xl console centos-001

配置虚拟机ip地址;

使用URL安装,我这里将cenots6.6的ios文件进行解压,搭建http服务器;

设置web服务器url;

安装完成;

初始化,进行下面的初始化就可以了,我这里就不安装了;

[root@xen xen]# xl destroy centos-001

使用Kickstart自动化安装虚拟机操作系统,Kickstart部署详细见:https://blog.51cto.com/smoke520/2325660

[root@xen ~]# vim /etc/xen/centosname = "centos-001"kernel = "/images/kernel/vmlinuz"ramdisk = "/images/kernel/initrd.img"extra = "ks=http://172.16.100.10/ks_config/CentOS-6.6-ks.cfg"memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
[root@xen ~]# xl create centos -ce:09:ab:21 (CentOS6) via eth0Aug  1 17:36:34 linux-node1 dhcpd: DHCPREQUEST for 172.16.100.33 (172.16.100.10) from 00:16:3e:09:ab:21 (CentOS6) via eth0Aug  1 17:36:34 linux-node1 dhcpd: DHCPACK on 172.16.100.33 to 00:16:3e:09:ab:21 (CentOS6) via eth0
[root@xen xen]# vim centosname = "centos-001"bootloader = "/usr/bin/pygrub"memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
[root@xen xen]# xl destroy centos-001[root@xen xen]# xl create centos -c

ctrl+]退回到宿主机;

[root@CentOS6 ~]# [root@xen xen]#[root@xen xen]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0   838     2     r-----    6347.0centos-001                                  68   512     2     -b----       8.2[root@xen xen]# xl shutdown centos-001Shutting down domain 68[root@xen xen]# xl listName                                        ID   Mem VCPUs      State   Time(s)Domain-0                                     0   838     2     r-----    6348.5

cloud-init专门为云实现初始化磁盘映像文件;

[root@xen xen]# yum info cloud-initName        : cloud-initArch        : x86_64Version     : 0.7.5Release     : 10.el6.centos.2Size        : 432 kRepo        : extrasSummary     : Cloud instance init scriptsURL         : http://launchpad.net/cloud-initLicense     : GPLv3Description : Cloud-init is a set of init scripts for cloud instances.  Cloud instances            : need special scripts to run during initialization to retrieve and install            : ssh keys and to let the user run various scripts.
[root@xen xen]# vim busyboxname = "busybox-001"kernel = "/boot/vmlinuz"ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr1' ]disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]root = "/dev/xvda ro"vfb = [ 'sdl=1' ][root@xen xen]# xl create busybox

[root@xen xen]# xl destroy busybox-001[root@xen xen]# vim centos[root@xen xen]# grep -v "#" centos | grep -v "^$"name = "centos-001"bootloader = "/usr/bin/pygrub"memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]vfb = [ 'sdl=1' ][root@xen xen]# xl create centos

[root@xen xen]# xl destroy centos-001

使用vnc,安装vnc客户端;

[root@xen xen]# yum -y install tigervncname = "centos-001"bootloader = "/usr/bin/pygrub"memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]vfb = [ 'vnc=1' ][root@xen xen]# xl create centos[root@xen xen]# ss -tnlState      Recv-Q Send-Q                                     Local Address:Port                                       Peer Address:PortLISTEN     0      1                                              127.0.0.1:5900                                                  *:*LISTEN     0      128                                                   :::22                                                   :::*LISTEN     0      128                                                    *:22                                                    *:*LISTEN     0      100                                                  ::1:25                                                   :::*LISTEN     0      100                                            127.0.0.1:25                                                    *:*LISTEN     0      128                                            127.0.0.1:6010                                                  *:*LISTEN     0      128                                                  ::1:6010                                                 :::*LISTEN     0      128                                            127.0.0.1:6011                                                  *:*LISTEN     0      128                                                  ::1:6011                                                 :::*LISTEN     0      128                                            127.0.0.1:6012                                                  *:*LISTEN     0      128                                                  ::1:6012                                                 :::*[root@xen xen]# vncviewer :5900

[root@xen xen]# vim centosname = "centos-001"bootloader = "/usr/bin/pygrub"memory = 512vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncpasswd=smoke520' ][root@xen xen]# xl create centos[root@xen xen]# ss -tnlState      Recv-Q Send-Q                                     Local Address:Port                                       Peer Address:PortLISTEN     0      1                                                      *:5900                                                  *:*LISTEN     0      128                                                   :::22                                                   :::*LISTEN     0      128                                                    *:22                                                    *:*LISTEN     0      100                                                  ::1:25                                                   :::*LISTEN     0      100                                            127.0.0.1:25                                                    *:*LISTEN     0      128                                            127.0.0.1:6010                                                  *:*LISTEN     0      128                                                  ::1:6010                                                 :::*LISTEN     0      128                                            127.0.0.1:6011                                                  *:*LISTEN     0      128                                                  ::1:6011                                                 :::*LISTEN     0      128                                            127.0.0.1:6012                                                  *:*LISTEN     0      128                                                  ::1:6012                                                 :::*

在Windows操作系统使用VNC Viewer连接虚拟机;

输入vnc密码smoke520;

正常登陆;

[root@xen xen]# xl destroy centos-001

使用宿主机分区作别DomU的磁盘;

[root@xen ~]# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-6527, default 1):Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +30GCommand (m for help): tSelected partition 1Hex code (type L to list codes): 8eChanged system type of partition 1 to 8e (Linux LVM)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@xen ~]# kpartx -a /dev/sdb[root@xen ~]# pvcreate /dev/sdb1[root@xen ~]# vgcreate myvg /dev/sdb1[root@xen ~]# lvcreate -L 2G -n bbox myvg[root@xen ~]# mke2fs -t ext2 /dev/myvg/bbox[root@xen ~]# mount /dev/myvg/bbox /mnt/[root@xen ~]# cp -a busybox-1.22.1/_install/* /mnt/[root@xen ~]# cd /mnt/[root@xen mnt]# mkdir proc dev sys tmp etc var boot[root@xen mnt]# ll总用量 100drwxr-xr-x. 2 root root  4096 11月 24 05:51 bindrwxr-xr-x. 2 root root  4096 12月  4 22:17 bootdrwxr-xr-x. 2 root root  4096 12月  4 22:17 devdrwxr-xr-x. 2 root root  4096 12月  4 22:17 etclrwxrwxrwx. 1 root root    11 11月 24 05:51 linuxrc -> bin/busyboxdrwx------. 2 root root 16384 12月  4 22:11 lost+founddrwxr-xr-x. 2 root root  4096 12月  4 22:17 procdrwxr-xr-x. 2 root root  4096 11月 24 05:51 sbindrwxr-xr-x. 2 root root  4096 12月  4 22:17 sysdrwxr-xr-x. 2 root root  4096 12月  4 22:17 tmpdrwxr-xr-x. 4 root root  4096 11月 24 05:51 usrdrwxr-xr-x. 2 root root  4096 12月  4 22:17 var
[root@xen mnt]# cd /etc/xen/[root@xen xen]# cp busybox bbox[root@xen xen]# vim bboxname = "bbox-001"kernel = "/boot/vmlinuz"ramdisk = "/boot/initramfs.img"extra = "selinux=0 init=/bin/sh"memory = 256vcpus = 2vif = [ 'bridge=xenbr0' ]disk = [ '/dev/myvg/bbox,raw,xvda,rw' ]root = "/dev/xvda ro"
[root@xen xen]# xl create bbox -n[root@xen xen]# xl create bbox -c/ # lsbin         dev         linuxrc     proc        sys         usrboot        etc         lost+found  sbin        tmp         var/ # fdisk -lDisk /dev/xvda: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/xvda doesn't contain a valid partition table/ # exit

使用libvirt实现xen虚拟机管理;
[root@xen xen]# yum -y install libvirt libvirt-daemon-xen
[root@xen xen]# service libvirtd start
[root@xen xen]# yum -y install virt-manager
[root@xen xen]# virt-manager

如果创建虚拟机时候出现Error:list.remove(x):x not in list;

[root@xen yum.repos.d]# ps -ef | grep pythonroot      4529     1  1 22:48 ?        00:00:23 /usr/bin/python /usr/share/virt-manager/virt-manager.pyroot      6050  3049  0 23:12 pts/0    00:00:00 grep python[root@xen yum.repos.d]# kill -9 4529[root@xen yum.repos.d]# /usr/bin/python /usr/share/virt-manager/virt-manager.py

选择使用pxe方式安装(需要有Kickstart服务器);

选择操作系统类型;

分配cpu、内存大小;

分配磁盘大小,不要立即指定磁盘空间(磁盘映像文件默认存放在/var/lib/libvirt/images/目录);

使用PXE安装Virt Type只支持全虚拟机类型;

如果没有问题点击Begin Installation开始安装操作系统;

[root@xen yum.repos.d]# virsh list Id    Name                           State---------------------------------------------------- 4     centos                         running[root@xen yum.repos.d]# virsh destroy centos
0