kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。
KVM虚拟机安装与使用1.前期准备
1.1确定机器有VT
不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo
如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。
1.2 确保BIOS里开启VT:
Intel(R) Virtualization Tech [Enabled]
如有必要,还需在BIOS中开启VT
2.KVM虚拟机安装
安装相关的软件包
# yum -y groupinstall 'Virtualization' 'Virtualization Client' 'Virtualization Platform'
软件包安装完毕后,加载kvm模块
# modprobe kvm
检查模块是否加载成功,执行如下命令,
# lsmod |grep kvm
如果显示两行,说明模块正确加载
kvm_intel 47790 0
kvm 300762 1 kvm_intel
如果只显示一行,请检查
1,cpu是否支持VT技术
2,bios中是否将cpu的VT开启
接下来配置桥接网卡,网上有现成的脚本可以使用,这个是我在之前测试convirt时发现的,实际上是convirt的环境配置工具。
先将工具包下载下来下了
wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
然后解压软件包吧
# tar zxvf convirture-tools-2.0.1.tar.gz
# /root/convirture-tools/install/managed_server/scripts/convirt-tool --bridge setup
执行完上述命令后,会自动将桥接网卡配置好,跑桥接自动好
启动服务
/etc/init.d/libvirt-guests start
/etc/init.d/libvirtd start
到此,kvm虚拟化环境就全部配置完毕了
接下来我们用虚拟机来安装一个windows2003实际体验一下。
首先下载virto for win驱动,下载地址如下
http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/
列表中的virtio-win-0.1-22.iso是安装windows完成后,使用的光盘驱动镜像(含virtio网卡和硬盘驱动)
软盘驱动目前从上面的url中移除了(原因不知),好在蚊子将其上传到了115网盘中,下载连接如下
http://115.com/file/annuyfsk#virtio-win-1.1.16.vfd
准备工作就绪,下面就开始安装windows2003
执行如下命令
# virt-install --name=win2k3 --ram=1024 --vcpus=2 --cpu host --cdrom=/data/win2003-1.iso --os-type=windows --disk /data/vm/win2k3.img,size=10,bus=virtio,cache=writeback --disk /data/virtio-win-1.1.16.vfd,device=floppy --network bridge=br0,model=virtio ?graphics vnc,port=9901,listen=192.168.10.100,password=123456 --hvm --force
下面对上面的命令进行解读
--name 给虚拟机起个名字
--ram 分配给虚拟机的内存,单位MB
--vcpus 分配给虚拟机的cpu个数
--cpu host
将宿主机的cpu配置传递给虚拟机,这样虚拟机可以使用宿主机cpu的很多features
--cdrom
指定windows安装文件的全路径
--disk
指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size 虚拟机文件大小,单位GB
bus
虚拟机磁盘使用的总线类型,为了使windows达到好的性能,这里使用virtio
cache 虚拟机磁盘的cache类型
之后还有一个--disk参数,这里是加载软驱文件device=floppy
--network bridge 指定桥接网卡
model 网卡模式,这里也是使用性能更好的virtio
--graphics
图形参数
执行完毕后,如果没有什么报错的话,即可以通过vnc的客户端进行连接了。之后的安装方式就和在真实服务器上安装windows一样了。这里蚊子截了几张图
如果不加载virtio的驱动,硬盘是认不出来的。如上图所示
加载软盘文件后,在安装windows2003时,点击F6,进入到加载驱动的界面。如上图
关于virt-install的命令可以查看man手册,或在线慢手册,地址为:http://linux.die.net/man/1/virt-install