作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。?
公众号:网络豆云计算学堂
?座右铭:低头赶路,敬事如仪
个人主页:?网络豆的主页?????
??????? 本系列将会持续更新云计算阿里云ACA的学习,了解云计算及网络安全相关从业的基础知识,以及阿里云产品的使用部署。提升个人对云计算产品技术的理解。
??????? 阿里云云计算助理工程师认证(ACA - Alibaba Cloud Certification Associate)是面向使用阿里云基础产品的专业技术认证,主要涉及阿里云的计算、存储、网络、云数据库、安全类的核心产品,是对学员掌握阿里云主要产品技术技能水平的全面检验和能力认证, 主要面向学生群体及开发者,也可以做为运维人员的入门证书。
虚拟化解决方案除了KVM之外,还有很多成熟的解决方案,包括XEN,VM,hyperV等。
本期讲解通过KVM虚拟化解决方案以及其他虚拟化解决方案,了解虚拟化产品相关概念,掌握虚拟化产品的基本概念与内容。
KVM全称 Kernel-based Virtual Machine,基于内核的虚拟机,KVM是采用硬件虚拟化技术的全虚拟化解决方案。
kvm诞生就定位于基于硬件虚拟化支持的全虚拟化实现,它以内核的形式加载之后,就将Linux内核变成一个Hypervisor,但硬件管理等还是通过Linux Kernel来完成的。所有他是一个典型的Type 2 Hypervisor。
KVM已经成为openstack用户主流的Hypervisor选择
KVM经过10年的不断发展和演变,已经非常成熟,他的下一步发展如下
除了KVM之外,还有其他的比较成熟的虚拟化解决方案,如下
xen的出现要早于KVM,可以追溯到20世纪90年代
?Xen是英国剑桥大学计算机实验室开发的一个开源新项目。它是可以直接运行在计算机硬件上而不是操作系统里的软件层,还可以在计算机硬件上同时运行多个客户操作系统(GuestOS)。在开源社区获得了非常大的推广。
Xen支持x86、x86-64、安腾、Power PC和ARM处理器,因而它能够在很多计算设备中运行。现阶段Xen支持Linux、NetBSD、FreeBSD、Solaris、Windows等常见操作系统。Xen在架构上是一个典型的Type 1 Hypervisor,与KVM不同。没有宿主机的概念,而是由Xen Hypervisor(VMM)管理硬件
完全虚拟化,又称“硬件虚拟化”(HVM),运行在虚拟环境里的虚拟机总是感觉自己运行在硬件上,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。
?XEN虚拟机管理程序上运行的完全虚拟化的虚拟机中,操作吸引是标准操作系统。不变更的操作系统版本,提供特殊硬件机器设备。XEN虚拟化的Windows虚拟机必须使用。
VMware是服务器虚拟化的领导者。近些年,其产品系列不断丰富,业务流程飞速发展。
VMware成立身1998年,自最开始服务器计算虚拟化技术处理方案提供商至今,早已培养了三个关键业务:软件定义数据中心、混合与多云计算、终端用户计算。它是云计算领域内的领导者。公司的发展可以分为三个关键节点。
VMware产品线非常全,既有PaaS产品,也有laaS产品;既有运行于Linux平台上的产品,也有Windows和Mac平台上的产品。
VMware Workstation是桌面级虚拟化产品,运行在Windows、Linux和Mac操作系统上,是Type 2
Hypervisor.
VMware ESXi是服务器级的虚拟化软件.与Workstation不同,它直接运行在硬件平台上,是Type1 Hypervisor.
Hyper-V是微软公司的服务器虚拟化商品,微软公司初次采用了虚拟机管理的技术 如VmwareESXi和Citrix Xen。这就意味着微软公司将更直接的和市场先峰VMware市场竞争,但仍然有所不同。
Hyper-V是微软公司明确提出的hypervisor虚拟化技术,能够实现桌面虚拟化。Hyper-V最早开始计划在2008年第一季度与Windows Server 2008与此同时发布。Hyper-V Server 2012已完成RTM版本的发布。
HyperV在架构上与Xen类似,也是Type 1 HypervisorHyper-V采用微内核的架构,兼顾了安全性和
性能的要求。
Hyper-V底层的Hypervisor 运行在最高的特权级别下,微软将其称为ring-1(而Intel 则将其称为
root mode),而虚拟机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。
Container容器严格来说与虚拟化软件并不是一个大类,容器不是某个虚拟化软件,而是某类软件的统称,包括Docker和LXC等。
另外,容器不是硬件平台级的虚拟化技术,而是软件运行环境的虚拟化,是一种操作系统级的虚拟化技术。
Linux Container容器技术的诞生(2008年)就解决了IT世界里“集装箱运输”的问题。Linux Container(简称LXC)它是一种内核轻量级的操作系统层虚拟化技术。Linux Container主要由Namespace和Cgroup两大机制来保证实现。
Container技术利用了Linux kernel提供的cgroup、namespace等机制,将应用之间隔离起来。
Namespace又称为命名空间,它主要做访问隔离。其原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,对于这类资源,因为每个容器都有自己的抽象,而他们彼此之间是不可见的,所以就可以做到访问隔离。
集装箱的作用当然是可以对货物进行打包隔离了,不让A公司的货跟B公司的货混在一起,不然卸货就分不清楚了。那么Namespace也是一样的作用,做隔离
Cgroup是control group,又称为控制组,它主要是做资源控制。原理是将一组进程放在放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程可用资源的目的。
光有隔离还没用,我们还需要对货物进行资源的管理。同样的,航运码头也有这样的管理机制:货物用什么样规格大小的集装箱,货物用多少个集装箱,货物哪些优先运走,遇到极端天气怎么暂停运输服务怎么改航道等等..通用的,与此对应的Cgroup就负责资源管理控制作用,比如进程组使用CPU/MEM的限制,进程组的优先级控制,进程组的挂起和恢复等等。
与硬件配置抽象层虚拟化hypervisor技术对比,容器的特性非常明显。传统虚拟化(虚拟机)技术不但部署环境与布署应用很麻烦,针对APP运用的可移植性也非常麻烦。例如把vmware中的vm虚拟机迁移到KVM就比较繁琐。但是,拥有容器技术就很简单,容器技术主要有如下的特性:
?