内容


在 IBM PureApplication System 中使用基础架构即服务的最佳实践

Comments

简介

IBM PureApplication System W1500 v1.0 和 W1700 v1.0(以下简称 PureApplication System)提供了一种在云中运行工作负载的环境。为了做到这一点,它提供了大量具备同时运行数千个计算机程序的计算机硬件。为了有效管理并利用这种硬件,该系统采用几种行业最佳实践来虚拟化其硬件资源,并给予工作负载极大灵活性以实现在云中随处运行。通过了解这些技术以及该产品如何利用这些技术,您将更好地了解 PureApplication System 所提供的云环境。

本文是一个三部分系列文章的第二部分,该系列文章介绍 PureApplication System 为托管应用程序运行时环境提供的硬件和软件基础:

每篇文章都以上一篇为基础,全面地解释了这一基础。

为了理解 PureApplication System 中的资源虚拟化,我们将探讨合并到云计算系统中的交付模型(该方法用于虚拟化不同类型的资源)以及该产品如何利用这些方法。

云交付模型

虚拟化硬件资源通常称为 “基础架构即服务”。它是三种云交付模型(又称为云服务模型)之一:

  • 基础架构即服务 (IaaS) 为计算、存储和网络提供了一种虚拟化硬件资源的环境。
  • 平台即服务 (PaaS) 提供了一种虚拟化的应用程序运行时环境,包括操作系统;应用服务器、数据库和消息传递之类的中间件;以及缓存、监控和安全之类的共享服务。
  • 软件即服务 (SaaS) 在一个集中托管环境中提供网络可访问的业务应用程序,该环境是高度可靠且可伸缩的。

模型是渐增的,且每个模型以前一个模型为基础。图 1 说明了云交付模型。

图 1. 云交付模型
云交付模型

文章 导航 IBM 云,第 1 部分: 云技术入门 更加详细地介绍了 云交付模型。这些交付模型不是特定技术,而是云计算系统的架构目标。本文着重介绍第一层基础架构即服务,并讲述如何在 PureApplication System 中实现基础架构即服务。

资源虚拟化

基础架构即服务是一个可通过资源虚拟化实现的目标。资源虚拟化 将工作负载(即,正在运行的程序)从其运行的底层硬件进行解耦。对于要运行的程序,它肯定需要硬件资源。但是,对于 “在云中” 运行的工作负载,它们肯定不能被特定硬件集所束缚。这意味着工作负载必须在多个冗余硬件集中的任何一个中运行。要实现此目标,云应该虚拟化硬件资源以将工作负载与硬件分离并使云能够管理这些资源的工作负载使用情况。

云将组织其硬件资源以使工作负载运行延续到三个主要类型,这是所有计算的基础:

  • 计算资源:这是任意程序运行所需的 CPU 和内存。
  • 网络资源:这在程序之间的连接,支持程序进行通信。
  • 存储资源:这使程序能持续保存其状态。

PureApplication System 采用了虚拟化各种资源的技术:

  • 使用虚拟机 (VM) 虚拟化计算资源。
  • 使用虚拟局域网 (VLAN) 虚拟化网络资源。
  • 使用存储区域网 (SAN) 虚拟化存储资源。

这些技术都不是 PureApplication System 的新发明,这才是关键所在。该系统通过利用众所周知且已被证明的行业最佳实践创建虚拟化云环境。对于弄清楚系统的云如何为工作负载提供一个完全虚拟化的环境来说,了解这些技术是什么以及产品如何利用这些技术非常重要。

计算资源虚拟化

计算机程序的运行需要计算资源,即 CPU 和内存,通常认为是计算机。通常将程序安装在计算机上,然后在该计算机的资源上运行程序。如果这些资源不可用,要么是因为这些资源无法正常工作,要么是因为它们正忙于运行其他程序,因此这个程序无法运行。要确保程序始终正常运行,最佳实践是将其从任意特定的计算资源集中解耦,即一种名为 “平台虚拟化” 的方法。

平台虚拟化 将计算机程序从其所运行的计算机硬件中解耦。这使程序能在任意可用的硬件中运行。为了实现这一点,需要将该程序打包成一个在虚拟化平台上运行的虚拟化应用程序。虚拟化应用程序 是一种独立于任何特定硬件集进行安装的程序,因此它可以在虚拟化平台的随意位置运行。虚拟化平台 是一组硬件,通过共享一组基本硬件将其配置为像多组硬件那样运行。

虚拟机

平台虚拟化通常使用一个或多个虚拟机管理程序来运行一组虚拟机。虚拟机 (VM) 是一种模仿物理计算机的软件,像计算机一样运行操作系统,但该计算机是一个虚拟机,因为 VM 的虚拟机管理程序将操作系统从底层硬件中解耦。虚拟机管理程序 — 也称之为虚拟化管理器、虚拟机监视器 (VMM) 或平台虚拟器 — 是一种只运行虚拟机的专用操作系统。运行多个虚拟机的虚拟机管理程序使所谓的多台计算机能在一台物理计算机中运行,同时还支持虚拟机共享物理计算机的硬件资源。虚拟机管理程序产品示例包括 VMWare vSphere™ Hypervisor (ESXi) 和 IBM PowerVM™。

文章 导航 IBM 云,第 1 部分: 云技术入门 介绍了使用虚拟机管理程序的平台虚拟化技术。图 2 展示了虚拟化堆栈和在虚拟机管理程序中运行的虚拟机,而且该虚拟机管理程序可以直接在物理硬件上运行(类型 1),也可以在硬件的主机操作系统中运行(类型 2)。每个 VM 通常有惟一的 IP 地址,这样它可作为独立计算机进入网络。虚拟机管理程序本身需要另一个 IP 地址以便进行远程管理。

图 2. 虚拟机管理程序的类型
虚拟机管理程序的类型
虚拟机管理程序的类型

PureApplication System 中的虚拟机

计算节点是 PureApplication System 中最基本的计算资源。不同产品规格的主要区别是计算节点的数量,表现为这些计算节点所包含的 CPU 内核数量(从 32 到 608)。更多计算节点意味着系统具有更强大的计算能力。

计算节点 是一组计算机硬件,包含可访问存储和网络的 CPU 和内存。它实际上是一台非常小巧的计算机,类似于刀片服务器。作为一台计算机,计算节点可能会运行操作系统。但是,在 PureApplication System 中,而不是传统的操作系统中,每个计算节点运行一个虚拟机管理程序。

如前所述,图 2 展示了虚拟机管理程序如何使多个虚拟机共享一组底层硬件。如图 3 所示,在 PureApplication System 中,物理硬件是一个计算节点,类型 1 虚拟机管理程序直接在计算节点上运行,并且每个虚拟机在操作系统中运行一个中间件服务器。

从技术角度讲,VM 通常能够运行安装在操作系统中的任何程序。要在 PureApplication System 上部署该 VM,需将其开发成一个虚拟设备,如文章 导航 IBM 云,第 1 部分: 云技术入门技术 所述。然而,PureApplication System 主要使用其虚拟机来运行中间件服务器。

图 3. 计算节点中的虚拟机管理程序堆栈
计算节点中的虚拟机管理程序堆栈

在计算节点上运行的虚拟机管理程序品牌取决于系统模式:

  • W1500:VMware vSphere Hypervisor (ESXi)
  • W1700:IBM PowerVM

虚拟化应用程序在虚拟机中运行,虚拟机在虚拟机管理程序中运行,而虚拟机管理程序在计算节点上运行。但是,在 PureApplication System 中,虚拟化应用程序没有直接部署到计算节点,而是部署到云组中。云组 是一个或多个计算节点的集合,行为像一台逻辑计算机,并且运行工作负载。

工作负载 是在云组中运行的虚拟化应用程序。工作负载的 VM 在云组的计算节点中运行,但并不是都在相同计算节点中运行。云组可能移动计算节点间的 VM 来实现负载均衡或故障恢复。因为虚拟化应用程序中的虚拟机需要 IP 地址进行网络访问,所以云组也包含一个或多个 IP 组。IP 组 是一个 IP 清单或一系列 IP 地址,一个用于通信的 VLAN 的 ID,或者如何连接到外部网络(VLAN 是其中一部分)的设置。网络资源虚拟化 部分介绍了 VLAN。

简而言之,应用程序将作为一个在虚拟化平台中运行的虚拟化应用程序部署到 PureApplication System,这意味着该应用程序在虚拟机中运行并且该平台在虚拟机管理程序中运行这些虚拟机。虚拟化平台是一个云组,而且该云组是一个由计算节点组成的逻辑计算机,每个云组是一个物理计算机且其本身就是一个运行虚拟机管理程序的虚拟化平台。

网络资源虚拟化

网络资源支持多个计算过程进行通信,程序通常运行在独立的计算机上。网络协议一般指 Internet Protocol (IP),这要求每个程序在有惟一 IP 地址的计算机上运行。为了帮助隔离网络上的无关数据集并保护其隐私,每组相互通信的程序应只访问自己的网络流量,其他不相关程序不应该访问该网络流量。隔离网络流量组的最佳实践是将一个网络分成几个 VLAN。

虚拟局域网

虚拟局域网 (VLAN) 将其网络流量与同一网络上的其他 VLAN 流量进行逻辑隔离,从而作为一个独立的广播域。这意味着通过两个不同 VLAN 连接的应用程序网络流量将在看似独立的网络上进行传输。例如,这对于隔离不相关应用程序(比如,开发与生产,或者财务部与人力资源部)的网络流量非常有用。

计算资源虚拟化 所述,多个虚拟机将一个物理计算机切割成多个模拟计算机。VLAN 用类似的方式将一个物理网络切割成多个模拟网络。当多个 VLAN 的网络流量流经同一网络设备时,该设备使每组流量保持独立以使网络上的每台计算机只看到自己 VLAN 上的流量。要求最大隔离的 VLAN 应作为独立局域网 (LAN) 来实现。

VLAN 在网络上由网络管理员来定义。可配置网络上的计算机和这些计算机上的应用程序来使用所需的 VLAN 分离网络流量,但最终是网络配置实现这种分离。

PureApplication System 中的 VLAN

PureApplication System 包括大量网络硬件,有一对架顶式开关作为集线器,但它没有托管自己的网络。和其他任何计算机一样,PureApplication System 连接到现有企业网络并参与其中。

PureApplication System 没有定义 VLAN — 这些在网络上由网络管理员定义。但是,它没有广泛利用 VLAN。PureApplication System 以两种截然不同的方式使用 VLAN,作为管理 VLAN 或应用程序 VLAN。

系统在内部使用管理 VLAN

  • 通信:这些 VLAN 支持系统的内部进程彼此之间进行通信。
  • IP 地址:系统使用自己的内部 IP 地址,因此网络管理员不需要提供任何 IP 地址。网络管理员仍需要在网络上保留每个 VLAN ID,因此网络不会用相同 ID 创建另一个 VLAN。
  • 范围:这些 VLAN 上的流量只在系统内部流动。从系统外部无法(或至少不应该)访问这些流量。

作为用户工作负载部署到系统的业务应用程序使用应用程序 VLAN

  • 通信:VLAN 使应用程序能彼此通信并与网络上的资源进行通信。
  • IP 地址:网络管理员不仅必须为每个 VLAN 提供 VLAN ID,还要提供 IP 地址池以供应用程序连接到网络。网络管理员应保留 VLAN ID 和 IP 地址以使网络在其他地方不使用这些值。
  • 范围:每个 VLAN 上的流量在系统内部以及企业网络的任意一部分流动,企业网络可配置为使用 VLAN。

PureApplication System 自身需要三个管理 VLAN,另外每个云组需要另一个管理 VLAN。每个 IP 组需要一个应用程序 VLAN。虽然所有 IP 组可以共享同一 VLAN,但是不同应用程序组通常使用独立的 VLAN。IP 组和应用程序 VLAN 的恰当组合取决于您的企业架构师和网络管理员想要如何隔离应用程序的网络流量。

系统使用 IP 组将应用程序和 VLAN 联系起来。系统的工作负载管理员使用由网络管理员提供的设置来定义每个 IP 组,包括使用哪个 VLAN。将工作负载部署到云组时,云组可能只使用一个 IP 组,也可能由工作负载部署人员指定使用哪个或哪些 IP 组部署工作负载。部署过程将 IP 组的 IP 地址分配给工作负载中的虚拟机。该过程负责确保虚拟机不仅使用合适的 IP 地址(如 IP 组所指定的那样)连接到网络,还要使用合适的 VLAN。只要应用程序使用合适的 IP 地址和 VLAN 进行连接,系统就能正常运行。网络管理员的工作是确保在企业网络内恰当定义了 VLAN。

存储资源虚拟化

存储资源使计算机程序能持续保存其状态,因此该状态可以从程序上卸载,可以在程序的多个执行中进行传递,也可以与其他程序共享。数据通常打包成文件,文件通过文件管理系统进行组织,但是可配置一些程序(比如数据库)来绕开它,并将数据块直接写入原始磁盘分区。虚拟化存储以便将程序从其存储中解耦出来的最佳实践是将存储封装成一个存储区域网。

存储区域网

可以使用几种方法虚拟化存储:

  • 存储可封装到存储区域网。
  • 存储层可提供不同级别的服务品质。
  • 分层存储管理可优化层的使用。
  • 可以将基础媒介组织为一个独立冗余磁盘阵列 (RAID) 以提高其可靠性和性能。

让我们更加详细地介绍每种方法。

存储区域网 (SAN) 是一种将存储设备连接到封装的共享存储池的网络。SAN 解耦应用程序,该应用程序需要从关于数据如何实际存储的详细内容持续存储数据。SAN 就像一个持续存储数据和文件的云。您知道原料在那里,但不能准确地确定它在哪里或如何存储它,而且它会移动到其他地方。

与之相关的目标是存储即服务。存储即服务(SaaS,或与软件即服务相区别,STaaS)通常指的是使共享存储空间可供其他人随需使用,比如,以向客户租赁容量为业务的存储供应商公司。它也指一个更为常见的存储池概念,供多个应用程序共享,而且其中一些使用较多应用程序,而其他需要的较少。共享存储不需要封装成 SAN,但 SAN 界面使存储变得更容易管理和共享。

存储可组织成层。分层存储 提供不同的存储集,而且每个集合都具备不同的服务质量 (QoS)。不同质量往往是由不同存储媒介类型造成 的,比如磁盘与磁带,在速度、成本、容量和功能方面取得平衡。存储媒介与成本和速度成反比 — 媒介上的数据访问的越快,每字节存储数据的成本就越高。一些存储类型具有较大容量或特定功能,比如刻录 CD。分层存储也对存储数据的 QoS 要求进行区别,并创建策略以将所谓更重要的数据存储到所谓更快或更可靠的媒介。

特定的数据集不必永久限制到一个层上。分层存储管理 (HSM) 是一种基于存储数据方法的策略,而且这些数据对最高性能和最低成本进行优化。一个简单示例是将不常使用的历史数据移到备份带,备份带是一种较慢但比磁盘驱动器便宜的存储类型。当存储媒介是同类时,HSM 将变得毫无意义。相反,它利用了存储解决方案,而且该解决方案包含不同的价格和性能权衡的多个媒介类型。使用现有层存储解决方案,成本已确定,因此通常通过确定最常使用的数据并将其存储在最快的媒介上,HSM 对性能进行优化。

即使是最可靠的存储媒介也会出现故障,使数据变得暂时无法访问或永久丢失,这对重要数据而言可能是不可接受的风险。降低这种风险的最佳策略是以冗余方式存储数据。一个简单的示例是创建备份。一种更连续和自动化的方法是存储系统,该系统将每个数据块自动存储两次,每次都保存在不同的媒体或设备上。这样的话,一旦出现故障,另一个媒体或设备就会保存该数据。冗余存储可用于改善性能,比如,当媒体的第一个备份繁忙时,可从第二个备份读取。

使用内部冗余和改进性能实现存储的一种常用方法是 RAID。独立磁盘冗余阵列 (RAID) 存储将多个磁盘驱动器结合为一体。使 RAID 存储优于简单磁盘集合的是数据存储方法。阵列通常包括条带化,这是一种改善性能的技术,阵列将一个数据集分成一系列片段并将这些片段作为条带 分配在整个磁盘上,这样就能并发访问这些片段。阵列能通过以冗余方式存储数据来提高可靠性。这种最简单的冗余方法是镜像,或将每个片段在两个不同磁盘上存储两次,这也可用于改善性能。

更加复杂的方法是奇偶校验,这要求更大的计算量,但降低了存储费用,因此阵列将奇偶校验片段存储为条带,以便任何片段丢失时都能重新创建。由于存储费用较低,因此奇偶校验不会以安装镜像的方式创建用于提高性能的副本。

RAID 用多个称作RAID 级别 的方法将磁盘上的数据集安排为数据库。该级别表示标准组合及条带化、镜像和奇偶校验的实现。最基本的 RAID 等级 RAID 0 会条带化数据,但它并不以冗余方式存储数据。这提高了性能并降低了可靠性,因为会有数量更多的磁盘出现故障。RAID 1 主要通过用一个磁盘复制另一个磁盘来镜像数据,但不会条带化数据。最普遍的 RAID 实现是 RAID 5,这将条带化一个磁盘以外的所有数据并在剩余磁盘上创建奇偶校验片段。

Wikipedia® 上的 标准 RAID 级别 阐明了什么是 RAID 5,如图 4 所示。在本例中,阵列包括 4 个磁盘。数据存储在 4 个条带中,标上了 A 到 D 的标签。每个条带存储在三个片段中,标上 1 到 3,而第 4 个奇偶校验片段为冗余片段。注意,奇偶校验片段的存储在磁盘中旋转,因此每个磁盘会存储一些条带的数据片段和其他条带的奇偶校验片段。

图 4. RAID 5 条带化和奇偶校验片段
RAID 5 条带化和奇偶校验片段
RAID 5 条带化和奇偶校验片段

PureApplcation System 中的 SAN

PureApplication System 中的存储由 4 个 IBM Storwize® V7000 节点的集群进行管理,而且两个存储单元中的每个都包含一个控制器节点和一个扩展节点。其中一个控制器管理集群,另一个充当扩展节点和备份控制器。控制器节点包括 IBM System Storage Easy Tier 存储管理系统软件。每个节点包含 4 个 400 GB 固态驱动器 (SSD)和 20 个 600 GB 硬盘驱动器 (HDD),并使集群的总存储能力为 6.4 TB SSD 和 48 TB HDD(4.8 TB 和 38.4 TB 是可用的)。

控制器将存储作为 SAN 管理,计算节点可通过 SAN 适配器访问。因此,计算节点及其应用程序未意识到有多少节点或驱动器组成存储集群。该存储分为两层:

  • 通用 SSD 层:这由固态驱动器组成,而且这些驱动器成本高、容量低,但它们可以交付较高的吞吐量。
  • 通用 HDD 层:这由硬盘驱动器组成。与 SSD 相比,HDD 容量大且成本低,但访问时间缓慢。

Easy Tier 分层管理这些层,并具备名为 自动化数据放置 的特性,而且该特性动态确定最常用的数据并将其存储在比 HDD 能更快进行访问的 SSD 位置。PureApplication System 的 Storwize V7000 集群将其存储组织为 RAID 5 阵列。RAID 支持热备用驱动器,这意味着 RAID 阵列中的一个驱动器出现故障时,系统会用热备用驱动器自动替代故障驱动器并恢复丢失驱动器上的数据。

PureApplication System 中的存储解决方案非常复杂,而且尚未完全配置成开箱即用。将存储配置为 SAN, 并且机架将所有的必要布线和适配器放置在存储网络的恰当位置。将存储分层并作为层次进行管理以优化吞吐量。对数据进行条带化以获得额外的性能改进并以冗余方式进行存储以提高可靠性。所有的这些存储特性和优化由系统进行管理,这样的话,客户就不需要存储管理员来配置并维护存储。

结束语

本文介绍了 PureApplication System 用于虚拟化其硬件资源以实现基础架构即服务的最佳实践。它还展示了 PureApplication System 如何利用下面的虚拟化技术:

  • 虚拟化计算资源的虚拟机 (VM)
  • 虚拟化网络资源的虚拟局域网 (VLAN)
  • 虚拟化存储资源的存储区域网 (SAN)

这些功能内置在产品中并且启动时即可使用,这节省了时间和劳动力,否则可能需要设置硬件并配置其虚拟化。内置的虚拟化资源是 PureApplication System 的巨大优势之一。

致谢

作者感谢以下 IBM 人员在撰写本文时提供的帮助:José De JesúsHendrik van RunRohith Ashok


相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing
ArticleID=956093
ArticleTitle=在 IBM PureApplication System 中使用基础架构即服务的最佳实践
publish-date=12052013