+ -
当前位置:首页 → 问答吧 → 通过Xen理解Oracle VM原理

通过Xen理解Oracle VM原理

时间:2011-02-25

来源:互联网

找了很久终于找到了对oracle VM介绍得比较清晰的文章了。
提起Oracle VM就不能不谈到Xen。正如VMWare是全虚拟化技术实现的精典代表一样,Xen则是半虚拟化技术实现中的杰出代表。而Xen的经典案例则是我们耳熟能详的Amazon EC2,当今最大规模的基于Xen的公有云实现。Oracle VM正是基于Xen技术实现,因此,很好的理解Xen的工作原理也就可以帮助我们更好的理解Oracle VM。
Xen架构说明


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

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

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


从图中我们可以看出,Oracle VM Server与Xen架构非常相似,这里的工作原理就不必复述了,唯一不同的是,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架构


Oracle VM Agent被安装在每台Oracle VM Server。Oracle VM Manager通过Oracle VM Agent管理云行于Oracle VM Server上的虚拟机。Oracle VM Server可以承担三种不同的服务器职责:Server Pool Master、Utitility Server、Virtual Machine Server。同样,Oracle VM Agent也有三种实现,并且其数量与Oracle VM Server服务器担当的职责角色相对应。例如:如果一台Oracle VM Server担当三种服务器职责,那么这台Oracle VM Server上就会有三个Oracle VM Agent。
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一旦被划分到一个服务器池,就可以被赋予1到3个服务器功能,分别为:Server Pool Master功能、Utility Server功能及Virtual Machine Server功能。当然每种服务器功能对应一个Oracle VM Agent接口,也就是说如果一个Oracle VM Server被赋予三个服务器功能,则会有三个Oracle VM Agent被激活。
o Server Pool Master:同一时刻,一个服务器池只能有一个Oracle VM Server被赋予Server Pool Master,此服务器可以被看作是Server Pool与外界的通道,它也是Server Pool的资源协调人,例如:当实现负载均衡需要启动一个虚拟机时,Server Pool Master将找到此服务器池中具备最大可用资源的虚拟机启动。当然,如果Server Pool Master出现故障,将自动将控制权交由服务器池中其它Oracle VM Server。
o Utility Server:主要负责IO密集形操作,例如:复制、删除、移动文件。最常用的例子是虚拟机的创建与销毁。
o Virtual Machine Server:可以被看作是虚拟机容器。一个Server Pool中可以有一个或多个Virtual Machine Server。
· 存储:主要指用于存放虚拟机、外部资源及其它数据的共享或非共享存储空间,此空间被单一服务器池中的所有服务器所共享。

一个Oracle VM Manager可以管理1到n个Server Pool,每个Server Pool共享一块共享存储。每个Server Pool可以管理1到n个Oracle VM Server,这些Oracle VM Server可以分布在多台物理服务器。我们可以根据物理硬件的实际情况为Oracle VM Server分配不同的职责。例如:
· Server Pool1:只配一台Oracle VM Server,同时将Server Pool Master、Utitility Server与Virtual Machine Server都赋予这台Oracle VM Server。
· Server Pool2:将一台Oracle VM Server用于Server Pool Master、Utitility Server,然后用多台Oracle VM Server作为Virtual Machine Server。这样就将Server Pool的管理与IO处理等负载从用于运行VM的Oracle VM Server中移除。
Server Pool3:这种配置方式让所有Oracle VM Server各负其职。
图片见附件:
通过Xen理解Oracle VM原理.rar (78.31 KB)
通过Xen理解Oracle VM原理.rar (78.31 KB)
下载次数: 0
2011-2-25 11:24


[ 本帖最后由 kyzt_product 于 2011-2-25 11:24 编辑 ]

作者: kyzt_product   发布时间: 2011-02-25

LZ,图都是你自己本地的。。。。。。别人看不到啊

作者: dn833   发布时间: 2011-02-25