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