启用数据网格是计算科学界的基本工作之一,EGEE(欧洲电子科学启用网格)和PPDG(PPDG,2006)等项目都强调了这一点。这一努力是由e-Science的新要求推动的。也就是说,大型研究人员社区合作从大量科学数据中提取知识和信息。这导致了一类新的应用程序的出现,称为数据密集型需要安全、协调地访问大型数据集、广域传输和广泛分发TeraBytes数据,同时跟踪多个数据副本的应用程序。数据网格旨在提供这样的基础设施和服务,以支持数据密集型应用程序。
我们的项目BitDew1(Fedak等人,2008a,Fedak等,2008b)不仅针对传统网格(通常通过虚拟组织连接大学或企业的计算和存储资源),还针对一类称为桌面网格的特定网格。桌面网格使用分布在多个局域网或互联网上的空闲桌面PC的计算、网络和存储资源。如今,这种类型的计算平台形成了最大的分布式计算系统之一,目前为科学家提供了数十万台主机上的数十个TeraFLOPS。尽管该平台具有吸引力,但在这种大规模分布、易变、异构和网络资源受限的环境中,支持数据密集型应用程序的工作很少。大多数桌面网格系统,如BOINC(Anderson,2004年)、XtremWeb(Fedak等人,2001年)、Condor(Litzkow等人,1988年)和OurGrid(Cirne等人,2006年),都依赖于集中式体系结构来索引和分发数据,因此可能面临可伸缩性和容错性方面的问题。
然而,我们相信构建BitDew的基本模块可以在P2P系统中找到。DHT(分布式哈希表)研究人员(Stoica等人,2001年,Maymounkov和Mazires,2002年,Rowstron和Druschel,2001年)和协作数据分发(Cohen,2003年,Gkantsidis和Rodriguez,2005年,Fernandess和Malkhi,2006年),挥发性资源存储(Adya等人,2002年;Butt等人,2004年;Vazhkudai等人,2005年),广域网络存储(Bassi等人,2002年,Kubiatowicz等人,2000年)和云计算(Amazon web服务)提供了数据网格可能感兴趣的各种工具。为了从中构建数据网格并有效地利用它们,需要将这些组件集成到一个综合框架中。BitDew通过为桌面网格中的数据管理和分发提供环境来满足这一目的。
BitDew是一个可以轻松集成到其他桌面网格系统中的子系统。它为程序员(或代表用户工作的自动化代理)提供了一个简单的API,用于轻松创建、访问、存储和移动数据,即使在高度动态和易变的环境中也是如此。
BitDew利用了元数据的使用,这是一种在数据网格中广泛使用的技术(Jin等人,2006年),但更具指导性。我们定义了五种不同类型的元数据:(i)复制指示系统中同时可用的数据出现次数,(ii)容错性控制机器崩溃时数据的恢复能力,(iii)一生是相对于其他数据存在的绝对或相对持续时间,表示数据何时过时,(iv)密切关系根据依赖规则驱动数据移动,(v)传输协议为运行时环境提供了有关适合分发数据的文件传输协议的提示。程序员用这些简单的属性标记每个数据,并简单地让BitDew运行时环境管理数据创建、删除、移动、复制以及容错操作。
BitDew运行时环境是实现API的灵活环境。它依靠集中式或分布式协议进行索引、存储和传输,从而提供可靠性、可扩展性和高性能。本文介绍了原型的体系结构,并深入描述了用于提供异步、异步和多协议文件传输的各种机制。我们给出了几个协议集成的示例:客户端/服务器(如HTTP和FTP)、P2P或协作内容交付(如BitTorrent)以及广域存储(如IBP或Amazon S3)。我们还对两种环境下的运行时环境进行了详细的定量评估:GRID5000实验网格平台和DSL-Lab,一种基于宽带ADSL的实验平台。
通过一组微观基准,我们逐个组件衡量基础设施的成本和收益。我们运行通信基准测试,以评估BitDew协议在传输文件时的开销,并评估容错能力。最后,我们展示了如何使用BitDew编写主/辅应用程序,并在实际的网格部署中评估其性能。
论文的其余部分组织如下。第二部分介绍了我们的研究背景。在第3节中,我们介绍了BitDew的API和运行时环境。然后在第4节中,我们对原型进行性能评估,第5节介绍了主/辅应用程序。最后,我们在第6节介绍了相关工作,并在第7节总结了本文。
在本节中,我们将概述桌面网格的特性和数据密集型应用程序要求。根据这一分析,我们给出了BitDew所需的特性。
桌面网格由一组大型个人计算机组成,这些计算机既属于机构,例如企业或大学,也属于个人。在前一种情况下,这些家用电脑是由参与者自愿提供的,他们将部分计算能力捐赠给一些公共项目。然而,DG资源与传统网格资源的几个主要区别在于:(i)性能;主流PC没有可靠的存储,通信链路可能较差,(ii)波动性;个人电脑可以随时加入和离开网络,并以多种身份出现,(iii)资源在用户和桌面网格应用程序之间共享,(iv)资源分散在管理域中,具有从个人路由器/防火墙到大规模PKI基础设施的各种安全机制。
由于这些限制,即使是最简单的数据管理任务也很难在桌面网格上实现。例如,要在集群上部署新的应用程序,只需在集群节点共享的网络文件服务器上复制二进制文件即可。计算后,集群用户通常只需远程登录到每个计算节点,并递归删除应用程序创建的临时文件或目录,即可清理集群节点上的存储空间。相比之下,现有的桌面网格系统都不允许执行此类任务,因为:(i)由于主机连接性、波动性和志愿者流失,设置共享文件系统会比较麻烦;(ii)为了保护志愿者的安全和隐私,禁止远程访问参与者的本地文件系统。
目前,桌面网格大多局限于数据依赖性很少的并行应用程序。为了扩大桌面网格的使用范围,我们研究了几个具有挑战性的应用程序,并概述了它们在数据管理方面的需求。从这项调查中,我们将推断BitDew的预期功能。
由共享大数据的一组独立任务组成的参数扫描应用程序是可以从BitDew中受益的第一类应用程序。跨广域网的大型数据移动在性能方面可能代价高昂,因为跨Internet的带宽通常是有限的、可变的和不可预测的。在本地工作站存储上缓存数据(Iamnitchi等人,2006年,Otoo等人,2004年,Vazhkudai等人,2005年),并使用适当的调度策略(Santos-Neto等人,2005,Wei等人,2004)来最小化数据传输,可以提高整体应用程序执行性能。
此外,Iamnitchi等人(2006年)的工作表明,高能物理中的数据密集型应用程序倾向于以称为“filecules”的文件组访问数据。对于这些类型的应用程序,在一组大型资源上复制文件组对于实现良好性能至关重要。如果数据被复制并缓存在计算资源的本地存储上,那么应该对数据提供透明的容错操作。
在之前的工作中(Wei等人,2005),我们已经表明,通过FTP使用协作数据分发协议BitTorrent可以提高参数扫描应用程序的执行时间。相反,我们还观察到,与FTP相比,BitTorrent协议在传输小文件时的开销更大。因此,必须允许用户根据文件大小和任务输入中数据的“共享性”级别选择正确的分发协议。
电子科学社区中的高水平协作导致了复杂工作流应用程序的出现(Antonioletti等人,2005年)。例如,在多阶段仿真的情况下,数据可以是计算结果,也可以是其他仿真的输入参数。要为具有任务和数据依赖性的应用程序构建执行环境,需要一个能够根据依赖性规则将数据从一个节点移动到另一个节点的系统。该系统的一个关键需求是高效地发布、搜索和本地化数据。P2P社区提出的DHT等分布式数据结构可能通过提供分布式索引和查询机制来实现这一作用。
由于执行节点的波动性,长时间运行的应用程序具有挑战性。为了实现应用程序执行,它需要本地或远程检查点,以避免在发生故障时丢失中间计算状态。在桌面网格环境中,这些应用程序必须处理复制和破坏。Kondo等人(2007)提出的一个想法是计算检查点图像的签名,并使用签名比较来消除发散执行。因此,DHT和P2P软件通常使用校验和索引数据,即使不检索数据,也允许基本的破坏容忍度。
之前,我们分析了几个类的“数据绑定”应用程序,现在我们提供了有效管理桌面网格上数据的预期功能。
容错:架构应处理易失性节点的频繁故障,这些节点可以随时离开和加入网络。
可伸缩性:当集中式方法可能导致性能瓶颈时,体系结构应提供一种分散的方法。
复制:为了实现应用程序性能,系统应该允许数据复制和分布式数据缓存。
效率:体系结构应为高吞吐量数据分发和低延迟数据访问提供足够的用户可选协议。
简单性:编程模型应该提供系统的简单视图,将数据空间统一为一个整体。
透明性:应该对程序员隐藏错误和数据位置。
我们设计了系统,以解决每个设计目标。在本文中,我们通过执行一组微基准和部署一个真正的科学应用程序来证明系统的可管理性、可扩展性、效率和简单性。
本文没有具体讨论安全问题,因为文献中的现有解决方案可以应用于我们的原型。事实上,Luna等人(2008)已经对数据桌面网格的安全性进行了相关分析,其中还提出了一个协议,以维护数据机密性,因为数据将存储在不受信任的节点上。作者使用称为信息分散算法(ISA)的方法,该算法允许用户将文件分割为多个部分,因此,通过仔细分散这些部分,单个节点无法重建数据。另一个众所周知的问题是防止数据篡改,这在文献中以“结果认证”的通用名称进行了讨论(Sarmenta,2002)。这是一组方法(点检、投票、可信度),用于验证志愿者计算的结果是否正确(例如,由于恶意参与者的故意修改)。为了保护DG存储空间,结果认证也是强制性的。在公共DG系统中,用于上传任务结果的信息可能会被恶意参与者利用。我们假设结果检查器,如同化器BOINC的存在是为了在正确和错误的结果之间进行排序。此外,在志愿者计算设置中,BitDew应在沙箱等受限环境中运行(Keahey等人,2004),以保护志愿者的隐私和安全。对于未来的工作,我们将展示系统处理安全问题的能力。
此外,在本文中,我们认为数据是不可变的。然而,可以利用内置的分布式数据目录(DDC)来提供数据一致性。例如,Antoniu等人(2005)的作者提出了一个条目一致性具有可变数据的P2P系统的协议。