在现代IT系统的核心组件中开源技术已经成为不可或缺的力量,比如x86架构操作系统Linux、Unix操作系统BSD、MySQL数据库、Apache Web服务等。
据统计,超过50%的技术开发人员都信奉开源哲学,时至今日,已经完全形成了一套成熟完整的开源软件生态体系。在开源技术欣欣向荣的现象背后,真正推动其迅速发展的本质往往是因为其蕴含的价值:
开源软件普遍价格实惠,用户能够将更多的资金投入到核心业务上;
开源软件使得厂商甚至客户有权利自由的修改软件,产生不同形态的产品,用户能有更多选择产品的空间,防止被某一厂商绑定;
开源软件在定制化开发方面有天然优势,可以根据用户业务系统特点定制化,为业务系统的高效稳定运行提供良好的支撑。
主流服务器虚拟化技术的开源门派有两个——KVM和Xen。
广义上的KVM架构由KVM内核模块(狭义的KVM)和QEMU-KVM模拟模块组成。KVM内核模块是在Linux内核的基础上增加的虚拟机管理模块,通过重用Linux内核中已经完善的进程调度、内存管理、I/O管理等模块。QEMU-KVM模拟模块负责为虚拟机提供一个互相隔离的虚拟化资源环境,包括vCPU、vRAM、vDisk、vNIC等,每一个虚拟机都是QEMU-KVM的一个进程,由Hypervisor中的进程调度模块统一管理调度。
广义上的Xen架构由Xen Hypervisor和虚拟域(Domain)两大部分组成。Xen Hypervisor负责将CPU和RAM两大硬件资源虚拟出互相隔离的资源,供虚拟域使用,同时管理和监控虚拟域的资源和系统运行情况;每个虚拟域就是一个虚拟机环境,其中虚拟域又分为特权虚拟域(Dom0)和非特权虚拟域(DomU),Dom0先于DomU启动,DomU访问I/O资源必须要经过Dom0,Dom0负责I/O资源的虚拟化,可以直接访问I/O物理资源。如果将Xen架构比作完整的汽车,Xen Hypervisor就是其中的发动机,安装了一系列域管理和控制工具的Dom0就是其他零部件,两者合一才能使虚拟化系统正常运转起来。
相比于Xen架构,KVM架构有三大的优势:
同等硬件资源环境下,KVM的性能表现更优;
KVM架构天然的继承Linux内核更新迭代带来的系统优化,几乎不费力气,就完成了一次功能升级,但对于Xen架构来说,每一次Xen Hypervisor内核或者Linux内核版本升级,Xen架构需要同步优化联调Xen Hypervisor内核和特权域基于Linux的内核,才能实现整个虚拟化内核的升级;
KVM架构与Openstack云平台架构衔接地最好,Openstack架构对KVM架构的支持最好,目前,OpenStack云平台95%以上的虚拟化计算资源池使用了KVM架构。