KVM 是 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 (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。


  使用 KVM ,可允许运行多个虚拟机,包括 Linux 和 Windows操作系统。 每个虚拟机有私有的硬件,包括网卡、磁盘以及图形适配卡等。


——安装KVM

(1.检查一下 CPU 是否提供了虚拟技术的支持(Intel VT 或 AMD SVM)

[root@kvm-128 ~]# egrep 'vmx|svm' /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt xsave avx f16c hypervisor lahf_lm arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep

(2.添加host主机

[root@kvm-128 ~]# echo "127.0.0.1  `hostname`" >> /etc/hosts

(3.安装 KVM 所需要的软件包

[root@kvm-128 ~]# yum install kvm virt-viewer virt-manager libvirt libvirt-python python-virtinst bridge-utils tunctl -y

(4.启动kvm服务

[root@kvm-128 ~]# /etc/init.d/libvirtd start
#有输出信息说明启动成功
[root@kvm-128 ~]# lsmod | grep kvm
kvm_intel              54285  0 
kvm                   333172  1 kvm_intel

(5.设置桥接网络

#br1
[root@kvm-128 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.64.128
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
#eth0
[root@kvm-128 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br1
[root@kvm-128 ~]# /etc/init.d/network restart

(6.修改配置文件qemu.conf

[root@kvm-128 ~]# sed -i 's/^#vnc_listen = "0.0.0.0"/vnc_listen = "0.0.0.0"/' /etc/libvirt/qemu.conf
#vnc登录密码
[root@kvm-128 ~]# sed -i 's/^#vnc_password = "XYZ12345"/vnc_password = "vnc2015"/' /etc/libvirt/qemu.conf
[root@kvm-128 ~]# sed -i 's/^#user = "root"/user = "root"/' /etc/libvirt/qemu.conf
[root@kvm-128 ~]# sed -i 's/^#group = "root"/group = "root"/' /etc/libvirt/qemu.conf

(7.重启kvm和network

[root@kvm-128 ~]# service network  restart
[root@kvm-128 ~]# service libvirtd restart

——安装虚拟机 [利用kickstart批量安装]

(1.建立qcow2格式磁盘文件

[root@kvm-128 ~]# mkdir -p /datadir/kvm/vhosts
[root@kvm-128 ~]# cd /datadir/kvm/vhosts
[root@kvm-128 vhosts]# qemu-img create -f qcow2 YunWei-201.qcow2 200G         
Formatting 'YunWei-201.qcow2', fmt=qcow2 size=214748364800 encryption=off cluster_size=65536 
[root@kvm-128 vhosts]# qemu-img info YunWei-201.qcow2
p_w_picpath: YunWei-201.qcow2
file format: qcow2
virtual size: 200G (214748364800 bytes)
disk size: 136K
cluster_size: 65536

(2.安装虚拟机 [参数详解:virt-install --help]

[root@kvm-128 vhosts]# virt-install --name YunWei-201 \
> --ram 1024 --vcpus=2 --os-variant=rhel6 \
#kickstart访问地址(iso镜像目录)
> --location=http://192.168.64.254/os/CentOS-6.5 \
#kickstart访问地址(ks配置文件)
> --extra-args="ks=http://192.168.64.254/CentOS-6.5.cfg" \
#磁盘文件路径
> --disk path=/datadir/kvm/vhosts/YunWei-150.qcow2,size=200,format=qcow2,bus=virtio \
> --bridge=br1,model=virtio \
#网卡mac信息
> --mac=00:50:56:3E:20:AE \
> --mac=00:50:56:3E:21:AE \
#vnc访问端口
> --vnc --vncport=5900 --vnclisten=0.0.0.0


开始安装......
搜索文件 vmlinuz......                                                                                                                                                                 | 7.9 MB     00:00 ... 
搜索文件 initrd.img......                                                                                                                                                              |  64 MB     00:00 ... 
创建域......                                                                                                                                                                            |    0 B     00:00     
无法打开显示:
运行 'virt-viewer --help' 来查看可用命令行选项的完整列表
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。

(3.使用vnc工具登录控制台,查看安装进度...

wKiom1Wwp8qB2U63AAMqBHP0KAg340.jpgwKioL1WwqcLR0WBVAAJFHkwOCgc081.jpgwKiom1Wwp-7ARr49AAF5bZoyfaI345.jpgwKioL1WwqeTS8MExAAKQimQ3SPg228.jpgwKioL1WwqfTREZavAAEwI-EPTJA144.jpg至此,KVM利用kickstart批量安装操作系统部署完成,不足之处请指出,相互学习。