内容


使用 IBM Rational Software Architect 部署架构工具来进行虚拟化系统建模

Comments

引言

您可以使用 IBM Rational Software Architect 7.5 版本中的部署架构工具,以采用所谓 拓扑结构 的一类模型来描述各式电脑系统。这类拓扑模型可以包含私人电脑、服务器、硬件、电脑网络的构件、电脑系统的许多其他元素,以及各式各样的抽象层次等等。本文的作者假设读者对拓扑模型有了一个基本的了解。如果您想要查看对拓扑模型以及部署架构工具的介绍,那么您可以查看 参考资料 部分中所列出的链接。

虚拟化的特定技术与策略同样超出了本文的介绍范围,但是简单来说,虚拟化系统 就是一个被虚拟中介隔离开来的电脑系统。这个虚拟中介截断了虚拟机系统发往主机的请求,也就是在虚拟机系统与主机之间添加了一个虚拟化层。

在本文的背景下,在硬件上直接运行的操作系统是一个物理系统(或者“非虚拟化系统”)。为了创建一个虚拟化系统,您可以插入一个虚拟化层,以将操作系统与硬件隔离开来,从而管理这些构件之间的交流。有很多的技术与策略都可以服务于这个目的,但是通常来说,创建一个虚拟化系统涉及到一个 虚拟监管系统(hypervisor),这款软件负责向一个或者多个虚拟机系统呈现硬件的接口,并监听虚拟机系统与硬件之间通讯请求。

虚拟监管系统并不是让虚拟机系统直接地访问物理系统的数据存储、内存,以及处理器的处理能力,而是管理这些资源并提供对资源的中介性访问。例如,虚拟监管系统可能会限制虚拟机系统对内存的访问。物理硬件可能拥有大量的内存,但是虚拟监管系统为特定虚拟机系统的使用只分配了 1 GB 的内存。因此,虚拟机系统看起来好像是在一个只有 1 GB 内存的硬件(其实就是一个虚拟机服务器)上运行。与之类似,虚拟监管系统可能虚拟对数据存储、处理器处理能力或网络链接的中介访问。

通过这种方式,虚拟监管系统使得虚拟机系统要比物理系统更加灵活。例如,假设有两种相似的物理系统,每一个都运行不同的程序,如图 1 所示。

图 1. 两个简单的物理(非虚拟化)系统
两个系统与其程序的示意图
两个系统与其程序的示意图

因为每一个系统都有自己单独的硬件,所以每一个程序可用的进程数量是固定的。如果查询 A 使用地过于频繁,那么它可能运行地十分缓慢,而程序 B 可能就处于空闲状态。因此,硬件 B 上的处理能力可能就荒废了。通过在相同的硬件上运行两个程序,您可以将资源指向需要它们的地方。随着系统 A 与 B 在相同的硬件上虚拟化了,那么管理进程可以向使用非常频繁的程序,提供更大的处理能力与内存(见于图 2)。

图 2. 两个虚拟的系统
使用管理程序的 2 个系统
使用管理程序的 2 个系统

图 2 中的范例显示了可以位于单个物理系统上的一些虚拟化系统。虚拟化还可以以相反的方向运行;有些物理系统可以合并到单个的虚拟化系统上。这种类型的虚拟化的最一般的范例是 集群,在这组程序中服务可以一起协同以运行一个程序。除了在每一个物理系统上运行程序的实例之外,虚拟化层还向程序提供了单个的主机环境,以及物理系统的合并性资源。接下来的范例显示了位于程序单个实例之上的两组程序。

图 3. 服务器的简单集群
在一个集群上运行的单个程序
在一个集群上运行的单个程序

虚拟化支持 云计算 环境,它是一种动态的主机环境,提供了看似无限的计算资源。一些类型的元计算环境在今天会一直使用,但是通常意义上,一个 提供了一系列的虚拟机系统以及运行它们的管理进程。这些虚拟机系统的用户请求实例,使用它们,并在不再需要它们时对它们进行重新分配。通过这种方式,云系统使用虚拟化技术来提供了一种更加灵活的环境,这种环境配置和扩展起来要比物理的系统更加容易。

一个虚拟化系统可能提供了一种复杂的系统,或者它可能关注一个虚拟化的资源,例如,一个虚拟化的存储系统可能包含有一些物理硬盘,它作为单一的存储介质。访问存储系统的程序会与虚拟机系统进行通讯,而不是将数据直接存储到硬盘上。通过这种方式,您可以将一些硬盘合并到单个的虚拟化硬盘之中。

图 4. 一个简单的存储系统
包含有三个硬盘的存储汇单元

虚拟化还有许多这里没有进一步讨论过的用户与优势,例如为测试运行一些独立环境的能力,或者协调性,以及将虚拟机系统从一个物理主机移动到关系主机的能力。有许多的 IBM 文件都可以在特定环境的虚拟化中得到。如果您想要得到更多的信息,那么您可以查看 参考资料 部分。

基本的虚拟化与拓扑编辑器

关于虚拟化的观点的一部分就是,一个程序不需要知道它是在一个物理系统上运行,还是在一个虚拟机系统上运行。对于应用来说,虚拟机系统看起来就像物理系统一样,运行虚拟机系统的物理系统的具体硬件信息对于应用程序来说被隐藏起来了。按照相同的方式,您都可以使用单独的拓扑表,来将物理系统的具体硬件信息对于程序隐藏起来。

例如,假设有一个简单的物理系统,如图 5 所示,它由硬件与操作系统所组成。

图 5. 一个简单的物理系统
图示:“物理硬件”,“物理 OS”

该系统可以运行一个 虚拟镜像,它是一种封装性的环境,在这个环境中您可以运行一个虚拟机系统。如图 6 所示,该虚拟镜像可能包含有虚拟硬件以及一个虚拟的操作系统。

图 6. 一个简单的虚拟镜像
运行有虚拟镜像的简单物理系统
运行有虚拟镜像的简单物理系统

注意虚拟服务器单元与物理服务器单元相类似(虚拟机操作系统单元类似于物理操作系统单元,除了物理操作系统拥有虚拟监管系统功能之外,这一点稍后将会讨论到)。虚拟机系统可以按照与物理系统完全相同的方式来运行应用程序。

在拓扑中,您可以创建一个分配为虚拟机系统的拓扑图,来使得虚拟化更加接近完美。当您将虚拟机系统中的单元显示为一个新的拓扑图(通过右击虚拟机系统中的单元,然后点击 Visualize > Add to New Topology Diagram)时,新的拓扑图只显示了虚拟机系统之中的单元,就算这些单元仍然连接到物理系统上也是这样。

现在通过导入拓扑图,您可以使用其他拓扑中的虚拟机系统。当您从其他的拓扑架构中导入一个拓扑图时,您可以创建单元的一个新实例以及该拓扑图中的其他拓扑元素。您可以在导入拓扑图的虚拟机系统上运行应用程序,就像您在其他的系统上运行一样。结果,拓扑的虚拟机系统表现就像真实世界的虚拟机系统一样:它可以运行应用程序,而不用暴露其潜在的物理系统或者只是表面上的虚拟化。

图 7. 将程序置于一个虚拟的系统上
来自另一个图的程序运行好了
来自另一个图的程序运行好了

通过这种方式,如果一个设计调用一个主机栈,您可以替换一个协调的虚拟机系统。例如,接下来的拓扑架构包含了一个概念性的主机栈,以及必须转有程序的系统的规格。

图 8. 一个简单的概念性主机栈
流程图

有了所有概念性的单元,主机栈中的单元就可以有对其他单元的链接,这些其他单元会执行所有相同的任务作为概念性的单元。例如,Java™ 2 平台、Enterprise Edition(J2EE)程序服务器单元可以实现为任意的程序服务器,这些服务器支持相同版本的 Java EE,不管该服务器是什么牌子的。您可以将该主机栈实现为一个物理系统:

图 9. 将一个概念性的栈实现为一个物理的系统
单元连接至导入表中的单元
单元连接至导入表中的单元

但是,按照相同的方式,您还可以将概念性的主机栈实现为一个虚拟化系统:

图 10. 将概念性的栈实现为一个虚拟化系统
单元连接至导入虚拟机系统
单元连接至导入虚拟机系统

您不需要将虚拟机系统封装到单独的表中,但是如果您这么做,是一种值得建议的好的建模实践操作,因为它可以使拓扑架构变得独立与瘦小。

处理虚拟化系统

您不是从组中设计一个虚拟化系统,而是可以将一个已存在的物理系统转化为一个虚拟机系统。例如,您可以创建一个虚拟化的测试环境,它可以作为产品环境的影像。您还可以选择,为物理系统获得一种设计,并决定虚拟地实施系统。像这样将一个物理系统转化为虚拟机系统,需要向虚拟镜像添加物理的系统,然后配置虚拟镜像,以使用虚拟镜像主机的网络连接与存储空间。

将物理系统转化为虚拟机系统

按照下面的步骤来将一个物理的系统转换为一个虚拟的系统:

  1. 创建您想要转换为虚拟的原始物理系统的拓扑架构。您可以复制和粘贴其单元,来复制一个已存在的系统,或者您可以创建新的单元,或者直接使用物理单元。
图 11. 实现虚拟化的一个物理系统
 WebSphere 程序服务器系统
  1. 如果系统硬件并没有一个网络界面单元,那么您可以向服务器添加一个 L2 的界面单元。该单元显示了网络连接,例如有线的或者无线的以太网连接。
  2. 如果操作系统并没有一个 IP 界面单元,那么您可以添加一个 IP 界面单元,以显示操作系统对网络连接的使用(IP 界面与 L2 界面单元之间并没有连接)。
图 12. 向物理系统添加网络连接
图中显示了一个新的网络连接单元
  1. 向拓扑架构添加一个虚拟的图片单元。您可以使用一个通用的虚拟镜像,例如 Palette 中 Virtualization 折叠项中的(Virtual Image)模板,如果您想要处理特定的虚拟化技术的话,或者您可以使用一个特定的 VMWare 或者 Xen 虚拟镜像。
  2. 将物理的服务器单元拖拉至虚拟镜像之中,以让服务器成为虚拟镜像的一个成员。
图 13. 将物理硬件移动到虚拟镜像
物理硬件现在位于镜像上了
物理硬件现在位于镜像上了
  1. 向虚拟化镜像添加一个虚拟的硬盘定义单元和一个虚拟的以太网连接单元。如果镜像是一个通用的虚拟镜像,那么您可以从(Virtual Disk Def)模板中使用一个通用的虚拟硬盘定义单元,从(Virtual Ethernet NIC Def)模板使用一个通用的虚拟以太网连接。否则,您可以使用同类的 Xen 或者特定 VMWare 的模板。

这些单元显示了特定于某个虚拟化系统的配置信息。在这种情况下,它们代表了虚拟硬盘及网络连接的配置情况。当您将虚拟化系统按照某种拓扑结构建模时,您可以添加这些信息,以规划虚拟化环境怎样管理虚拟化系统的。

图 14. 向虚拟镜像添加虚拟的资源
新的虚拟化资源单元
新的虚拟化资源单元
  1. 对于虚拟以太网连接的功能,您可以将连接的类型设置为主机系统的网络连接,以使用,例如桥连的,只有主机的或者 NAT。
图 15. 设置连接类型
为功能性编辑属性
为功能性编辑属性
  1. 将虚拟化镜像置于适当的虚拟监管系统之下:
    • 对于一个通用的镜像,您可以向操作系统单元添加虚拟化的虚拟监管系统功能。
    • 对于一个 VMWare 镜像,您可以使用一个 VMWare ESX 单元。
    • 对于一个 Xen 镜像,您可以操作系统单元添加 virtualization.XenHypervisor 功能。
  2. 将虚拟监管系统置于适当的硬件单元之上,例如一个 Palette 的 Hardware 折叠项的 x86 服务器单元上。
图 16. 运行虚拟化镜像
位于虚拟监管系统之上的概念性虚拟镜像
  1. 创建一个从虚拟镜像中的虚拟化以太网连接到物理服务器中 L2 连接的依附性链接。该链接代表了服务器提供给虚拟机系统的网络访问。添加虚拟化硬盘与网络链接单元之后,这种依赖性链接就会判断额外的信息,以描述虚拟镜像的配置了。
图 17. 使用关系连接来指定一个网络连接
网络连接的关系连接
网络连接的关系连接

完整的虚拟机系统表现就像一个物理系统一样。正如前面介绍的那样,您可以将虚拟化系统导入到其他的拓扑结构之中,并且使用它就像您在使用一个物理系统一样。为了让重复使用更加方便,您可以在单独的拓扑图上显示虚拟化系统,这样您就可以将该系统导入到其他的拓扑之中,而不用暴露物理主机的细节了。

图 18. 在新虚拟化服务器上运行一个应用程序
运行一个导入虚拟机系统上的组件
运行一个导入虚拟机系统上的组件

对一个已存在的虚拟镜像规划部署

如果您已经有一个虚拟镜像,那么您可规划一个拓扑中镜像的部署问题了。拓扑编辑器会识别 Xen XMDOMAIN 文件和 VMWare VMX 及 VMSD 文件。这些文件提供了关于一个虚拟主机的信息,而拓扑编辑器可以创建一些基于这些信息的单元。但是,这些文件并没有包含足够多的信息,以建模位于虚拟镜像上的操作系统与其他的软件。您可以使用拓扑编辑器,以添加关于虚拟镜像中系统的信息,以规划怎样部署虚拟镜像。(但是,拓扑编辑器不能对虚拟镜像文件作出更改)。

按照下面的步骤来部署一定拓扑架构的已存在虚拟化镜像:

  1. 拖拉一个虚拟镜像,例如一个 VMWare VMX 文件,到一个拓扑结构之上(图 19)。拓扑编辑器创建了一个匹配的虚拟镜像单元(图 20),根据虚拟镜像的数据,它包含了硬盘定义单元以及网络连接单元。
图 19. 将虚拟化镜像拖拉到拓扑编辑器上
 从 Project Explorer 视图中拖拉虚拟镜像
从 Project Explorer 视图中拖拉虚拟镜像
图 20. 代表虚拟镜像的单元
代表镜像、硬盘驱动器以及网络连接的新单元
代表镜像、硬盘驱动器以及网络连接的新单元
  1. 在适当的虚拟监管系统单元上运行虚拟镜像:
    • 对于 VMWare 镜像,您可以使用一个 VMWare ESX 单元,或者一个带有 virtualization.VMwareHypervisor 功能的操作系统单元,它代表了运行在操作系统之上的 VMWare 软件。
    • 对于 Xen,您可以使用一个操作系统单元,并添加 virtualization.XenHypervisor 功能以代表 Xen 主机软件。
图 21. 运行虚拟镜像
将镜像置于 VMWare ESX 单元之上
  1. 在虚拟镜像单元之内,添加适当的单元以使用虚拟化的镜像。例如,您可能要添加一个服务器硬件以及操作系统,以代表虚拟机系统的主机功能。
图 22. 呈现位于虚拟机系统之上的软件
向镜像添加一个操作系统单元
  1. 在适当的主机栈上运行虚拟监管系统单元。

虚拟拓扑架构的范例

接下来的部分向您展示了拓扑编辑器中建模虚拟机系统的一些范例。拓扑的许多其他范例可以在产品帮助中获得:点击 Help > Help Contents 然后展开 Samples > Technology Samples > Topologies。本文中所显示的许多拓扑架构可以在 参考资料 部分中获得。

VMWare ESX

VMWare ESX 系统(图 23)是在硬件上直接运行的虚拟监管系统的一种类型,而不是在操作系统上运行。VMWare ESX 的一个单独的实例可以运行一个或者多个虚拟化镜像,它们中的每一个都包含有一个虚拟机系统。虚拟镜像还包含了虚拟硬盘定义与虚拟网络连接单元,它们代表了虚拟监管系统向虚拟机系统所提供的虚拟资源。

图 23. VMWare ESX 系统的范例
简单 VMWare ESX 系统与两个运行的镜像
简单 VMWare ESX 系统与两个运行的镜像

Xen

Xen 是一种开放源的虚拟技术。为虚拟使用 Xen 的拓扑看起来非常类似于使用 VMWare,除了 Xen 虚拟监管系统由物理操作系统单元之上的 virtualization.XenHypervisor 功能代表除外,后者使用的是单独的单元。

图 24. Xen 系统的范例
 Xen 虚拟机系统与两个受监管的镜像
Xen 虚拟机系统与两个受监管的镜像

集群

集群的一个简单范例在引言中给出了。您可以在范例 特定域的拓扑架构(参见 参考资料 部分中)中得到相似的范例。集群涉及到了为一个或者多个程序或者虚拟机系统,将一组的物理系统合并为单独的主机环境。图 25 显示了运行有应用的一组 IBM® WebSphere® Application Servers。

图 25. 服务器集群的范例
运行 Java EE 程序服务器的集群
运行 Java EE 程序服务器的集群

System z

从 IBM Rational Software Architect 7.5.4 开始,部署架构工具就包含了代表 IBM® System z® 构件的单元以及其他的拓扑元素。System z 支持两个主要领域内的虚拟化:逻辑分区的硬件层次(LPAR)与 IBM® z/VM® 的操作系统层次。System z 硬件的一部分可能有一些不同的处理器,您可以将这些处理器分配给系统上的 LPAR。您可以使用 LPAR 来将System z 硬件的单个片段分解为硬件的单独虚拟化片段。这些 LPAR 中的每一个都可以在操作系统上运行,例如 z/VM、 IBM® z/VSE™ 或者 IBM® z/Linux。

图 26. System z 系统上 LPAR 的范例
单个System z 系统上的三个 LPAR
单个System z 系统上的三个 LPAR

为了提供虚拟化进一步的层次,z/VM 的一个实例可以运行一个或者更多的其他操作系统,叫做 z/VM 子系统。这些子系统提供了另一个层次的虚拟化。图 27 中的拓扑架构显示了一个运行有不同虚拟机系统的简单 System z 系统。

图 27. 完整 System z 系统与 z/VM 子系统的范例
系统上的四个 z/VM 子系统
系统上的四个 z/VM 子系统

在本例中,系统拥有四个物理的处理器:两个中央处理器(CPs)和两个 z 程序辅助处理器(zAAPs)。这些处理器会在三个 LPAR 之间进行共享,它们都是在单独的虚拟操作系统上运行。其中有一个虚拟操作系统会进一步分为两个客方的虚拟机系统,一个运行 z/Linux,而另一个运行 z/VSE。通过这种方式,System z 的虚拟化支持您将一个大型的电脑分解为一些虚拟机系统,并按照需要分布系统资源。

总结

本文中的范例向您展示了使用部署架构工具建模虚拟机系统的一些方法。它还向您展示了怎样将一个虚拟化系统分解为拓扑图,这演示了虚拟机系统与物理主机之间的相互独立性。通过这种方式,部署架构工具以帮助您规划复杂程序或者复杂环境的部署。这些范例拓扑中的一些可以在 下载 部分的项目中找到。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=525068
ArticleTitle=使用 IBM Rational Software Architect 部署架构工具来进行虚拟化系统建模
publish-date=09212010