需要CPU支持,如果看google 上很多。
关于KVM虚拟机在使用qemu-kvm启动时的参数,已经配合参数进行优化,可以参照IBM技术的一个文档 http://www.ibm.com/developerworks/cn/linux/l-cn-kvm/
其中提到的qemu-kvm启动虚拟机时,-net参数后使用 -net nic, mode=virtio, macaddr=00:3e:00:12:34:3e 在千兆网络环境内能明显提升虚拟机的网络性能
linux系统中关于虚拟网络设备的manpage
Network options: -net nic[,vlan=n][,macaddr=addr][,model=type] Create a new Network Interface Card and connect it to VLAN n (n = 0 is the default). The NIC is an rtl8139 by default on the PC target. Optionally, the MAC address can be changed. If no -net option is specified, a single NIC is created. Qemu can emulate several different models of network card. Valid values for type are "i82551", "i82557b", "i82559er", "ne2k_pci", "ne2k_isa", "pcnet", "rtl8139", "e1000", "smc91c111", "lance" and "mcf_fec". Not all devices are supported on all targets. Use -net nic,model=? for a list of available devices for your target.
下面是安装配置过程
PS:需要注意的是,yum install kvm之后,可执行的程序qemu-kvm工具是在/usr/libexec/qemu-kvm,并没有在/usr/bin,所以直接使用qemu-kvm会说找不到命令,在path将/usr/libexec/添加进去即可
说下需要安装的包:
[root@kvm wills]# rpm -qa|grep kvm
kvm-83-105.el5_4.27
etherboot-zroms-kvm-5.4.4-10.el5.centos
kvm-tools-83-105.el5_4.27
kmod-kvm-83-105.el5
[root@kvm wills]# rpm -qa|grep qemu
qemu-0.9.0-4
QEMU只是用来作KVM的控制台的作用,引用官方的说法是:For the userspace components, you will find both qemu-kvm-<version> and kvm-<version> there. qemu-kvm is the stable branch of kvm, it’s based off of qemu’s point releases with the kvm extras on top; kvm-NN releases are so called development releases.
QEMU和KVM的关系引用copy来的一段话:
现在所说的虚拟化,一般都是指在CPU硬件支持基础之上的虚拟化技术。KVM也同hyper-V、Xen一样依赖此项技术。没有CPU硬件虚拟化的支持,KVM是无法工作的。
准 确来说,KVM是Linux的一个模块。可以用modprobe去加载KVM模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM模块是 远远不够的,因为用户无法直接控制内核模块去作事情:还必须有一个用户空间的工具才行。这个用户空间的工具,开发者选择了已经成型的开源虚拟化软件 QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个Power的CPU,并可利用它编译出 可运行在Power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM下载有两 大部分三个文件,分别是KVM模块、QEMU工具以及二者的合集。也就是说,你可以只升级KVM模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系
安装均可使用Yum方式安装。
1、创建虚拟磁盘
qemu-img create -f qcow2 php-el5.4-vm.img 50G???? ######? -f qcow2是代表磁盘映像格式.在大多数情况下可以自动检测.可以支持下面的格式:
raw
raw 磁盘格式(默认).这种格式有简单并且易于移植到其他模拟器的优点.如果我们的文件系统支持holes(例如在Linux上的ext2或是ext3),然 后只有写入的部分保持空白.使用qemu-img info来得到映像使用的实际的大小或是在Unix/Linux上使用 ls -ls.
qcow
QEMU映像格式.最通用的格式.使用他可以获得较小的映像(如果我们的文件系统不支持holes,例如在Windows上,这是相当有用的),可以选用AES加密或是基于zlib的压缩.
cow
在写映像格式上的用户模式的Linux拷贝.在QEMU中作为增长的映像格式使用.这个选项只是为了与以前版本的兼容,并不能在Win32上使用.
vmdk
VMware 3 或是 4 兼容的映像格式.
2、启动KVM进程,例如;
qemu-kvm -m 1024 -smp 4 -hda php-el5.4-vm.img -cdrom /home/wills/CentOS-5.4-x86_64-bin-DVD.iso -net nic,macaddr=00:3e:00:12:34:80 -net tap,script=/etc/init.d/qemu-ifup -boot d -vnc 192.168.1.214:0 –daemonize
启动时如果提示SDL库的问题,说明还需要安装SDL,yum search SDL,把相关的SDL都安装好? (这个库即使在安装好,如果qemu-kvm启动不带vnc这个参数照样还是会有SDL的错误提示,所以只需加上vnc这个参数即可)
qemu-kvm各参数的说明:
-m 1024 设置虚拟系统内存1024MB
-localtime 使虚拟系统与宿主系统时间一致
-M pc 虚拟系统类型为pc
-smp 1 1个CPU
-drive file=Windows7_x86.img,cache=writeback,boot=on
硬盘选项,虚拟磁盘是Windows7_x86.img,cache方式为writeback,可引导型磁盘。
-net nic,macaddr=52:54:00:12:34:80 网卡选项,手工指定mac地址。
-net tap tap类型网络,相当于“桥模式”
-cdrom Windows7.iso 光驱
-boot d 启动顺序。d代表光驱。
-name kvm-win7,process=kvm-win7 为虚拟机取名,便于识别
-vnc :2 这里是通过vnc连接控制窗口,这里是在5902端口。client可用IP:2连接。
################################完毕#####################