提起Oracle VM就不能不谈到Xen。正如VMWare是全虚拟化技术实现的精典代表一样,Xen则是半虚拟化技术实现中的杰出代表。而Xen的经典案例则是我们耳熟能详的Amazon EC2,当今最大规模的基于Xen的公有云实现。Oracle VM正是基于Xen技术实现,因此,很好的理解Xen的工作原理也就可以帮助我们更好的理解Oracle VM

Xen架构说明

通过Xen理解Oracle VM原理

    简单来讲,Xen架构中主要包括四个部分:Dom0DomUDomU HVMXen Kernel。他们之间的工作原理是:

    Dom 0,也就是被修改过的Linux首先启动,然后将控制权交由自带的Xen Kernel,即:Hypervisor。此后,Xen Kernel将会运行在Ring 0Dom 0将会运行于Ring 1,其它的Dom U(也就是虚拟机)将会运行在Ring 2Xen Kernel将会接管大多数的虚拟化工作,例如:VCPU调度、内存管理、消息传递等 。

    注:这里的HVM是硬件全虚拟化,因为Xen要修改其上虚拟机的操作系统,如果操作系统是开源还好说,但如果是Windows这样闭源的系统就难办了,这时,就需要使用硬件芯片支持全虚拟化方式。

Oracle VM Hypervisor架构

通过Xen理解Oracle VM原理

    从图中我们可以看出,Oracle VM ServerXen架构非常相似,这里的工作原理就不必复述了,唯一不同的是,Dom 0中被加入了Oracle VM Agent。我们知道,Oracle VM作为一款企业级软件产品,不光光需要考虑产品功能,还要考虑到产品的管理、维护与系统扩展。Oracle VM Manager正是解决这方面的需求,如果说Oracle VM Manager是总司令,Oracle VM Server是大将的话,那么Oracle VM Agent则是他们之间的传令兵。当然,一个总司令不可能只管一个大将,一样道理,一个Oracle VM Manager可以管理很多Oracle VM Server

Oracle VM Agent架构

通过Xen理解Oracle VM原理

    Oracle VM Agent被安装在每台Oracle VM ServerOracle VM Manager通过Oracle VM Agent管理云行于Oracle VM Server上的虚拟机。Oracle VM Server可以承担三种不同的服务器职责:Server Pool MasterUtitility ServerVirtual Machine Server。同样,Oracle VM Agent也有三种实现,并且其数量与Oracle VM Server服务器担当的职责角色相对应。例如:如果一台Oracle VM Server担当三种服务器职责,那么这台Oracle VM Server上就会有三个Oracle VM Agent

Oracle VM架构

通过Xen理解Oracle VM原理

 

当我们部署Oracle VM时,将会引入以下组件:

· Oracle VM Manager Host:就是用来安装Oracle VM Manager软件的主机。一般来说Oracle VM Manger会安装一个数据库Oracle Database Express(或使用现有Oracle数据库)来存储配置与管理信息,还会安装一个基于OC4J的应用服务器,提供基于Web的管理控制台。用户可以通过浏览器对企业中的虚拟服务器或其它设备发送指令。Oracle VM Manger还会提供用于管理了Web Service

· Server Pool一个服务器池包含一个或多个物理服务器,这些使用服务器共享一个存储库。

· Servers一个Oracle VM Server一旦被划分到一个服务器池,就可以被赋予13个服务器功能,分别为:Server Pool Master功能、Utility Server功能及Virtual Machine Server功能。当然每种服务器功能对应一个Oracle VM Agent接口,也就是说如果一个Oracle VM Server被赋予三个服务器功能,则会有三个Oracle VM Agent被**。 

Server Pool Master:同一时刻,一个服务器池只能有一个Oracle VM Server被赋予Server Pool Master,此服务器可以被看作是Server Pool与外界的通道,它也是Server Pool的资源协调人,例如:当实现负载均衡需要启动一个虚拟机时,Server Pool Master将找到此服务器池中具备最大可用资源的虚拟机启动。当然,如果Server Pool Master出现故障,将自动将控制权交由服务器池中其它Oracle VM Server

Utility Server:主要负责IO密集形操作,例如:复制、删除、移动文件。最常用的例子是虚拟机的创建与销毁。

Virtual Machine Server:可以被看作是虚拟机容器。一个Server Pool中可以有一个或多个Virtual Machine Server

· 存储:主要指用于存放虚拟机、外部资源及其它数据的共享或非共享存储空间,此空间被单一服务器池中的所有服务器所共享。

    一个Oracle VM Manager可以管理1nServer Pool,每个Server Pool共享一块共享存储。每个Server Pool可以管理1nOracle VM Server,这些Oracle VM Server可以分布在多台物理服务器。我们可以根据物理硬件的实际情况为Oracle VM Server分配不同的职责。例如:

· Server Pool1:只配一台Oracle VM Server,同时将Server Pool MasterUtitility ServerVirtual Machine Server都赋予这台Oracle VM Server

· Server Pool2:将一台Oracle VM Server用于Server Pool MasterUtitility Server,然后用多台Oracle VM Server作为Virtual Machine Server。这样就将Server Pool的管理与IO处理等负载从用于运行VMOracle VM Server中移除。

· Server Pool3:这种配置方式让所有Oracle VM Server各负其职。

    成熟的产品要应用到企业中,成熟的解决方案是必须的。据oracle 公司合作伙伴、oracle linuxoracle VM全国总代理北京开源正泰科技有限公司人员介绍,oracle现在已经拥有了一整套成熟的虚拟化解决方案,可以为企业提供更为合适的虚拟化解决方案,助力企业的虚拟化进程。

转载于:https://blog.51cto.com/kaiyuan2010/500444

相关文章: