原文地址:
讲到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各负其职。
阅读(1269) | 评论(0) | 转发(0) |