注:本文内容均由本人在工作、学习、实践中总结后发布,文中少部分内容来源自“MAN 文档”、“官方帮助手册”或摘抄自网络,但文中主体内容、结构编排均有本人独立编写完成,不涉及版权纠纷;请编辑勿修改“创作类型”!致谢!
KVM作为linux内核的一部分,有着无法比拟的优势,相信KVM的大范围企业应用指日可待。
一、KVM宿主服务器环境配置
1. 查看CPU是否支持VT技术
cat/proc/cpuinfo|egrep'vmx|svm'flags : fpu vme de pse tsc msr pae mce cx8 apicmtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs btsrep_good aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16xtpr pdcm dca sse4_1 lahf_lm dts tpr_shadow vnmi flexpriority
如果执行指令后有类似返回,则证明CPU支持VT
2. 安装KVM组件
yumgroupinstallVirtualizationyumgroupinstall"VirtualizationPlatform"
3. 检查KVM模块加载
lsmod|grepkvmkvm_amd374344kvm2928151kvm_amd
如果执行指令后有类似返回,则证明KVM模块加载正常,否则检查BIOS中是否开启了CPU VT支持
4. 安装virtshvirt-install 管理工具
yuminstalllibvirt-clientpython-virtinst
二、虚拟机安装
1.建立虚拟机磁盘镜像文件
qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势
qemu-imgcreate-fqcow2test.qcow220G //建立qcow2格式磁盘文件qemu-imgcreate-frawtest.raw20G //建立raw格式磁盘文件qemu-img info test.qcow2 //查看已经创建的虚拟磁盘文件
2. 建立虚拟机示例
创建1G内存、2核CPU、单网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install--namerhel5.4\--bootnetwork,cdrom,menu=on\--ram1024--vcpus=2\--os-variant=rhel5.4\--accelerate\--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso\--diskpath=/troodon/KVM/test01/test01.img,size=30,format=qcow2,bus=virtio\--bridge=br0,model=virtio--mac=54:52:00:01:79:e9\--vnc--vncport=5991--vnclisten=0.0.0.0.
创建8G内存、4核CPU、双网卡,磁盘和网络驱动使用virtio的linux虚拟机
virt-install--namerhel5.2\--bootnetwork,cdrom,menu=on\--ram8192--vcpus=4\--os-variant=rhel6\--cdrom=/troodon/ISO/CentOS-6.2-x86_64-bin-DVD1.iso\--diskpath=/troodon/KVM/test01/test01.img,format=qcow2,bus=virtio\
--bridge=br0,model=virtio --mac=54:52:00:0b:8b:79 \--bridge=br1,model=virtio --mac=54:52:00:7e:8e:cd \--vnc--vncport=5991--vnclisten=0.0.0.0
创建1G内存、1核CPU、单网卡,磁盘和网络驱动使用virtio的windows虚拟机
virt-install--namewin2k3\--ram1024--vcpus=1\--os-variant=win2k3\--accelerate\--cdrom=/troodon/ISO/Windows//win2k3sp1.iso\--diskpath=/troodon/KVM/win2k3/win2k3.img,size=5,format=qcow2,bus=virtio\--bridge=br0,model=virtio\--vnc--vncport=5991--vnclisten=0.0.0.0
一些解释:
virtio驱动对于磁盘和网络I/O性能有很大提升(默认qemu驱动),linux虚拟机安装完成后自动加载virtio驱动,windows虚拟机需要下载virtio驱动后安装
--mac参数指定网卡mac地址,如果不指定系统会自动分配
虚拟机配置文件存储在 /etc/libvirt/qemu 目录,配置文件为XML格式
开机自启动的虚拟机配置可以通过链接放到 /etc/libvirt/qemu/autostart 目录,配置文件为XML格式
3. 虚拟机安装指令virt-install 简介
--name指定虚拟机名称,virsh操作指定虚拟机时所需要的参数,不可以重复。--ram分配内存大小,安装完成后可以用virsh调整。--vcpus分配CPU核心数,最大与实体机CPU核心数相同,安装完成后也可以用virsh调整。--disk指定虚拟机镜像,size指定分配大小单位为G。--network网络类型,此处用的是默认,一般用的应该是bridge桥接。--os-variant指定操作系统类型,此处使用的是标准Linux2.6,其他的可以通过manvirt-install详细查看。--accelerate加速,具体什么原理还不太清楚。--cdrom指定安装镜像所在。--vnc启用VNC远程管理,一般安装系统都要启用。--vncport指定VNC监控端口,默认端口为5900,端口不能重复。--vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里将其改为0.0.0.0以便可以通过外部连接。
4. 虚拟机管理指令virsh 简介
virshlist列出当前虚拟机列表,不包括未启动的virsh list --all 列出所有虚拟机,包括所有已经定义的虚拟机virshstartdomain-name启动指定虚拟机virshshutdowndomain-name停止指定虚拟机virshrebootdomain-name重新启动指定虚拟机virshautostartdomain-name指定虚拟机开机自动启动