本节将详细介绍下KVM的安装和配置,KVM是红帽5.4发行版中推出的最新虚拟化技术,严格上说它是完全虚拟化的产品,VMware和vpc,virtualbox等也都是完全虚拟化的产品,而xen则是半虚拟化的产品,半虚拟化从性能上说要比完全虚拟化快很多,但xen有个缺点,它是重量级的虚拟机,修改了大量的内核源代码,它的guest机器必须理解xen化的硬件,也就是说xen上面只能运行红帽5以后的系统,后来红帽修改了发行版4中的一个版本,使其也能支持xen,而且Xen的完全虚拟化需要借助硬件CPU的VT技术,这个在inter cpu上叫vmx,在AMD cpu中叫svm, xen的完全虚拟化可以说是个失败品,运行效率甚至赶不上VMware,而且操作界面相当不友好,但这不能否认xen在半虚拟化世界的霸主地位,kvm是kernel virtual module的简写,其实kvm借鉴了xen在半虚拟化上的很多成就,虽然kvm是完全虚拟化的产品,但在关键的硬盘和网卡上支持半虚拟化virtio,在很大程度上提高了性能,kvm是轻量级虚拟化的代表,也需要硬件vt技术的支持,另外从操作界面上看,xen和kvm都是用virt-manager工具,差别不是很大,但不可以在同一台机器上同时安装且运行Xen和KVM;另外kvm在只能运行在红帽企业版5.4 64位系统上,同时需要关闭selinux …
1:使用yum库来安装kvm所需的软件,如果在安装系统的时候输入了安装序列号,可以勾选kvm,虚拟化来安装这些软件
[root@jsb-ylw-5052 ~]# yum -y install kvm kvm-* etherboot-roms-kvm.x86_64 virt-*
2:启动libvirtd服务,并保证下次自动启动
[root@jsb-ylw-5052 ~]# service libvirtd start
Starting libvirtd daemon: [ 确定 ]
[root@jsb-ylw-5052 ~]# chkconfig libvirtd on
3:桥接器的生成,这个在安装xen后,会自动创建桥接网络virbr0,kvm在这点上似乎不够友好
[root@jsb-ylw-5052 ~]# cd /etc/sysconfig/network-scripts/
[root@jsb-ylw-5052 network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@jsb-ylw-5052 network-scripts]# cat ifcfg-eth0
# nVidia Corporation MCP77 Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=90:E6:BA:70:B2:28
IPADDR=192.168.50.24
NETMASK=255.255.255.0
ONBOOT=yes
BRIDGE=br0 //将eth0桥接到br0
[root@jsb-ylw-5052 network-scripts]# cat ifcfg-br0
# nVidia Corporation MCP77 Ethernet
DEVICE=br0
BOOTPROTO=static
HWADDR=90:E6:BA:70:B2:28
IPADDR=192.168.50.24
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Bridge //br0为桥接
4:重启网络,测试网络连通性
[root@jsb-ylw-5052 network-scripts]# service network restart
[root@jsb-ylw-5052 network-scripts]# ifconfig
br0 Link encap:Ethernet HWaddr 90:E6:BA:70:B2:28
inet addr:192.168.50.24 Bcast:192.168.50.255 Mask:255.255.255.0
eth0 Link encap:Ethernet HWaddr 90:E6:BA:70:B2:28
inet6 addr: fe80::92e6:baff:fe70:b228/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
………………………………………………输出省略…………………………………………
[root@jsb-ylw-5052 network-scripts]# ping www.6688.cc -c 2
PING www.6688.cc (203.208.39.99) 56(84) bytes of data.
64 bytes from bi-in-f99.1e100.net (203.208.39.99): icmp_seq=1 ttl=243 time=42.4 ms
64 bytes from bi-in-f99.1e100.net (203.208.39.99): icmp_seq=2 ttl=243 time=42.8 ms
5:划lvm,将虚拟机的硬盘存储设定为lvm,可以提高I/O提高性能, 装windows7需要15G左右的硬盘空间,可以使用lvextend命令扩展分区大小
[root@jsb-ylw-5052 ~]# fdisk -l /dev/sda |grep LVM
/dev/sda14 31385 32601 9775521 8e Linux LVM
[root@jsb-ylw-5052 ~]# pvcreate /dev/sda14
Physical volume “/dev/sda14” successfully created
[root@jsb-ylw-5052 ~]# vgcreate vol0 /dev/sda14
Volume group “vol0” successfully created
[root@jsb-ylw-5052 ~]# lvcreate -L 9.32G -n win7 vol0
Rounding up size to full physical extent 9.32 GB
Logical volume “win7” created
6:开始安装,ID下面标注为qemu,表示kvm
如果下图中的完全虚拟化按钮是灰色的,那就说明你的硬件不支持VT技术,也有可能硬件支持,而BIOS却禁用了它,我的AMD cpu就是这种情况,通过命令:cat /proc/cpunifo |grep -E ‘vmx|svm’ 可以查看硬件是否支持VT
前面如果没有做桥接器,下图中就不会出现桥接br0
安装完成后需要将默认的IDE硬盘和网卡换成virtio,并打上驱动程序,这样性能就可以提升很多了,驱动文件已上传至Linux公社FTP里,地址为:http://www.linuxidc.com/Linux/2010-04/25329.htm详细的安装步骤这里就不赘述了。
下面附上我在WinXP下的virtio截图,可以看到硬盘和网卡已经驱动正常了……