书城计算机网络云计算和现代远程教育
19092800000018

第18章 云计算中的云存储(1)

6.1概述

云存储与传统的数据存储相比具有许多优点。如果在云上存储数据,可以从任何具有Internet访问的位置获取它。这使得它对于经常变换工作地点的人特别有吸引力,他们不必使用相同的计算机访问数据,也不必携带物理存储设备。此外,如果你的组织有分公司,他们也都可以从云提供商那里访问数据。

6.1.1基础知识

有数百种不同的云存储系统,并且其中一些具有非常特定的用途。一些云存储系统是面向特定环境的,并且只存储电子邮件或数字图片,而另外一些则存储任何类型的数据。一些提供商比较小,而另外一些则非常大,并且涉足整个领域。在最基本的层面上,云存储系统只需要一台连接到Internet的数据服务器。用户通过Internet把文件复制到服务器上,然后服务器记录数据。当用户希望检索数据时,他利用基于Web的接口访问数据服务器,然后服务器把文件发送回客户或者允许客户访问和操纵数据本身。但是,更典型的情况是,云存储系统利用十几台或上百台数据服务器。由于服务器需要维护或维修,有必要把保存的数据存储在多台机器上,从而提供冗余性。如果没有这种冗余性,云存储系统将不能确保客户可以在任何给定的时间访问他们的信息。大多数系统在使用不同电源的服务器上存储相同的数据,这样即使一个电源出故障,客户仍然可以访问他们的数据。许多客户之所以使用云存储,不是由于他们在本地用光了空间,而是出于安全考虑。如果他们所在的建筑物发生什么事情,那么他们将不会丢失任何数据。

6.1.2存储即服务

术语“存储即服务”(Storage as a Service),它与“软件即服务”(Software as a Service)共用相同的首字母缩写词SaaS,意指第三方提供商将其存储空间租给缺少用于自行购买存储器的预算或资本预算的最终用户。当没有技术人员或者技术人员没有充足的知识来实现和维护存储基础设施时,这种方案非常合适这些最终用户。存储服务提供商做了当前备份、复制和灾难恢复需求的复杂性服务,该服务变得很流行,尤其是在中小型企业中。SaaS最大的优点是节省成本。它使用存储每个字节数(GB)的成本模型或者传输每份数据的成本模型从提供商那里租用存储空间。最终用户不必为基础设施付费,而只需为他们在提供商的服务器上传输和保存的数据量付费。用户使用客户软件指定备份集,然后跨WAN传输数据。当发生数据丢失时,用户可以从服务提供商那里获取丢失的数据。

6.1.3提供商

如前所述,Web上有数百个云存储提供商,并且每天似乎都在增加更多的提供商。不仅有通用的存储提供商,而且还有一些在存储内容方面非常专业化的提供商。

这里我们给出一些专业化的云提供商的例子:

(1)Hotmail和Yahoo!Mail这样的Web电子邮件提供商在他们自己的服务器上存储电子邮件系统。用户可以从连接到Internet的计算机和其他设备访问电子邮件。

(2)Flickr和Picasa宿主有数百万张数字照片。用户可以创建他们自己的在线图库。

(3)YouTube宿主有数百万张用户上传的视频文件。

(4)Hostmonster和GoDaddy为许多客户Web站点存储文件和数据。

(5)Facebook和MySpace是社交网络站点,并且允许成员发布图片及其他内容,这些内容存储在公司的服务器上。

(6)MediaMax和Strongspace为任何类型的数字数据提供存储空间。其中许多服务是免费提供的,但是另外一些服务是按存储的字节数(GB)以及与云之间传输的信息量收费的。随着越来越多的提供商提供他们的服务,价格逐渐在下降,并且一些公司提供了一定的折扣。

6.1.4安全性

为了保障数据安全,大多数系统使用了以下保障数据安全技术:

(1)加密。使用复杂的算法编码信息。要解码加密的文件,用户需要加密密钥。虽然有可能破解加密的信息,但这很难做到,并且大多数黑客所拥有的计算机处理能力并不足以破解代码。

(2)身份验证过程。这要求用户创建用户名和密码。

(3)授权实践。客户列出被授权访问存储在云系统上信息的人员。许多公司都具有多种级别的授权。例如,第一线的人员可以有限制地访问存储在云上的数据,而IT部门的领导也许可以完全、自由地访问所有信息。但是,甚至在具有这些措施的情况下,仍然有存储在远程系统上的数据受到攻击的困扰。人们总会有这种顾虑:黑客会找到进入安全系统的方式并访问数据。此外,心怀不满的雇员可能使用自己的访问凭证改变或销毁数据。

6.1.5可靠性

另一个顾虑是可靠性。如果云存储系统不可靠,它就成为了一种不利条件。没有人想在不稳定的系统上保存数据,他们也不会信任财务不稳定的公司。大多数云存储提供商尝试通过冗余性来处理可靠性顾虑,但是仍有可能导致系统崩溃和使得用户无法访问他们保存的数据。声誉对于云存储提供商很重要。如果提供商给外界一种不可靠的感觉,那么他们将不会有很多客户。而且如果云存储系统不可靠,那么将不会存在很长的时间,因为市场中有太多的竞争者。

6.1.6优点

云存储可以使数据驻留在Web上,其位置可以跨多个存储系统,而不是位于指定的公司托管站点上。云存储提供商平衡服务器负载并在多个数据中心之间移动数据,确保信息存储的位置靠近使用它的位置,从而可以快速获得它。在云上存储数据是有利的,因为万一发生灾难,它可以让你保护自己的数据。你可能具有关键信息的备份文件,比如像大地震、大火或飓风毁灭了你的组织,在本地存储备份被损失。那么在云存储提供商那里备份你的文件就意味着将不会丢失,所有的数据选择哪个存储供应商可能是一个复杂的问题,你的技术怎样与云交互也可能很复杂。例如,一些产品是基于代理的,并且应用程序自动通过FTP把信息传输给云。但是另外一些应用程序使用Web前端,而用户不得不在他们的计算机上选择要传输的本地文件。Amazon S3是最着名的存储解决方案,但是其他一些供应商可能更适合于大型企业。例如,那些提供服务等级协议以及允许直接访问顾客支持的供应商对于把存储迁移到服务提供商的企业是至关重要的。

6.1.7警告

采用一种混合方法可能是利用云的最佳方式,因为云存储依然是不成熟的。也就是说,不要把所有的一切都提交给“云”,而是只把它用于少数非关键的目的。大型企业可能难以与像Amazon这样的供应商打交道,因为它们将被迫为它们的应用程序重新编写解决方案,并且缺少可移植性。但是,像3tera这样的供应商支持在LAMP.Solaris.Java或Windows.NET中开发的应用程序。在涉及云存储时,最大的障碍似乎是价格和可靠性。你必须在这两个方面对供应商进行彻底审查,以确保获得良好的服务。供应商可能犯的一个错误是导致不可恢复的数据。许多公司采用“吸引人的”方法,测试一种或两种服务,查看与其现有的IT系统相互配合得有多好。但在把大量的内容提交给云之前,确保服务能满足你的需求是很重要的。法律问题也很重要。例如,如果你具有希望在云上维护受版权保护的材料——如音乐或视频等。此外,还要牢记存储提供商的责任。供应商对于数据的维护提供不同的担保,他们可能提供服务,但是你自己一定要确保知道发生数据丢失或损坏时你的供应商应负的责任。最佳的解决方案是具有多种冗余的系统:本地备份和站外备份、同步和存档。

6.1.8系统停工

此外,你必须认识到在Internet上存储数据的固有风险。例如,Amazon S3在2008年2月处理了严重的系统停工事件。其结果是为数众多的客户应用程序脱机。Amazon报告说他们对问题做出了响应,给导致问题的身份验证系统增加了容量。他们还注意到没有任何数据丢失,因为Amazon在多个位置存储了每个对象的多份副本。但是,关键问题仍然是不能满足客户访问其数据的要求,因此在你决定选择使用云时,需要多加小心。

6.1.9失窃

你还应该牢记你的数据可能被那些未经授权的人窃取或查看。无论何时让你的数据离开自己的数据中心,从安全的角度讲就会有风险。此外,由于存储提供商把所有的一切都存放在一个存储区域中,因此可以说,你的公司的数据可能存储在竞争对手的数据旁边,竞争者查看你的专有信息的风险是真实存在的。如果你把数据存储在云上,一定要对数据进行加密,并利用像SSL这样的技术保障数据传输的安全。

6.2云存储提供商

有数百个云提供商,并且每天都在出现新的参与者。这里只是简单地列出了一些重要参与者所提供的服务,可以把它用做一种开始指南,以确定他们的服务是否匹配我们的需求。Amazon和Nirvanix是目前的业界权威,但是也有许多其他的提供商,包括一些广为人知的名字。EMC正在准备一种存储解决方案,IBM已经具有许多称为Blue Cloud(蓝云)的云存储选项。

6.2.1Amazon Simple Storage Service

云存储服务是Amazon的Simple Storage Service(S3),Amazon S3旨在使开发人员能够更容易地进行Web规模的计算。Amazon S3提供了一个简单的Web服务接口,可以在任何时间从Web上的任意位置存储和检索任意数量的数据。它允许任何开发人员访问Amazon,用于运行它自己的全球性Web站点网络的高度可伸缩的数据存储基础设施。该服务旨在充分体现最大化伸缩的好处,并把这些好处传递给开发人员。Amazon S3是利用最少的特性集构建的,它包括以下功能:

(1)读、写和删除对象,其中每个对象都包含1~5 GB的数据。可以存储的对象数量是无限的。

(2)通过开发人员分配的唯一密钥存储和检索每个对象。

(3)可以把对象创建成私有的或公共的,并且可以给特定的用户分配权限。

(4)使用标准REST和SOAP接口,它们被设计成可以与任何Internet开发工具包协同工作。

6.2.1.1设计需求

Amazon把S3构建成以下设计的需求:

(1)可伸缩。Amazon S3可以依据存储空间、请求速率以及用户进行伸缩,以支持无限数量的Web规模的应用程序。

(2)可靠。持久地存储数据,并且具有99.99%的可用性。Amazon要做到不允许任何停机时间。

(3)快速。Amazon S3被设计成速度足以支持高性能应用程序。服务器端等待时间相对于Internet等待时间是微不足道的。任何性能瓶颈都可以通过简单地向系统中添加节点得以提升。

(4)廉价。Amazon S3是通过廉价的基本硬件组件构建的。随着Amazon继续压低基础设施成本,要达到节约的目的。