xen 半虚拟化与全虚拟化
本文只涉及到如何实现 xen 的全虚拟化与半虚拟化,也就是 linux 下安装 linux,与 linux 下
安装 windows。
原理性的东西,以及优化,本人还在研究中。
环境 centos 5.2 64bit
安装时候已经包含虚拟化,所以启动系统后已经是带 xen 的内核,已经安装好 xen 相关软件。
xen 虚拟机的存储有多种方式,根据官方手册上说的有 files,lvm,nfs 等。我选择了 files 作为 xen 虚拟机的存储,因为这样比较简单,当然会有弱点,后面会
说到。
先说如何实现半虚拟化:
检查 cpu 的指令集是否包含 pae,这个应该不成问题,我小黑的 cpu 是 T2370 都支持。
1.先 dd 出一个 img 文件作为虚拟机的安装空间
dd if=/dev/zero of=/xen/image/xen1.img bs=1M count=30720 数值大小可以根据自己需要调整。
2.接着就是安装虚拟机了,安装方式跟宿主机安装一样,可以采取光驱,网络,由于我已经建好了 ks 的源,方便
期间我就采用 ks 来安装虚拟机的系统。
执行如下命令:
virt-install -n xen1 -r 256 -p --nographic -f /xen/images/xen1.img -l http://192.168.32.132/centos32bit -x "ip=192.168.32.31 netmask=255.255.255.0
gateway=192.168.32.1 ks=http://192.168.32.132/centos32bit/ksxen.cfg"
成功的话就会自动安装完系统,直到重启进入系统。ks 文件就不贴了,和宿主机的配置文
件基本一样需要做调整的是分区的名字,宿主机是类似 sda 的形式,而虚拟机是类似 xvda
的形式。
那些控制 xen 的基本命令也不说了,网上一大堆,建议看下官方的 xen+man.pdf 这本书,
很详细。
接着说全虚拟化:
linux 安装 windows 前,我有个误区,想 windows 是图形的,linux 不装图形界面怎么装啊,
后来才明白过来,是通过 vnc 连接,即可以看到图形界面。安装 vnc 配置 vnc 也不再叙述,
配 置 下 很 简 单 , 客 户 端 通 过 vnc 连 接 到 linux 的 时 候 一 定 要 输 入
ip:number(number=1,2...)只输入 ip 就只能看到一片白的屏幕,什么都没有。
然后先传个 iso 到宿主机上去,这里要说明下了,网上关于全虚拟化有各种说法,说什么
要修改配置文件,修改启动项目,我照着做试了好几遍都不行,后来突然之间找到了个方
法解决。
照样 dd 出 img 文件,
执 行 virt-install -n win2003 -r 512 --vcpus=2 --file=/xen/image/win2003.img --vnc -v -c /root/windows2003_sp2.iso --vnc --vncport=5902 --os-
type='windows'
然后会自动生成 win2003 的配置文件。
接着通过 vnc 可以安装系统,(说明下,当时看到蓝底白字的图像时候,很兴奋啊)
当 windows 复制完需要的文件时候,重启,这时候会出问题了。屏幕是会提示一个错误,安装程序不会继续下去了,这时候删除那个在 /etc/xen 目录下关于
win2003 的配置文件,再执行上述命令,再自动生成 win2003 的配置文件,通过 vnc 查看,安装程序顺利进行。直到重新启动系统,顺利进去 win2003 系统,
这时候安全起见注意开启 win2003 的远程桌面,关闭宿主机的 vnc 服务。
以后通过远程桌面管理 win2003.
上述简单的说明了下如何实现半虚拟化与全虚拟化的步骤,行文不是很好,希望大家可以看懂。
补充下,采用 files 作为 xen 虚拟机的存储,io 速度会很慢,基本是宿主机的一半,所以用
在生产机器上会有严重问题。听说采取 lvm 的虚拟分区效果不错,正打算有时间去测试下。
评论2