根据需求在一台物理机上安装在3台虚拟机,虚拟机磁盘为lvm卷
查看 CPU 是否支持硬件虚拟化(VT 技术)
root@debian:~# cat /proc/cpuinfo | grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority
如果没有打印出任何东西,表示 CPU 不支持硬件虚拟化。但是仍需要确定在 BIOS 中是否启用了该虚拟化技术。如果返回 SVM 旗帜标志,则表示您的处理器支持 AMD-V。而返回 VMX 旗帜标志,则表示您的处理器支持 INTEL-VT。另外BISO也要打开虚拟化支持。
安装xen的hypervisor,会自动安装相关依赖包
root@debian:~# apt-get install -d xen-linux-system-2.6-xen-amd64使debian6支持xen的HVM Xen Qemu Device Model virtual machine hardware emulator
root@debian:~# apt-get install xen-qemu-dm-4.0
root@debian:~# dpkg -l | grep xen ii libxenstore3.0 4.0.1-2 Xenstore communications library for Xen ii linux-headers-2.6.32-5-common-xen 2.6.32-35 Common header files for Linux 2.6.32-5-xen ii linux-headers-2.6.32-5-xen-amd64 2.6.32-35 Header files for Linux 2.6.32-5-xen-amd64 ii linux-image-2.6.32-5-xen-amd64 2.6.32-35 Linux 2.6.32 for 64-bit PCs, Xen dom0 support ii xen-hypervisor-4.0-amd64 4.0.1-2 The Xen Hypervisor on AMD64 ii xen-linux-system-2.6-xen-amd64 2.6.32+29 Xen system with Linux 2.6 for 64-bit PCs (meta-package) ii xen-linux-system-2.6.32-5-xen-amd64 2.6.32-35 Xen system with Linux 2.6.32 on 64-bit PCs (meta-package) ii xen-qemu-dm-4.0 4.0.1-2 Xen Qemu Device Model virtual machine hardware emulator ii xen-utils-4.0 4.0.1-2 XEN administrative tools ii xen-utils-common 4.0.0-1 XEN administrative tools - common files ii xenstore-utils 4.0.1-2 Xenstore utilities for Xen
由于debian6使用的grub2,装完xen会在/etc/grub.d下生成08_linux_xen,该文件会导入/boot/grub/grub.cfg
查看/boot/grub/grub.cfg 默认启动内核项目 set default="0" 开是否启动Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64内核
如果需要修改default,要更改/etc/default/grub里GRUB_DEFAULT=0 值,务必修改完执行update-grub生效
重启服务器
确认已经启用了xend服务
root@debian:~# ps -ef | grep xen root 24 2 0 02:54 ? 00:00:01 [xenwatch] root 25 2 0 02:54 ? 00:00:00 [xenbus] root 1164 1 0 02:54 ? 00:00:03 /usr/lib/xen-4.0/bin/xenstored --pid-file=/var/run/xenstore.pid root 1211 1 0 02:54 ? 00:00:00 /usr/lib/xen-4.0/bin/xenconsoled --pid-file=/var/run/xenconsoled.pid root 2472 1 0 02:59 ? 00:00:00 /usr/bin/python2.5 /usr/lib/xen-4.0/bin/xend start root 2473 2472 0 02:59 ? 00:00:13 /usr/bin/python2.5 /usr/lib/xen-4.0/bin/xend start
更改xen配置文件
root@debian:~# vim /etc/xen/xend-config.sxp (vif-script vif-bridge) (network-script 'network-bridge netdev=eth0') (vnc-listen '0.0.0.0')
(vif-script vif-bridge)表示执行通过脚本/etc/xen/scripts/vif-bridge来增加vif网络介质.
(network-script 'network-bridge netdev=eth0')表示用network-bridge脚本来控制XEN虚拟机系统网络的启动和关闭,这个脚本建立一个网桥就是eth0.
(vnc-listen '0.0.0.0')表示设定通过vnc远程控制访问本地的监听地址,这里配置为0.0.0.0,也就是eth0
配置lvm卷
root@debian:~# atp-get install lvm2
root@debian:~# pvcreate /dev/sda5 root@debian:~# vgcreate ndb /dev/sda5 root@debian:~# lvcreate -L 100G -n cluster1 ndb root@debian:~# lvcreate -L 100G -n cluster2 ndb root@debian:~# lvcreate -L 100G -n cluster3 ndb root@debian:~# pvs PV VG Fmt Attr PSize PFree /dev/sda5 ndb lvm2 a- 781.35g 481.35g root@debian:~# vgs VG #PV #LV #SN Attr VSize VFree ndb 1 3 0 wz--n- 781.35g 481.35g root@debian:~# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert cluster1 ndb -wi-ao 100.00g cluster2 ndb -wi-ao 100.00g cluster3 ndb -wi-ao 100.00g
创建hvm虚拟机配置文件
root@debian:/etc/xen# cat cluster_196 kernel='hvmloader' #设定该HVM虚拟机的内核镜像文件,默认是采用宿主机上/usr/lib/xen/boot/hvmloader这个来引导的。因为创建domain的工作是通知xend来完成的。xm cr的时候通过xml-rpc通知xend。xend调用hvmloader启动guest domain的. builder='hvm' #设定虚拟域的建立方式,一个虚拟域对应了一个虚拟机,宿主机通过根域0来管理。如果是HVM虚拟机的话,这项要设定为hvm. PVM(Para-virtualized Virtual Machine,也称泛虚拟,半虚拟)HVM(HardwareVirtual Machine,也称完全虚拟、硬虚拟) memory=3072 #设定虚拟机的占用的内存 name='cluster_196' #这里的name是指启动domain后的名字.建议配置文件名与name值一致. vif=['mac=00:30:48:31:96:e8,bridge=eth0'] #设定MAC地址,一般情况下虚拟机的MAC地址如果不特别指定的话,它是自动随机的。但这里的虚拟机都是复制的,所以要显示的指定MAC地址.指定网桥为eth1网卡,如果设定不正确,则无法出公网. disk=['phy:/dev/ndb/cluster1,hda,w', 'file:/root/debian-501-amd64-CD-1.iso,hdc:cdrom,r'] #设定虚拟机使用的"磁盘"以及"光驱"设备,通过制定宿主机系统里的某个路径和文件来实现(file),也可以指向宿主机上的真实设备(phy),另外需要指定这些"设备"的一些属性. device_model='qemu-dm' #虚拟机的设备模版。宿主机上的XEN-VNC控制就是由qemu-dm提供的 boot='cd' #设定虚拟机的启动顺序,"a"表示软盘,"c"表示硬盘,"d"表示CDROM。从左到右依次表示顺序。 sdl=0 #设定SDL库支持图像 vnc=1 #设定使用VNC来支持图像,默认值1表示支持 vncunused=1 #设定VNC服务器使用一个未占用的端口来提供VNC连接服务。默认值1表示打开 vncdisplay='1' #设定VNC的显示号,这里设定2, 打开的端口就是5902,vncviewer连接就是eth0:2 nographic=0 #设定无图形支持,使用串行端口。默认值0表示默认支持图形界面。 localtime=1 #设定本地时间同步,默认值为1 stdvga=0 #设定启用标准VGA。默认值为0 vcpus=2 #设定虚拟机的虚拟CPU数量。默认是1 apic=0 acpi=1
启动xen-hvm虚拟机
root@debian:/etc/xen# xm create cluster_196这时可以用vnc连进去看到安装画面安装操作系统。
查看当前启动的虚拟机
root@debian:/etc/xen# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 7316 4 r----- 409.3 cluster_196 1 3075 2 -b---- 31.6 cluster_197 2 3075 2 -b---- 30.1 cluster_198 6 3072 2 -b---- 30.1