一向倡导所谓的“硬件即服务(HaaS)”的 Amazon 的弹性计算云(Elastic Computer Cloud,EC2),如今在它的特性列表中加入了持久化存储的功能。Amazon 的 CTO Werner Vogels讲述了如何把存储卷挂接到 EC2 实例上,以及存储卷如何处理失败与数据一致性的问题;同时他也谈到了如何存储一个 S3(Amazon 的存储服务)中存储的快照作为备份。InfoQ 中有几篇文章探讨了 EC2 服务背后的技术和好处:
Amazon 的弹性计算云(EC2)基于剑桥大学的 Xen 虚拟化技术,它是一种计算服务,允许用户按照需要创建、运行和终止基于 Linux 的服务实例。每个虚拟机实例都是一个虚拟服务器,会在启动时通过 DHCP 获得一个 IP 地址。虚拟机的镜像(Amazon 称其为 Amazon 机器镜像,AMI)可以被归档并传递,这一点很像 VMware 的虚拟 appliance,因此,开发者可以设置一个必需软件的初始实例,然后将它快速地部署到大量虚拟服务器上。
使用 EC2 的主要障碍在于它缺少持久化存储的支持,Amazon 已经意识到了这个问题,正如其 CTO Werner Vogels 在 blog 所描述的那样,Aamzon 已经将持久化存储列为一项新特性了:
我要向你介绍 Amazon EC2 的最新特性:持久化本地存储。这项特性在 EC2 用户的请求列表中呼声很高。我相信,只要结合使用这个月早些时候发布的“可用区域(Availability Zone)”和“弹性 IP 地址(Elastic IP Address)”技术,EC2 将成为构建具有高可扩展性和可用性的应用程序的理想环境。 Amazon EC2 的持久化存储将会以存储卷的形式提供,你可以把它当作一个原生的块存储设备,挂载到你的 EC2 实例。它看上去像一个没有格式化的硬盘。一旦你第一次挂载了存储卷,就能够将它格式化为你想要的任何文件系统,或者如果你的程序比如高端的数据库引擎有需要,也可以不格式化直接使用。
Werner 提醒说,使用者可以为他们的存储拍摄快照,并存储到 S3 中:
…我们还加入了快照特性:你可以要求 EC2 为存储卷拍摄快照,并保存到 Amazon S3 中。你可以将它用于长期的备份,在回滚策略中使用它们,也可以用于(世界范围内的)卷的重建。
Thorsten 提前试用过该特性,并且把他的经验记在了 Blog 上。Thorsten 来自 RightScale,这是一家提供云计算服务器平台的公司,他们的平台是利用 Amazon Web Services(AWS)部署的。
有了存储卷以及拍摄快照这样很酷的功能,下面这个趋势已变得越来越明显了:相比那些仍然抱着自己的机器不放的人来说,采用云计算的人手上将握有更多的计算能力和灵活性。这就像敏捷软件开发一样:如果你想让自己的 internet/web service 得以生存的话,就必须参与到云计算,否则你的竞争对手就会更快地、更好地、更便宜地部署他们的服务,从而将你远远落下。
来自 Amazon 的 Jeff Barr描述了持久化功能的更多技术细节,并且强调了存储能力可以根据需要随时获取:
周六,我花了些时间尝试了一下这些新特性。在短短的几分钟内,我就创建了一对 512GB 的卷,并把它们挂接到 EC2 实例上,然后用 mkfs 在上面创建文件系统,最后挂载它们。当我使用完成后,就将它们卸载、解除连接,最后删除它们。这一切都非常简单。 我可能有些“王婆买瓜”的味道,但是这种可以按照需要获取大量存储的能力看上去的确是非常酷。
来自 Amazon’s EC2 团队的 Matt 也谈论了这一新特性:
你将能够创建从 1GB 到 1TB 不等的卷,并且可以将多个卷挂接到一个单独的实例上。这些卷可以以高吞吐量和低等待时间访问 Amazon EC2,并且可以挂接到任何运行中的 EC2 实例上(这些卷看上去就是 EC2 实例内部的设备而已)。这一特性使得在 Amazon EC2 上运行关系数据库、分布式文件系统、Hadoop 进程集群等等程序更为简单。一旦持久化存储投入使用后,Amazon EC2 将会增加一些新的 API 来支持它。包括管理卷(CreateVolume 和 DeleteVolume)、挂载卷(AttachVolume 和 DetachVolume)和保存快照到 Amazon S3(CreateSnapshot 和 DeleteSnapshot)。
Amzon 宣称,这项新特性已经私下提供给少量的用户了,它将会在今年晚些时候正式公布。你可以在 infoq.com/amazon 获得更多信息。
评论