虚拟化技术(下)

虚拟化技术(下)

3.3常见的虚拟化技术解决方案
1)OpenStack
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack除了有 Rackspace 和 NASA 的大力支持外,还有包括 Dell、Citrix、 Cisco、 Canonical等重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。
OpenStack 设计的初衷就是适应分布式应用的架构,应用的组件在该平台中可以跨越多个物理设备或虚拟设备。这些类型的应用也被设计成随着规模的增加,可以通过添加应用实例或者重新平衡应用实例间的负载。它要实现的目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。从逻辑上来看,OpenStack 由三个部分组成:控制模块,网络模块及计算模块。
控制模块主要运行一些API接口服务、消息队列、数据库管理模块及Web的接口等;网络模块主要提供为各个虚拟机提供网络服务;计算模块则主要负责处理消息、控制虚拟机等操作。
从OpenStack 的组成来看,它包含了众多的模块,并且这些模块都可以分布式部署。主要包含以下几个重要模块:Nova、Keystone、Ceilometer、Horizon、Glance、Neutron、Cinder Swift 等。Nova 主要提供计算功能;Keystone 负责认证与授权;Ceilometer用于资源与系统运行情况的监控;Horizon 为用户提供了方便管理的Web平台;Neutron负责网络环境的搭建与虚拟化;Glance 用于镜像文件的管理;Cinder 负责块存储,可以为用户提供 SaaS (Storage as a Service, 存储即服务)服务;Swift 同样负责存储,但它主要负责数据对象、镜像、数据备份等平台所用的数据存储,同样也可以对Cinder的数据进行备份存储。
2)KVM
KVM:就是Keyboard Video Mouse的缩写。KVM 交换机通过直接连接键盘、视频和鼠标 (KVM) 端口,让您能够访问和控制计算机。KVM 技术无需目标服务器修改软件。这就意味着可以在 BIOS 环境下,随时访问目标计算机。KVM 提供真正的主板级别访问,并支持多平台服务器和串行设备。
模拟 KVM 交换机系统直接连接任意计算机上的键盘、视频和鼠标。它提供完全独立于软件和网络操作系统的简易即插即用安装系统,并使用户能够对多台计算机进行实时访问。模拟 KVM 最适用于用户和系统处于同一位置的环境,是访问集中化多 PC 和多机架环境的理想技术。
KVM over IP将键盘、视频和鼠标数据数字化,并使用 IP 技术移动 KVM 数据。KVM over IP 直接连接至任意计算机上的 KVM 信号,无需侵入计算机,无需添加软件/硬件。该技术利用了现有网络基础设施,支持本地和远程用户。KVM over IP 在不同硬件环境中工作,是管理多地点数据中心和分支办公室的理想技术。
KVM over IP设备一般具备一个本地用户和多个远程用户,实现多用户同时管理服务器。
3)Hyper—V
Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware ESXi和Citrix Xen的基于hypervisor的技术。这也意味着微软会更加直接地与市场先行者VMware展开竞争,但竞争的方式会有所不同。
Hyper-V是微软提出的一种系统管理程序虚拟化技术,能够实现桌面虚拟化 。Hyper-V最初预定在2008年第一季度,与Windows Server 2008同时发布。Hyper-V Server 2012完成RTM版发布。
软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。
代码量很小,不包含任何第三方的驱动,非常精简,安全可靠、执行效率高,能充分利用硬件Hyper-V 采用微内核的架构,兼顾了安全性和性能的要求。由于 Hyper-V 底层的Hypervisor 资源,使虚拟机系统性能更接近真实系统性能。Hyper-V 采用基于 VMBUS (Virtual Machine Bus) 的高速内存总线架构,所有来自虚拟机的硬件请求,不论是显卡、鼠标、键盘或者其他设备,都可以直接经虚拟化服务客户机(VirtualizationServiceConsumer, VSC) , 通过VMBUS 总线发送到根分区的虚拟化服务提供者(Virtualization Service Provider, VSP) , VSP 则调用对应的设备驱动直接访问硬件,中间不再需要通过Hypervisor的管理。这种方式下,每个虚拟机的硬件请求,不再需要经过用户模式、内核模式的多次上下文切换转移,从而极大地提高了运行效率。
Hyper-V 设计的目的是为广大的用户提供更为熟悉以及成本效益更高的虚拟化基础设施如果想要在 Hyper-V 中运行 Linux 操作系统也是没有问题的,只需要安装与 Linux 相关的组件即可。这些组件可以是支持 Xen 的 Linux 内核,也可以是专门为 Linux 设计的集成组件。当然,这些组件本身就已经集成了相关的驱动,所以用户不再需要关心在 Hyper-V中的
驱动相关的问题。在安装完成这些组件后,Hyper-V可以很完美地支持Linux.Hyper-V可以采用半虚拟化和全虚拟化两种模拟方式创建虚拟机。半虚拟化方式要求虚拟机与物理主机的操作系统(通常是版本相同的 Windows) 相同,以使虚拟机具备高性;全虚拟化方式要求CPU 支持全虚拟化功能,如Inter-VT或AMD-V, 以便能够创建使用不同的操作系统的虚拟机,如Linux 或者 Mac OS.
4)VMware
VMware(中文名威睿",纽约证券交易所"代码:VMW) 虚拟机软件,是全球桌面到数据中心虚拟化解决方案的领导厂商。全球不同规模的客户依靠VMware来降低成本和运营费用、确保业务持续性、加强安全性并走向绿色。2008年,VMware年收入达到19亿美元,拥有逾150,000的用户和接近22,000多家合作伙伴,是增长最快的上市软件公司之一。VMware总部设在加利福尼亚州的帕罗奥多市(Palo Alto)。
VMware(纽约证交所代码:VMW)在虚拟化和云计算基础架构领域处于全球领先地位,所提供的经客户验证的解决方案可通过降低复杂性以及更灵活、敏捷地交付服务来提高IT效率。VMware使企业可以采用能够解决其独有业务难题的云计算模式。VMware提供的方法可在保留现有投资并提高安全性和控制力的同时,加快向云计算的过度。 VMware拥有 400,000多家客户和55,000多家合作伙伴,它的解决方案可帮助各种规模的组织降低成本、提高业务灵活性并确保选择自由。
ESXi与VMware的其他产品不一样,它是直接运行在裸机上(无操作系统)的,有自己的一套内核。启动时,最先启动 Linux 内核,之后则开始加载一系列特殊的虚拟化组件,当然
也包括ESX 本身的核心模块(VMkemel).ESXi中最主要的虚拟机是基于Linux 内核的虚拟机,它最开始被ESXi自带的服务终端启动起来。在正常的运行过程中,VMkernel 接管硬件控制权,它运行在硬件上。但是从4. 1版本后,ESXi 不再集成Linux 内核,它将VMkernel进行了更新,更像是一个完整的微内核了,它本身就提供了各种接口,最重要的是与硬件的接口,与客户操作系统的接口以及与服务终端的接口。
VMware WorkStation
VMware Workstation是一款功能强大的桌面虚拟计算机软件,它不能运行在裸机上,必须
要有操作系统的支持才行,所以它是寄居架构类型的虚拟化产品。VMware WorkStation 可以让用户在单一的桌面上同时运行不同的操作系统,可以模拟完整的网络环境,可以管理多台虚拟机。
VMware Player
VMware Player与 VMware Workstation 的功能是一样的,但它是免费的。VMware Player
在同一时刻只能运行一台虚拟机,但可以管理多台虚拟机。
5)Xen
Xen采用ICA协议,通过一种叫做准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有上佳的表现。与那些传统通过软件模拟实现硬件的虚拟机不同,在Intel VT-X支持下3.0版本之前的Xen需要系统的来宾权限,用来和Xen API进行连接。到目前为止,这种技术已经可以运用在NetBSD, GNU/Linux, FreeBSD和Plan 9系统上。Sun微系统公司也正在积极地将Solaris移植到Xen平台之上。
Xen虚拟机可以在不停止的情况下在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。
Xen目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。
XEN 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。
XEN 是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,XEN 可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源最少。目前稳定版本为XEN3.0。支持万贯虚拟化和超虚拟化。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Red Hat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。
Xen 的特点与优势是非常显著的。
1.内核非常小,接口也少。因为是微内核设计,使用了非常少的内存,接口数据也少,
所以它比其他的虚拟化架构更加安全,更加稳定。
2. Xen 支持各种各样的操作系统,包括 Windows、NetBSD及OpenSolaris 等操作系统。在Xen上面安装最多的操作系统是 Linux.
3. 驱动隔离。Xen框架允许系统中主要的设备驱动都保持在虚拟机本身内部运行。如果其中一个驱动运行异常,只需要将运行驱动的虚拟机重启或虚拟机内部相应的驱动模块重启便可,这个重启不会影响到系统上正在运行的其他系统。它们都是相互独立,互不影响的。
4.半虚拟化。因为是Xen 半虚拟化的,所以相应的 Guest OS 需要做一些修改与调整,这可以使得它的运行效率比全虚拟运行的效率高了很多。另外,它也可以运行在一些不支持虚
拟化的硬件设备中。最后,Xen 也支持全虚拟化,但只支持硬件辅助的全虚拟化,即硬件需要支持 Intel-VT或AMD-V等。
Xen目前运行在X86架构的机器上,需要P6或更新的 CPU (如 Pentium Pro、Celeron、Pentium II、Pentium III、Pentium IV、Xeon、AMD Athlon、AMD Duron) 才可以运行。Xen 支持多处理器,并且支持超线程(Simultaneous Multithreading, SMT) .Xen以高性能、占用资源少著称,赢得了 IBM、AMD、HP、Red Hat 和 Novell 等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。
6)Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
Docker是一个开源的应用容器引擎,在容器里面运行的实例都是相互独立的,属于操作
系统虚拟化的一种。Docker 让开发者可以将应用以及依赖包打包到一个可移植的容器中,然后发布到任何流行的操作系统上。最重要的是,这些容器不依赖于任何语言、框架、包括系统。镜像(打包文件)是一个轻量级的、独立的可执行包,而这个包已经包含了它运行时需要的所有依赖,包括软件、库、环境与配置文件等。而容器则是一个运行时的镜像实例,即镜像加载到了内存中运行。这个镜像的运行完全是与主机环境相隔离开的,它除了访问主机的文件与端口外,与主机没有其他任何关系。简单来说,容器类似于沙箱,所有沙箱的运行相互不影响,系统的其他进程运行也不会影响到沙箱,它们相互之间不会有任何接口,相互独立。但沙箱与系统相关,而 Docker 实现的容器则与系统无关,它所打包的镜像已经包含了镜像所需要的所有依赖,所以只需要一次打包,所有Docker的环境都可使用。同样的,Docker 的使用与部署都很容易,几乎没有性能开销,Docker 可以很容易地部署到本地或数据中心。因为容器是直接运行在本地主机内核之上的,相对来说,在容器里面的运行效率比在虚拟机里面的效率更加高效,每一个容器的运行就是一个单独的进程,它们所消耗的内存也比虚拟机所消耗的内存更少。
对于虚拟机框架来说, 如果要运行不同操作系统的应用程序,则在此框架上是完全没有问题的。因为VMM可以根据需要为每个虚拟机模拟相应的硬件,并安装相应的操作系统,最后再将应用程序安装到此操作系统中并运行。因为虚拟机的特性,所以不管是什么类型的应用程序都是可以运行的。
对于容器来说, 由于它们都在同一个内核框架之上,因此就不能运行不同操作系统的应用程序。如同时运行 Linux 与 Windows 两种不同类型的应用程序,因为 Docker 不支持同时启动 Linux与Windows 两种不同类型的 Container (容器)。如果HOST OS 是Linux, 则 Docker 可以启动多个与Linux内核相关的多个容器,并在这些容器中运行与Linux 相关的应用(APP) .如果 HOST OS是Windows, 则可以启动多个与 Windows相关的容器,并在这些容器中运行与Windows 相关的应用。对于容器来说,由于它们不需要虚拟机,所以使用的内存更少,运行速度更快。
同时,虚拟机框架与容器框架还有一个区别在于,虚拟机可以直接运行在裸金属架构中,而Docker 只能是基于HOST OS 来进行构建。VMM 会模拟物理硬件
设备,则Docker 不需要,所有的容器共享 HOST OS 的物理资源与内核。因此 Docker 中运行的应用程序是与HOST OS 强相关的,而在由 VMM管理的VM中运行的应用程序则与 HOST OS没有任何关系,HOST OS也是可有可无的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值