在现代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就是其他零部件,两者合一才能使虚拟化系统正常运转起来。