Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1688205
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类:

2010-10-16 15:12:22

原文地址:
 
讲到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被激活。
    • 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可以管理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各负其职。
阅读(1242) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~