中文版BlueSky_A_Cloud-Backed_File_System_for_the_Enterprise

  • 格式:docx
  • 大小:677.05 KB
  • 文档页数:20

蓝天:云计算虚拟文件系统的企业1.摘要蓝天—基于云存储的网络文件系统。

蓝天坚持在云存储提供商处存储数据,如Amazon S3 或Windows Azure存储供应商。

这些存储供应商是允许用户利用的具有可靠性以及大容量存储的,并且避免了需要专门的服务器硬件的云存储供应商。

客户端访问存储的数据,通过代理现场运行,缓存代理的存储数据提供低延迟的回复以及额外的优化机会。

为了获得好的性能和低成本,一些优化是必要的,包括日志结构的设计和云的日志清洁和安全。

蓝天支持很多协议(包括NFS CIFS),并且可以适用于不同的提供商。

简介第三方云计算的承诺是三房连胜降低成本、动态可扩展性以及高可用性。

虽然对确切的性质和性质的限制还存在争议,但是很难否认这样一个事实,即云服务提供的实际效用明显大于大部分的生产系统。

这些生产系统现通过服务(如Amazon’s AWS和Microsoft’s Azure)成为云托管。

然而,迄今为止,在云中托管的服务已经大体分为两类:1.面向消费者的Web 应用程序(如Netflix 客户的网站和流控制);2.大规模数据处理(如Netflix的媒体编码管道)。

这项活动虽小,但却带动了广泛的外包企业计算和存储应用。

其原因是多种多样的,但他们在很大程度上反映了现有的客户端-服务器部署的本质上的惯性。

企业在客户端的软件上有大量的资金和操作的投资。

企业依赖与传统服务器平台的熟悉的性能、可用性和安全特性。

从本质上来说,企业还不是透明的替换现有服务。

有一些实质性的技术需要被克服。

因为传统的客户端服务器应用程序的设计要点(如文件系统、数据库等)常常不能够与云服务提供商所提供的服务配合好。

尤其是,很多应用程序被设计为带宽饥饿,延迟敏感(在一个局域网中是一个合理的设计),而远程云服务的性质是会增加延迟以及带宽的消耗。

此外,云服务将一些有代表性的简单地接口提取出来作为抽象的资源(如Amazon’s S3的“put file” 操作),而传统的服务器协议将更多的功能封装。

因此直到这些应用程序被重新设计,许多外包计算和存储服务的潜能才能才能被开发出来。

事实上,中小型企业,在一个巨大地服务器和存储设备为代表的市场上,以每年115美元的支出,应该解决这些问题。

【9】即使最终的演化是对云中所有应用程序进行托管,那也需要很多年才能完成。

在此期间,组织需要支持本地应用程序和云计算的混合使用。

在本文中,我们探索桥接这些领域的一种特定的应用程序,网络文件服务。

特别是,我们关注传统的网络文件服务可被云服务产品替换的程度。

然而,我们在建立文件系统客户端软件的设计上是故意限制了巨大的投资(无论是资金上还是培训上)。

我们需要一个给定的终端系统软件保持不变。

因此,我们专注与基于代理的解决方案中,在其中的一个专用代理,为一个企业环境中传统的服务器提供的“错觉”,将请求转换成相应的云存储中的API调用。

我们将探讨这种方法通过一种原型—蓝天,支持NFS CNFS,网络文件系统协议,包括Amazon EC2/S3和Microsoft’s Azure的驱动程序。

这样一个系统的工程面临很多的设计挑战,其中最明显的是需要反复考虑周围环境的性能(即缓存、隐藏延迟、网络带宽最大化的使用),但是,并不直观的同成本有强烈的相互作用。

尤其是,在存储接口和调度开销的相互作用中。

这种相互作用是由当前的云服务提供商共同设计出来的,有利于基于分段式的布局的设计(以及基于云的文件系统清洁)。

我们可以证明,忽视了这些问题,没有显著的提高了性能而我们的成本将明显的增加(在我们的测试中高达30%)。

最后,在一系列的基准中,我们表明,当使用这样的设计,基于云存储的服务的商品,能够提供更有竞争力的性能,相比于本地文件服务器的容量以及工作组所要求的企业工作负载,同时有第三方云服务所带来的好处:可积累的可扩展性和成本优势。

2.相关的研究在网络存储系统方面已经产生了大量的文献,很多都致力于客户端服务器的设计和性能,比如:NFS CNFS AFS WAFL【6 7 8 25】.最近,一系列的努力已经考虑其他的结构,包括在基于对等存储的分布式集中的不受信任的服务器【12 13】,这些能够间接通知随后的基于云计算的设计。

云存储是一个比较新的主题。

它是由亚马逊的S3以及其他一些供应商提供的商品服务可用性所引起的。

云存储的弹性性质让人回想到Plan 9只写一次【19 20】的动机,尽管云通信的开销以及价钱成本反对块接口和没有存储回收。

也许我们最接近于学术的工作室safestore【11】,而条纹消除编码跨越多个存储提供商,最终数据对象通过NFS接口探索访问。

但是,safestore明确的重点是可用性,而不是性能或者成本,因此其设计的决策会有很大的不同。

一个类似的是DepSky【2】,一个更复杂的系统,也重复强调了可用性,提出了“云的云”的模式来复制在提供者。

在一个更抽象的层次上,Chen 和Sion创建一个评估云存储成本的经济框架并得出结论:加密所需的操作必须确保隐私,并且其计算的成本可以压倒其他的经济利益【3】。

然而,这项工作早于Intel的AES-NI的架构扩展,这个架构扩展大大加快了数据加密操作。

也有一系列非学术性的尝试,提供传统的文件系统接口,为key-value存储系统提供服务,比如亚马逊的S3。

这些每个客户端安装新的文件系统驱动程序。

典范包括s3sf【22】,试图直接将文件系统映射到S’3的存储模型中(这种做法将会改变文件系统的语义以及显著的增加成本);ElasticDrive 【5】,它提供一个块级别的页面(丢弃了一些潜在的使用文件级所产生的优化,比如预取)。

但是我们自己的系统最接近的是“云存储网关”。

云存储网关在过去的几年里出现(与同时代的努力),是存储服务器的一个新的类别。

Cirtas,Nasuni,TwinStrata,StorSimple和Panzura,这些系统等公司提供缓存网络文件系统代理(或网关)。

以这些公司为例,至少在表面上,这些系统非常类似于我们的设计。

这些系统的定价安排反映了在原云存储成本之上的两倍的保证金。

尽管这些系统的很少的细节是公开的,然而,一般说来,他们验证了我们所选择的设计点。

在商业云存储网关中,Nasuni [17]也许是同蓝天最相似的。

Nasuni提供了一个“虚拟NAS设备”(或者“文件管理器”)。

在用户的硬件电脑上,运行着客户的虚拟机,而软件包装在这个虚拟机上运行,这点同我们建立的蓝天代理软件非常相似。

Nasuni文件管理器作为高速缓存并且将数据持久写入到云中。

由于Nasuni不公开具体的实施细节,所以我们不知道Nasuni和蓝天是有多么相似,虽然他们的外部有一些差异。

在成本上,Nasuni只是简单地根据磁盘空间所消耗的数量(约0.30/GB/month,由云服务提供商所决定),一点也不考虑数据传输的功能和操作的执行。

据预测,为了避免吃进他们的利润,Nasuni在优化他们的系统以降低网络和每个操作的开销,但是他们是如何做的的细节目前还不清楚,除非他们采用缓存技术。

Cirtas【4】也建立了一个云网关。

但是它是以设备的形式出售。

Cirtas的的Bluejet是一个安装在机架上的计算机。

它在单个封装中集成软件来缓存文件系统的数据并存储于硬件中。

同Nasuni相比,Cirtas具有更高的前期成本,但更容易部署。

Panzura提供了另外的一种CIFS/NFS云存储网关。

不像蓝天和其他的一些系统,Panzura允许多个客户站点每次运行一个云网关。

这些网关都访问相同的底层文件系统,因此Panzura特别适合团队在一个大的区域内分享数据。

但是,同样其实施细节没有公开。

TwinStrata[29]和StorSimple [28]实现了网关,它们提供了块级存储接口,如ElasticDrive,从而也失去了很多文件系统级的优化。

在某些方面,蓝天的作用就像一个本地服务器一样。

它将数据备份到云—一个本地的NFS服务器同Mozy【15】,Cumulus【30】,或其他类似的软件结合来提供类似的功能。

然而,这样备份的工具不支持高频率的备份(确保数据能够快速的到达云)并且不支持高效的随机访问云中文件。

此外,他们把本地的数据(而不是云中的副本)作为权威性的数据,来防止本地服务器缓存只是文件的一个子集。

3.结构蓝天通过一个基于代理的透明的结构向在一个企业中的客户提供服务。

这种结构在云存储提供商处持续的存储数据(如图1)。

我们要特别的考虑到一个企业的环境,包括:一个单一的代理缓存,与企业的客户相搭配,与一个相对高延迟然而高带宽的与云存储的连接相搭配,与典型的办公室和工程总达数十TB的文件的工作负载的要求相搭配。

本节我们将讨论代理器的作用,云服务提供商的组成,以及蓝天所支持的安全模型。

在第4和第5节中,我们将分别描述蓝天文件系统的布局和操作,和蓝天的代理。

云存储的作用就像在存储层次中的另一个层。

然而它提出并结合了新的设计考虑方法,使得它不同于其他的层,并且强烈影响了其作为一个文件服务的使用。

云计算的高延迟使得对企业的积极缓存成为必要。

另一方面,云存储具有一个有弹性的容量,具有独立于空间局部性的操作服务时间的提供,因此它大大的缓解了自由空间的管理以及数据的布局。

云存储的接口往往只支持对一个完整的对象进行写操作,防止有效地更新只是一个存储对象的一部分。

这种约束刺激了对现有内容的增加,附加,而不是对一个存储数据模型进行重写。

货币成本也成为优化的一个明确的度量值。

云存储的容量是有弹性的,但是我们仍然需要极度节省的去管理它,来降低随着时间推移而增加的存储成本【30】。

使用附加模型的存储,垃圾回收成为一种必然。

提供商也为每个操作收取少量的费用。

虽然较少,但当写入数据时,促进聚集小的对象(元数据和小文件)成为更大的单元,成本也是足够高的。

最后,外包数据存储的安全是首要考虑的因素。

图13.1本地代理蓝天的核心组成部分是位于客户端和云服务提供商之间的一个代理。

这个代理使用标准网络文件系统协议与企业中的客户端进行通信,使用云存储协议与云服务提供商进行通信。

对于客户端,我们的原型支持NFS(version 3)和CIFS协议;针对于云服务,支持亚马逊的S3的RESTful协议和Windows Azure。

理想情况下,在同一个企业网络环境中,代理为客户端减少延迟。

代理缓存本地的数据和管理客户端之间共享数据,而无需进行到云中昂贵的往返。

客户端不需要修改,因为它们仍然使用标准的文件共享协议。

它们使用安装蓝天文件系统导出的代理,就好像它们在使用NFS或CNFS服务器的出口一样。

另外,通过共享语义等价于Samba,同一个蓝天文件系统可以安装在任何类型的客户端。