大学内的云计算解决方案
本文通过使用一个 Virtual Computing Lab (VCL) 详述了云计算的概念。我们通过 VCL 重点关注云计算实现方法,它如何为一个以研究为导向的高等教育机构提供帮助,最后,我们讨论了一些重要因素,展示 VCL 如何向校园 IT 网络基础设施提供可伸缩、可持续、具有经济价值且可行的贡献。
简介
在过去几年里,云计算和虚拟化的概念获得了巨大的发展动力,并且成为信息技术中的流行词。许多企业开始实现这些新技术,期望通过改进机器的利用率来降低成本,减少管理时间和基础设施成本。云计算是能够使用户在 Internet 上使用应用程序的一种环境,比如存储和保护数据,同时又能够提供服务。
VCL 是一个云计算概念,源于北卡罗来纳州立大学 (NCSU) 的工程学院和 IBM Virtual Computing Initiative 的一次协作,这次协作的目标是解决该大学日益增长的计算需求和用户需求。这个系统可以在任何时间任何地点通过按需提供/预约的方式为各种服务环境交付用户需要的解决方案。
云计算的架构层
云计算平台可以根据需要动态提供、配置和重新配置服务器。云中的服务器可以是物理服务器或虚拟服务器。高级云通常包含其他计算资源,比如存储区域网络(SAN)、网络设备、防火墙和其他安全设备。总而言之,云服务提供商提供的服务主要可以分为以下三个类别:
- 基础设施即服务(Infrastructure as a service)
- 平台即服务(Platform as a service)
- 软件即服务(Software as a service)
图 1 中的 VCL 将这些类别组合在一起并进行了解释。请在参考资料部分了解有关云概念的更多细节。
图1.VCL云服务
1. 基础设施即服务(IaaS)
IaaS 就是指以服务的形式交付计算机基础设施。基础设施即服务提供了计算功能和基本存储作为网络上的标准服务。网络中包含了服务器、存储系统、交换机、路由器以及其他系统并可用于处理工作负载。IaaS 云可以以一种非常经济的方式提供资源,比如按需从头构建应用程序环境所需的服务器、连接、存储和相关的工具。
IaaS 的优点包括快速供应、扩展能力、只为使用的资源付费。对于刚刚起步或较小的企业,面临的最大困难之一就是控制资金支出。通过将基础设施移到云中,就可以实现可伸缩的供应,就仿佛您拥有自己的硬件和数据中心一样(对于传统的托管服务提供商来说是不现实的),但是您同时可以将前期成本降至最低。
VCL 在一个位置同时交付不同的基础设施。它在大学内提供了一个平台(在其内部没有物理基础设施)虚拟化环境。通过使用该环境,学生不需要为其项目建立任何特定的物理基础设施。VCL 为基础设施提供了以下服务。
- 计算
- 物理计算机
- 虚拟计算机
- OS 级虚拟化
- 网络
- 存储
在将所请求的映像映射到硬件之前,VCL 管理者为可用的硬件资源提供适当的虚拟化(聚合,解除聚合)。VCL 服务主要关注平台级别的资源控制。
2. 平台即服务(PaaS)
平台即服务是一个虚拟化的平台,它包括一个或多个服务器(经过物理服务器集合虚拟化)、操作系统和特定应用程序(例如面向 Web 应用程序的 Apache 和 MySQL)。在某些情况下,可以提供一个包含所有必需的特定于用户的应用程序的 VM 映像。平台即服务包含一个软件层并将其作为服务提供,这个服务可用于构建更高级的服务。从服务的创建者或消费者的角度来看,PaaS 至少存在两种视角:
- 创建 PaaS(这里指 VCL)的人可能会通过集成 OS、中间件、应用程序软件甚至一个开发环境来生成一个平台,这个平台稍后会以服务的形式提供给用户。
- 使用 PaaS 的人(大学中的用户)会看到一个封装好的服务,这个服务通过一个界面呈现给他们。用户只能通过界面与这个平台进行交互,该平台执行必需的任务来进行管理和扩展,从而提供给定级别的服务。虚拟设备可以归类为 PaaS 实例。
通过使用 VCL,学生们不需要在其机器上安装任何特定的服务、解决方案堆栈或数据库。VCL 为他们提供了映像,他们只需要选择这些映像并在云中提供的机器上使用它们。
- 服务
- 解决方案堆栈
- Java
- PHP
- .NET
- 存储
- 数据库
- 文件存储
3. 软件即服务(SaaS)
SaaS 是指以服务的形式通过 Internet 访问软件的能力。软件即服务以服务形式按需提供完整的应用程序。软件的一个实例在云中运行并为多个终端用户或客户组织提供服务。远程应用程序服务的一个最佳例子就是 Google Apps,它通过一个标准 Web 浏览器提供了多个企业应用程序。
VCL 允许使用任何软件即服务解决方案、虚拟化解决方案和终端服务解决方案。VMWare、XEN、MS Virtual Server、Virtuoso 和 Citrix 都是典型的例子。VCL 还允许任何访问/服务交付选项,这些选项适合从 RDP 或 VNC 桌面访问到 X-Windows 再到 Web 服务或类似服务等各种内容。
云计算基础设施模型
在从标准的企业应用程序部署模型迁移到基于云计算的模型时,云计算架构师需要对基础设施模型做出几点考虑。对于大学中的云计算,可以考虑三种基本的服务模型,比如公共(Public)、私有(Private)和混合(Hybrid)云。
1. 公共云
公共计算云面向任何希望登录到其中并使用它们的用户。公共云由供应商运行,来自不同用户的应用程序可能会混合存放到云中的服务器、存储系统和网络中。公共云的优点之一就是它们拥有比公司的私有云更大的规模,并且可以提供按需扩展或缩减的能力,将基础设施风险从企业转移给云提供商。
IBM 为其客户运作一个云数据中心。多名客户共享相同的基础设施,但是每名用户的云都得到了保护并彼此分离,就好象他们位于自己的防火墙之内。
2. 私有云
设计私有云的目的是使组织能够获得比使用由供应商托管的服务更多的数据控制。私有云是为某个组织专门构建的,只能由该组织使用,提供了对数据、安全性和服务质量的最大程度的控制。私有云通常位于组织(企业或大学)的防火墙之后,只有该组织内部的人员有权访问云及其资源。
3. 混合云
混合云同时结合了公共云和私有云模型。这个模型引入了判断如何在公共云和私有云之间分配应用程序的复杂性。在数据量较小或者应用程序无状态时使用混合云,与在数据量较大时使用公共云来进行少量处理相比,前者效果更好。
VCL 可以处理混合云模型。它可以为一个大学内的学生和教师提供服务和基础设施来作为他们的私有云。它还可以使用公共云在大学之间扩展这些服务。这需要更加安全的网络。
异构的资源云
在大学中设计异构云的主要目标是显著地缩小集群系统的配置规模,具体实现方法是合并异构工作负载,同时通过提供足够的资源来增加并行工作负载请求的数量(例如基于 Globus、Hadoop 或 Condor)。对于大型组织,通常使用各种工具针对不同的工作负载维护专用的集群系统。因此主要难题就是通过 VCL 在云计算平台上整合同一组织中的异构工作负载。
从 VCL 的角度来看,只要具有合适的映像和环境管理器,它就可以转换并支持任意类型的环境(异构环境)。
VCL 的高层架构
VCL 高层架构的目的是设计和配置以一种经济、成本有效的方式为以教育和研究为导向的大学提供服务的云计算系统。VCL 交付了一组丰富的功能和服务,它们与云计算的需求和期望建立了良好的对应。如图 2 所示,VCL 架构包含几个主要组件。有关 VCL 及其工作模型的更多信息,请参见参考资料部分。
- 一个终端用户访问界面(基于 web)
- 一个资源管理器(或 VCL 管理器),其中包含一个调度程序、安全性、性能监视、虚拟工作管理等等
- 一个映像库(或映像)
- 计算、存储和网络硬件
- 安全性
图2.VCL物理架构
用户
最初,用户通过一个 Web 界面访问 VCL,并从菜单中选择需要使用的应用程序组合。参见图 3。如果一个特定于用户的映像组合没有以映像 的形式出现,那么经过授权的用户则可以灵活地从 VCL 库组件中构建自己的映像。VCL 管理器软件随后将用户请求映射到可用的软件应用程序映像和(可能为异构的)硬件资源,然后将其调度为立即使用(按需)或稍后使用。
图3.具有所需映像的新的资源预定
资源访问模式将取决于服务提供。参见图 4。访问模式包括 RDP 或 VNC 类型的远程桌面访问、对 Linux 服务的基于 ssh 的或 X-Win 访问、基于 Web 的访问,以及以代理的形式访问计算集群。
图4.当前预定和基于ssh的连接
VCL 管理器
VCL 管理器的典型工作包括检查环境、管理计算机和映像。VCL 管理器软件包含以下产品:
1. IBM xCAT 和 VM 加载程序
Extreme Cluster Administration Toolkit (xCAT) 是一个主要由脚本工具组成的集合,用于构建、配置、管理和维护 Linux 集群。VCL 使用 xCAT 将请求的裸机(bare-metal)映像加载到刀片服务器。
虽然最初的 VCL 是面向裸机的,但是如今它加载了基于 VMware 的映像或裸机映像。VCL 系统将处理请求。如果无法找到已经加载了所需映像的真实的或虚拟的服务器,那么它将选择任何满足此映像、xCAT 或相应 VM 加载程序所需规范的服务器,动态加载所需的映像。这里,物理机器通过 xCAT 得到供应,而虚拟机器供应则通过 VMware ESXi、VMware ESX Standard 服务器、VMware 空闲服务器实现。
如果所有服务器处于繁忙状态,那么 Web 界面将通知学生在可用的时段使用网格。
2. VCL 中间层 demon 服务(vcld)
VCL 管理器的核心部分是一个基于 perl 的 VCL demon 服务(vcld),用于执行实际的供应和部署。根据所请求的环境类型 —— 不管是裸机映像、实验室机器或虚拟机映像,vcld 都将确保映像被加载并能够用于请求。vcld 服务的常见功能包括:
- 在 Web 界面和数据库之间通信,获得安装细节和由 VCL Web 门户分配的流程预定/任务
- 发出 xCAT 或 VMware 命令,执行所请求的操作
- 监视映像安装过程和安装所请求的 postscript 安装工具
- 维护机器供应和部署过程
- 为请求的应用配置和管理已安装的映像
- 维护安装和配置时间
3. 一个开源的 web 服务器 (Apache)
基于 PHP 的 Web 应用程序(部署在 Apache Web 服务器上)是 VCL 的核心并提供了请求、管理和治理所有 VCL 资源的工具。Web 界面支持经过身份验证的用户,显示他们有权使用的应用程序列表,并允许他们预定对某个应用程序的使用,可以立即使用这个应用程序,或者在未来指定的一段时间内使用。未来时间的范围和预定的长度可以进行定制,并可以因客户而异。Web 界面提供的主要工具包括:
- 映像创建 – 该界面允许用户创建定制的环境。
- 映像版本控制 – 这个界面允许特权用户创建同一映像的多个版本。
- 管理用户 – 为用户提供了特权控制,它通过 Web 界面向用户授予不同程度的控制权。
- 管理资源 – 该界面提供一种方法来调度资源池中的资源。
4. 一个开源的数据库 (MySQL)
MySQL 数据库用来跟踪每个服务器的状态、维护有关每个映像的信息,还可用于实现特权树(privilege tree)。
映像
在 VCL 中,映像 一词是指一个软件堆栈,它合并了以下内容:
- 基础操作系统,如果需要用虚拟化实现伸缩,那么将允许使用虚拟机监控程序(hypervisor)层
- 必需的中间件或应用程序,运行在所选的操作系统之上
- 最终用户访问解决方案,与所选的操作系统相对应
映像可以被加载到裸机,或加载到所选的操作系统/应用程序虚拟环境。如果用户所需的映像组合不可用,用户有权从 VCL 组件库中构建自己的映像。如果用户拥有创建映像的权利,那么他通常将从一个 NoApp 或基础映像开始(Windows XP 或 Linux),并将其扩展到应用程序。
计算硬件/网络存储
虚拟化对硬件进行了最大程度的抽象,甚至不需要将软件堆栈绑定到特定的物理服务器就可以执行部署和重新部署。VCL 服务器提供了一个资源池,可以供用户使用。资源的分配以将要执行计算的特定应用程序为依据。存储和网络资源是动态的,同时满足工作负载和用户需求。
通常伴随计算云 一词出现的还有术语存储云,它使用 VCL 简化虚拟机映像的存储,从而提供了虚拟化存储。在 VCL 中,从刀片服务器到由各种台式机或工作站组成的集合,再到企业服务器或高性能计算引擎,任何内容都可以作为计算硬件和存储资源。
一个典型的 VCL 安装含有一个或多个刀片机箱(chassis),其中一个刀片服务器被指定为管理节点。每个刀片服务器至少具有两个网络接口 —— 一个用于公共网络,一个用于私有网络(用于管理刀片服务器和加载映像)。存储资源可以通过光纤直接连接,或者通过网络连接。参见下面的图 5。
图5.VCL应用程序存储
VCL 安全性
在云环境中,要确定安全性的定义很难。对于任何分布式系统,安全度量的最终程度同时依赖于身份验证和服务授权。VCL 在其系统中实现了以下几个级别的安全性:
- 基于 LDAP 的身份验证
VCL身份验证是一种基于从属关系(affiliation)的LDAP服务。根据用户的从属关系,VCL对不同的用户访问支持不同的LDAP服务。
- 环境级别的身份验证这种身份验证模式将因环境而异。它通常由映像创建时间确定。在 Windows 中,它将创建一个一次性帐户,该帐户在预定时创建,在使用后废止。在 Linux 环境中,它可以利用现有的身份验证基础设施,或者使用独立的帐户机制。
除此以外,如果用户经过授权允许做出 VCL 预定时,VCL 使用 OS 级别的防火墙锁定所供应环境的 IP, 使其为最终用户的 IP 地址。
高性能计算和 VCL
大学中对高性能计算(HPC)级别机器的使用主要有两个含义。第一,在大学中需要 HPC 机器 — 主要用于解决/计算出现的问题。第二,VCL 难以容纳硬件资源来满足不断增长的请求。VCL 中的 HPC 服务的基本工作模型非常简单。参见下面的图 6。要了解有关 VCL HPC 及其使用的更多信息,请参见参考资料部分。
图6.VCL中的HPC的基本模型
HPC 的先决条件
- 网络交换机 – 一个使用 NIC 的面向消息通信的新私有网络,用于公共网络的用户访问。
- 需要在一个高阶积架式交换机模块上配置 Virtual Local Area Network (VLAN)。一个用于公共 internet 访问,另一个用作私有消息传递接口。
- VCL 管理节点根据映像元数据配置刀片 VLAN。
工作方式
VCL 中的 HPC 的基本工作模型如图 7 所示。在 VCL 的控制下,xCAT 将 HPC 计算映像加载到空闲的刀片服务器节点,而 VCL 控制软件在机箱式 Ethernet 交换机上调整 VLAN 设置,以将服务器连接到私有 HPC 网络。在 HPC 环境中,VCL 只通过登录节点提供公共访问。主 HPC 登录节点映像包括 HPC 调度程序的组件。目前,VCL 中使用了 Load Sharing Facility (LSF)(类似平台计算)。每个 HPC 客户机映像可以访问大量的存储(以 TB 为单位),以及用户主目录和 HPC 备份存储。当 HPC 映像被加载后,VCL 管理器调度程序将识别它并开始为它分配工作。
图7.VCLHPC中的刀片服务器的基本布局
通过重用刀片服务器,VCL 与 HPC 的集成显著提高了资源利用率。这种方法允许在用户请求之间共享基础设施,而这将实现更大程度的资源可用性。
在实验室使用 VCL 的优点 – 云解决方案
通过 VCL 在实验室中的性能,我们已经了解了 VCL 云计算的一些主要功能,并且通过图表获悉了一些主要优点。大学中的用户通常为在校学生和老师。在大学环境中为这些用户提供服务的云计算系统必须至少能够提供以下这些功能:
- 能够为广泛的用户提供服务和支持。
- 为导师、讲师、教授和其他教育者和大学中的职员提供广泛的课程资料和学术支持。
- 提供研究级别的计算系统和服务,以支持该大学的研究任务。
考虑到这些需求,在一个以研究为导向的高等教育机构中设计云计算解决方案的主要挑战涉及以下几个因素:
- 取决于不同用户需求的出色的资源利用率
- 服务环境的多样性
- 作为一种在经济上可行的模型运行云基础设施
在大学中,学术研究的日程安排决定了资源的使用情况。对资源的需求在分配工作期间以及每年的年末会更加迫切。研究项目和其他与研究有关的活动在一年当中都很频繁。因此,大学内的云计算系统要想具有经济可行性,它需要一种适当的调度机制来监视需求并分配系统资源。VCL 提供了优秀的调度机制来识别校园内各种活动的变化。
在本文中,通过观察和研究大学内的 VCL 环境,我们从 VCL 可以获得的重要结论就是,通过利用桌面和 HPC,VCL 在大学实验室中实现了对计算基础设施的有效利用。同样,对 HPC 和 VCL 桌面计算机使用 VCL 刀片服务器则以最理想的资源利用率提供了经济的服务。
我们可以得出这样的结论,VCL 是一种开源的基于 Web 的系统,它用于动态地提供和代理用户对专用计算环境的远程访问。VCL 云通过一个独特的开放的软件和硬件解决方案提供了杰出的计算能力,可以运行和托管所有大学项目和研究计划。
参考资料
学习
- 有关 VCL 概念、安装细节和邮件列表的更多信息,请参考 Opensource VCL APACHE 孵化器。
- CostEffectiveVCL将提供有关VCL在大学中的性能的信息。
- HadoopcoreWeb站点是了解Hadoop的最佳资源。
- 了解VCL的概念及其详细的工作模型。
- Wikipedia解释了云计算主题及其相关技术。
- 浏览技术书店,获得有关这些主题和其他技术主题的图书。
- developerWorks SOA and Web services 专区:让您了解更多和 SOA 以及 Web 服务相关的内容,包括技术文章、教程以及特殊专题等。
原文:http://www.ibm.com/developerworks/cn/webservices/ws-vcl/index.html?ca=drs-