首先,咱们须要明白一点云计算并不等于虚拟化,云计算只是使用到了虚拟化的技术,而虚拟化的技术分为不少种,如软件虚拟化、网络虚拟化、服务器虚拟化等等,而KVM虚拟化是服务器虚拟化的一种,指经过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每一个逻辑计算机可运行不一样的操做系统,而且应用程序均可以在相互独立的空间内运行而互不影响,从而显著提升计算机的工做效率。虚拟化使用软件的方法从新定义划分IT资源,能够实现IT资源的动态分配、灵活调度、跨域共享,提升IT资源利用率,使IT资源可以真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。跨域
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。服务器
利用Linux的功能 – 不用重复发明轮子网络
构建在信任的,稳定的企业级平台之上架构
调度、内存管理、普遍的硬件支持等dom
高级特性ide
继承可扩展性,NUMA支持,电源管理,热拔插等工具
SELinux安全,实时调度,RAS支持等性能
独特的hybrid-mode操做,提供了最大的灵活性ui
Linux的应用程序和虚拟机同时并存在同一台服务器上,有效的利用系统硬件资源,高效平滑的将虚拟化整合到企业数据中心的核心
高性能,基于内核优秀的调度技术,利用硬件虚拟化特性
■qemu-kvma ■libvirt ■virt-install
#查看VMX虚拟化是否开启 [root@kvm ~]# grep -E '(vmx|svm)' /proc/cpuinfo #安装KVM管理工具 [root@kvm ~]# yum -y install qemu-kvm libvirt virt-install #设置libvirtd开机自启动 [root@kvm ~]# systemctl enable libvirtd #启动libvirtd [root@kvm ~]# systemctl start libvirtd
#建立一块10G的虚拟硬盘 [root@kvm ~]# qemu-img create -f raw /opt/RedHat-Demo.raw 10G #建立虚拟机 [root@kvm ~]# virt-install --virt-type kvm --name RedHat-Demo --ram 1024 --cdrom=/opt/RedHat-Server-6.3.iso --disk path=/opt/RedHat-Demo.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole #列出虚拟机 [root@kvm ~]# virsh list --all #关闭虚拟机 [root@kvm ~]# virsh shutdown RedHat-Demo #启动虚拟机 [root@kvm ~]# virsh start RedHat-Demo
后台进程、API接口、virsh组件
[root@kvm ~]# virsh edit RedHat-Demo #修改xml文件使其支持热添加CPU个数,最大4个,当前1个 <vcpu placement='auto' current='1'>4</vcpu> #执行cpu添加命令 [root@kvm ~]# virsh setvcpus RedHat-Demo 2 --live #查看虚拟机当前的内存大小 [root@kvm ~]# virsh qemu-monitor-command RedHat-Demo --hmp --cmd info balloon #修改虚拟机内存大小(热修改) [root@kvm ~]# virsh qemu-monitor-command RedHat-Demo --hmp --cmd balloon 512
#建立桥接虚拟网卡 [root@kvm ~]# brctl addbr br0 #将真实网卡与桥接虚拟网卡互换 [root@kvm ~]# brctl addif br0 eth0 #删除真实网卡的IP地址 [root@kvm ~]# ip addr del dev eth0 192.168.137.52/24 #设置桥接虚拟网卡的IP地址,并启动 [root@kvm ~]# ifconfig br0 192.168.137.52/24 up #设置网关路由 [root@kvm ~]# route add default gw 192.168.56.1 *注:以上将网络修改成桥接网络会使网络中断,因此建议使用脚本进行 [root@kvm ~]# virsh edit RedHat-Demo <interface type='bridge'> <mac address='52:54:00:0b:ab:e9'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>