xen官方站点http://xenproject.org/
维基百科 http://zh.wikipedia.org/wiki/Xen
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
笔者用aliyun镜像站点http://mirrors.aliyun.com/help/centos
安装xen
[root@localhost ~]# yum install centos-release-xen.x86_64 配置xen的yum仓库
[root@localhost ~]# yum install xen -y
[root@localhost ~]# yum install kernel-xen
[root@localhost ~]# yum install bridge-utils
执行
[root@localhost yum.repos.d]# /usr/bin/grub-bootxen.sh
查看grub.conf
[root@localhost yum.repos.d]# cat /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/mapper/vol0-root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.55-11.el6.centos.alt.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
module /vmlinuz-3.10.55-11.el6.centos.alt.x86_64 ro root=/dev/mapper/vol0-root rd_NO_LUKS rd_LVM_LV=vol0/root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
module /initramfs-3.10.55-11.el6.centos.alt.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vol0-root rd_NO_LUKS rd_LVM_LV=vol0/root rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
设置xend开机自动启动
[root@localhost yum.repos.d]# chkconfig xend on
重启
重启系统后,默认应该进入 Xen 内核,可以通过 uname -r 和 xm info 确认是否安装成功:
[root@localhost ~]# cd /proc/xen/
[root@localhost xen]# ls
capabilities privcmd xenbus xsd_kva xsd_port
[root@localhost xen]# cat capabilities
control_d 看有没有关键字出现
启动xend
[root@localhost xen]# /etc/init.d/xend start
启动 xend 守护进程: [确定]
[root@localhost xen]# chkconfig xend on
#reboot
[root@kcw 桌面]# uname -r
3.10.55-11.el6.centos.alt.x86_64
[root@kcw 桌面]# xm info
host : kcw
release : 3.10.55-11.el6.centos.alt.x86_64
version : #1 SMP Fri Sep 26 19:08:24 UTC 2014
machine : x86_64
nr_cpus : 4
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 3093
hw_caps : bfebfbff:28100800:00000000:00003f40:17bae3ff:00000000:00000001:00000000
virt_caps : hvm hvm_directio
total_memory : 4069
free_memory : 2983
free_cpus : 0
xen_major : 4
xen_minor : 2
xen_extra : .5-34.el6
xen_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_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : unavailable
xen_commandline : dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all
cc_compiler : gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
cc_compile_by : mockbuild
cc_compile_domain : centos.org
cc_compile_date : Fri Sep 26 17:27:55 CDT 2014
xend_config_format : 4
Xen比较特殊必须有一个主机管理硬件Xen里叫Domain-0
[root@kcw 桌面]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 4 r----- 160.8
ID号 内存 虚拟cpu个数 r表示running 运行时间
创建虚拟机先创建虚拟磁盘镜像
创建虚拟机的工具有很多,比如 virt-manager, virt-install, virsh, xen-create-image 等等,不过这些工具都要每次重头安装虚拟机的操作系统,需要人机交互、速度慢、不自动,不利于写成脚本。有什么快速的创建/部署/克隆虚拟机的办法呢?可 以先做一个模版,然后通过拷贝模版的办法。我们只需要两个步骤:1、创建一个空白文件镜像;2、然后把一个打包好的 Linux 系统模版拷贝过去。通常一个打包好的最小 Linux 系统只要200MB 左右,在高配置的服务器上拷贝基本能瞬间完成,比起拷贝整个虚拟机镜像文件(比如 10GB)要快得多。具体步骤:
我这里用virt-install 创建一个虚拟机
创建虚拟磁盘
dd if=/dev/zero of=/home/vm01 bs=4096 seek=1024k count=0
mkfs -t ext4 /home/vm01
/etc/init.d/iptables stop
[root@localhost ~]# mount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /tmp/os/ 首先要把光盘文件复制到物理机上在挂在
[root@localhost ~]# cat /etc/exports nfs输出
/tmp/os 192.168.1.*(ro)
[root@localhost ~]# exportfs -rv
exporting 192.168.1.*:/tmp/os
安装虚拟机
virt-install --name=domadin01 --ram=512 --vcpus=2 --graphics none --file=/home/vm01 --location /tmp/os/
--graphics none不使用图形界面
回车后如下
Welcome to CentOS for x86_64
┌────────┤ Choose a Language ├────────┐
│ │
│ What language would you like to use │
│ during the installation process? │
│ │
│ Catalan ↑ │
│ Chinese(Simplified) ▒ │
│ Chinese(Traditional) ▮ │
│ Croatian ▒ │
│ Czech ▒ │
│ Danish ▒ │
│ Dutch ▒ │
│ English ↓ │
│ │
│ ┌────┐ │
│ │ OK │ │
│ └────┘ │
│ │
│ │
└─────────────────────────────────────┘
创建桥接网络
[root@kcw ~]# rpm -qf /usr/sbin/brctl
bridge-utils-1.2-10.el6.x86_64
[root@kcw network-scripts]# cat ifcfg-br0 ####
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
#IPADDR=192.168.0.222
#PREFIX=24
#GATEWAY=192.168.0.1
#DNS1=192.168.0.1
#DNS2=61.134.1.4
#DEFROUTE=yes
###################################################
[root@kcw network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
####################################################
[root@kcw network-scripts]# /etc/init.d/network restar
#
[root@kcw network-scripts]# ifconfig
br0 Link encap:Ethernet HWaddr 78:24:AF:45:1C:7E
inet addr:192.168.0.100 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr: fe80::7a24:afff:fe45:1c7e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2399 errors:0 dropped:0 overruns:0 frame:0
TX packets:1934 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1303859 (1.2 MiB) TX bytes:232667 (227.2 KiB)
eth0 Link encap:Ethernet HWaddr 78:24:AF:45:1C:7E
inet6 addr: fe80::7a24:afff:fe45:1c7e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8629 errors:0 dropped:3 overruns:0 frame:0
TX packets:3422 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2094791 (1.9 MiB) TX bytes:336619 (328.7 KiB)
搭建ftp服务器安装
[root@e3 ~]# yum install vsftpd #安装ftp
[root@e3 ~]# /etc/init.d/vsftpd #启动ftp
[root@e3 ~]# chkconfig vsftpd on #开机自启动
[root@e3 tmp]#wget http://mirrors.sohu.com/centos/6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso #下载Centos6.6 MINI安装盘
[root@e3 tmp]# mkdir /mnt/cdrom/
[root@e3 tmp]# mount CentOS-6.6-x86_64-minimal.iso /mnt/cdrom/ #挂载
[root@e3 tmp]# cp -r /mnt/cdrom /var/ftp/
[root@e3 tmp]# cd /root/centos/cdrom/
[root@e3 cdrom]# vim .treeinfo
#修改如下
[general]
family = CentOS
timestamp = 1414159790.06
variant =
totaldiscs = 1
version = 6.6
discnum = 1
packagedir =
arch = x86_64
[images-xen]
kernel = isolinux/vmlinuz
initrd = isolinux/initrd.img
[images-x86_64]
initrd = images/pxeboot/initrd.img
[stage2]
mainimage = images/install.img
#完了保存的时候强制保存 :wq!
然后重启你的vftpd。
测试:看能不能访问
开始安装
virt-install -n vm01 -r 512 --vcpus=2 --disk /data/vm01.img,size=10 --nographics -p -l "ftp://192.168.0.244/CentOS6.6/" -w bridge:br0 --extra-args="text console=com1 utf8 console=hvc0"
-n 表示guest机器名字
-r 表示分配内存大小
--vcpus 表示虚拟几颗CPU
--disk 磁盘路径
-p 半虚拟化
-l 指定安装源
-vnc 使用vnc
-c 指定cdrom
-s --file-size 指定磁盘大小,单位GB
-f --file 指定磁盘使用file
--disk= 指定不同的磁盘文件
安装过程参考这篇博文http://my.oschina.net/kcw/blog/369627
[root@kcw ~]# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 2048 4 r----- 10258.8
vm01 9 512 2 -b---- 9.3
[root@kcw ~]# xm console vm01
用virt-install --promat 安装的虚拟机需要安装 vnc-vncview
装完后用xm console centos 不能连接需要在内核加参数 --console=hvc0
来源:oschina
链接:https://my.oschina.net/u/1769595/blog/326861