1.什么是虚拟化html
虚拟化,是指经过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每一个逻辑计算机可运行不一样的操做系统,而且应用程序均可以在相互独立的空间内运行而互不影响,从而显著提升计算机的工做效率。前端
2.什么是虚拟化技术ios
虚拟化技术是一套解决方案。完整的状况须要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操做系统自己。即便只是CPU支持虚拟化技术,在配合VMM的软件状况下,也会比彻底不支持虚拟化技术的系统有更好的性能。docker
3.虚拟化的类型数据库
全虚拟化(Full Virtualization)
全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操做系统和原始硬件,VMM在guest操做系统和裸硬件之间用于工做协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,可是性能方面不如裸机。
安全
半虚拟化(Para Virtualization)
半虚拟化是另外一种相似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,可是它的guest操做系统集成了虚拟化方面的代码。该方法无需从新编译或引发陷阱,由于操做系统自身可以与虚拟进程进行很好的协做。半虚拟化须要guest操做系统作一些修改,使guest操做系统意识到本身是处于虚拟化环境的,可是半虚拟化提供了与原操做系统相近的性能。
服务器
1.OpenStack:开源管理项目
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个主要的组件组合起来完成一些具体的工做。OpenStack由如下五个相对独立的组件构成:网络
2.KVM(Kernel-based Virtual Machine)基于内核的虚拟机
KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux作大量的事,如任务调度、内存管理与硬件设备交互等。
KVM最大的好处就在于它是与Linux内核集成的,因此速度很快。
架构
3.VMWare (Virtual Machine ware)
VMWare (Virtual Machine ware)是一个“虚拟PC”虚拟机管理管理软件。它的产品可使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了彻底不一样的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时须要从新启动机器。VMWare是真正“同时”运行,多个操做系统在主系统的平台上,就象标准Windows应用程序那样切换。并且每一个操做系统你均可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至能够经过网卡将几台虚拟机用网卡链接为一个局域网,极其方便。安装在VMware操做系统性能上比直接安装在硬盘上的系统低很多,所以,比较适合学习和测试。负载均衡
1.设计
VMware软件套件是自底向上的架构,下端边界为虚拟机管理器。像VMware的vSphere和vCloud director产品都是依赖于免费的ESX(i) 虚拟机管理器, ESX(i)虚拟机管理器为他们提供了很是优秀的部署架构。
VMware的软件系统是封闭的,而且软件的发展路线是彻底遵循VMware本身的发展目标,用户或消费者在此方面没有任何控制权。
OpenStack做为一个开源系统,没有任何一家单独的公司在控制OpenStack的发展路线。
2.功能
(1)VMware vMotion
vMotion是vSphere DRS、DPM和主机维护三大功能的合集。其中虚拟机动态迁移容许将一台虚拟机在零关机的状况下由一台宿主机迁移到另外一台上,这本来是须要共享存储的支持的,但在vSphere 5.1中,VMware已经不须要经过共享存储实现动态迁移了。当一台虚拟机由一个宿主机迁移到另外一个上时,虚拟机的内存状态和数据都要同步迁移过去。若是是共享存储的状况,实际上数据是不须要进行迁移的,只须要变化指向数据存储的连接而已。这在加速了迁移速度的同时也减小了在复制过程当中网络的负载。
(2)OpenStack 动态迁移
KVM动态迁移容许一个虚拟机由一个虚拟机管理器迁移到另外一个,说的详细一点,你能够来来回回将一台虚拟机在AMD架构主机与Intel架构主机上进行迁移,可是须要注意的是,64位的虚拟主机只能被迁移到64位的宿主机上,可是32位的则有32位和64位两种选择。在动态迁移过程当中,不能再对虚拟机进行操做,可是虚拟机内的用户仍是能够在虚拟机内部继续进行工做的。KVM主要仍是依赖于共享存储,某种程度上,这相对来讲是须要一些资金投入的。
(3)OpenStack块存储迁移
在OpenStack当中,KVM支持块存储迁移,这也就是说虚拟机迁移不是必须须要共享存储的支持的。在块迁移的场景下,虚拟机的内存状态与数据都将被迁移,可是迁移操做也须要消耗两端的CPU资源而且操做花费时间较比共享存储来讲要长一些。在某些用户场景当中,若是咱们比较关注于主机的可维护性,而且不想花费过多经费,那么应用块存储迁移将是好的解决方案。同时,若是在没有共享存储的环境中,咱们想对计算节点进行内核维护、安全升级,那么保证虚拟机服务不被打断,块存储迁移也是理想选择。
(4)VMware DRS 和 DPM
基于vMotion,DRS能够动态监控虚机机及宿主机的当前使用情况,而且为宿主机的负载均衡提供支持。
基于vMotion, DPM将虚拟机从低负载宿主机迁移掉,而且关闭以达到减小电能损耗。当负载增加,DPM将宿主机重启,而且部署新的虚拟机以知足负载须要。
(5)OpenStack调度器
OpenStack包含了对于compute和volume的调度器,经过一系列的管理员设定的规则参数和过滤器,OpenStack调度器将虚拟机部署到合适的宿主机上。在过滤器方面,调度器是很是灵活的,用户能够本身完成JSON格式的过滤器,而且过滤器还包含不少预约义的过滤器。虽然OpenStack调度器很是灵活,可是仍是不能彻底替代DRS,缘由以下:
(6)High Availability(高可用)
在vSphere中,虚拟机级别的高可用性是容许在虚拟机或者ESX(i)主机出错时,在不一样宿主机部署相同的虚拟机。这里不要和容错(FT)机制混淆,高可用的意义在于当有一些东西出错了,能够在必定时间内自我修复。高可用是在硬件出问题的时候保证虚拟机的正常个工做,若是真的出错了,那么只能在不一样的ESX(i)主机上启动虚拟机,这也可能形成服务的中断。
目前并无官方声明OpenStack支持虚拟机级别的高可用性,这个特性在Folsom版本被提出,可是后续又被放弃了。目前OpenStack有一个孵化项目Evacuate, 其做用是为OpenStack提供虚拟机级别高可用支持。
(7)Fault Tolerance(容错)
VMware容错机制是经过监控虚拟机的状态和全部变化,将这些变化同步到第二台备份ESX(i)服务器之上。容错的概念在于不管是主仍是从宿主机出现问题,只要一方能正常工做,那么宿主机上的虚拟机都保持正常工做。
在OpenStack中没有针对于容错的功能,而且截至目前也没有计划去完成这些功能。将来,KVM也再也不支持镜像操做功能。
OpenStack和Docker之间是很好的互补关系。Docker的出现能让IaaS层的资源使用得更加充分,由于Docker相对虚拟机来讲更轻量,对资源的利用率会更加充分。
Docker主要针对Paas平台,是以应用为中心。OpenStack主要针对Iaas平台,以资源为中心,能够为上层的PaaS平台提供存储、网络、计算等资源。
第四层主要有Heat、Magnum、Sahara、Solum和Murano等,其中Heat主要提供orchestration服务,Magnum主要提供容器服务,Sahara主要提供大数据服务,咱们能够经过Sahara很方便地部署Hadoop、Spark集群。Solum主要提供应用开发的服务,而且能够提供一些相似于CI/CD的功能。Muarno主要提供应用目录的服务,相似于App Store,就是用户能够把一些经常使用的应用发布出来供其余用户去使用。最右边是Kolla,Kolla的主要功能是容器化全部的OpenStack服务,便于OpenStack安装部署和升级。
主要包括Nova、Heat、Magnum、Sahara、Solum、Murano和Kolla等。由图3得知,和Docker相关的大部分项目都在PaaS和SaaS层。
(1)Nova Docker Driver
这个Driver是OpenStack和Docker的第一次集成,主要是把Docker做为一种新的Hypervisor来处理,把全部的Container当成VM来处理。提供了一个Docker的Nova Compute Driver,集成很简单,经过Docker REST API来操做Container。
(2)Heat Docker Driver
由于Nova Docker Driver不能使用Docker的一些高级功能,因此社区就想了另外一个方法,和Heat去集成。
由于Heat采用的也是插件模式,因此就在Heat实现了一个新的Resource,专门来和Docker集成。这个Heat插件是直接经过REST API和Docker交互的,不须要和Nova、Cinder和Neutron等来进行交互。
(3)Magnum
在OpenStack和Docker集成的过程当中,咱们发现从OpenStack现有的项目中,找不到一个很好的集成点,虽然和Nova、Heat都作了集成的尝试,但缺点很明显,因此社区就开始了一个新的专门针对Docker和OpenStack集成的项目Magnum,用来提供容器服务。
Mangum的主要目的是提供Container服务的,它同时还能够和多个Docker集群管理系统集成,包括K8S、Swarm、CoreOS等。和这几个平台集成的主要缘由是能让用户能够很方便地经过OpenStack云平台来集成K8S、CoreOS、Swarm这些已经很成型的Docker集群管理系统,促进Docker和OpenStack生态系统的融合。
(4)Murano
Murano是Mirantis贡献的,而且也进了OpenStack Namespace。也和K8S集成了,用户能够经过Murano使用K8S的功能,能够经过Murano部署Pod、Service、Replication Controller等。Murano主要是在OpenStack基础上提供应用目录服务。Muarno和Solum之间实际上是有关系的,Solum主要是用来开发应用的,Solum把应用开发完后,能够经过Murano来发布。用户能够经过Murano挑选本身须要的应用服务,经过应用服务组合构建本身的应用。
参考文章:
http://www.4u4v.net/shen-du-jie-xi-docker-he-openstack-xi-tong-ji-cheng.html