论文部分内容阅读
虚拟化技术现在被广泛应用,常用的VMware、KVM、XEN等属于平台虚拟化中的完全虚拟化或是硬件辅助虚拟化,目前,以各类容器技术为代表的操作系统级虚拟化,以其开销低、可伸缩性好等优点得以推广。由内核在操作系统上虚拟出多个复用宿主内核及库的新的系统实例来隔离不同的容器进程,它们无需提供硬件模拟和指令解释,借助由内核提供的Namespace和Cgroups两种机制,以低的复杂度实现了资源的隔离与管理,提供轻量高效的服务,但从容器的隔离性和资源的利用仍然有可以提升的空间。本文从基于Linux容器技术实现虚拟化的原理上进行探讨,提出了提升容器隔离性和优化容器资源利用的模型,拟优化容器运行时由资源闲置或竞争带来的浪费,同时通过容器分组和操作过滤提升容器引擎的隔离性。容器的资源限制主要通过Linux内核提供的Cgroup机制实现,优化模型使用了其资源子系统的配置参数来管理不同类型的资源,例如可以通过限额类参数进行运行环境的限制,由报警与自动控制类参数控制如oom等功能,最后由统计与监控类参数提供运行中的日志报告。优化模型要对原LXC平台进行修改,通过运行时动态监控容器的执行状态,实时调节其配置环境,对其使用的资源做到按需分配,为使容器不再无序执行于宿主机上,模型通过树来组织集群机器及机器上的容器,通过将所有容器按优先级队列的方式对运行中的容器按需按序进行优化。对原系统修改后,在其基础结构上添加了额外的功能模块,分别有在用户层对容器按组划分并部署的容器分组管理模块,以及集成在容器引擎中用来管理集群硬件资源,并模拟容器资源配置环境实现动态按需分配的虚拟容器资源池模块,还有同样集成在容器引擎中用来在容器组创建时或是运行中,通过监视单个容器的运行状态,对容器资源配给动态调节并按环境迁移的调度模块等。文章最后,通过对优化后的系统进行计算能力和内存读写的测试,并与其他几种主流虚拟化技术一同对比,说明优化后的性能优势,证明本文所提出的方案的合理性与有效性。