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系列是基于软件模拟的Full-Virtualization。
KVM虚拟化平台部署
检查硬件环境是否支持虚拟化
[[email protected] ~]# egrep --color ‘(vmx|svm)‘ /proc/cpuinfo vmx 表示INTEL,svm表示AMD
注:(我在vmware中搭建的Centos6.5 x64的,且支持CPU Inter VT-X虚拟化技术,物理机BIOS已经打开,但是检查模块没有vmx.)
解决方法(仅供vmware测试机):在workstation上实现嵌套虚拟化,需要编辑虚拟机的vmx文件,添加vhv.enable = "TRUE" 找到虚拟机安装文件,带有.vmx后缀,添加即可。
# cat /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 syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi ept vpid
安装模块
[[email protected] ~]# modprobe kvm [[email protected] ~]# modprobe kvm_intel [[email protected] ~]# lsmod | grep kvm kvm_intel 55496 0 kvm 337772 1 kvm_intel
安装kvm管理工具
# yum install qemu-kvm qemu-kvm-tools -y # ln -sv /usr/libexec/qemu-kvm /usr/sbin/ # rpm -qa | grep kvm qemu-kvm-tools-0.12.1.2-2.479.el6.x86_64 qemu-kvm-0.12.1.2-2.479.el6.x86_64
qemu-kvm的标准选项
qemu-kvm的标准选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。 -name name:设定虚拟机名称; -M machine:指定要模拟的主机类型,如Standard PC、ISA-only PC或Intel-Mac等,可以使用“qemu-kvm -M ?”获取所支持的所有类型; -m megs:设定虚拟机的RAM大小; -cpu model:设定CPU模型,如coreduo、qemu64等,可以使用“qemu-kvm -cpu ?”获取所支持的所有模型; -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]:设定模拟的SMP架构中CPU的个数等、每个CPU的核心数及CPU的socket数目等;PC机上最多可以模拟255颗CPU;maxcpus用于指定热插入的CPU个数上限; -numa opts:指定模拟多节点的numa设备; -fda file -fdb file:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱; -hda file -hdb file -hdc file -hdd file:使用指定file作为硬盘镜像; -cdrom file:使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用;将file指定为/dev/cdrom可以直接使用物理光驱; -drive option[,option[,option[,...]]]:定义一个硬盘设备;可用子选项有很多。 file=/path/to/somefile:硬件映像文件路径; if=interface:指定硬盘设备所连接的接口类型,即控制器类型,如ide、scsi、sd、mtd、floppy、pflash及virtio等; index=index:设定同一种控制器类型中不同设备的索引号,即标识号; media=media:定义介质类型为硬盘(disk)还是光盘(cdrom); snapshot=snapshot:指定当前硬盘设备是否支持快照功能:on或off; cache=cache:定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe和writethrough四个; format=format:指定映像文件的格式,具体格式可参见qemu-img命令; -boot [order=drives][,once=drives][,menu=on|off]:定义启动设备的引导次序,每种设备使用一个字符表示;不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备,n-p表示网络适配器;默认为硬盘设备; -boot order=dc,once=d
时间: 2024-10-14 06:57:01