我们再来看看亚马逊的EC2服务,即弹性计算云服务。有了EC2,你可以用租用亚马逊的服务器,动态租用它10台机器,或者是100台机器。它给你提供一个工具,这个工具可以把你机器目前运行的环境整个打成一个包,这个包叫一个映象。将这个映象传到亚马逊的服务器上面,展开之后就可以恢复出跟你机器一模一样的环境,这个过程叫做虚拟化。我想将租来的机器虚拟化什么样都可以,比如我想将租用的机器做成一个数据库,做成一个网站,做成数据处理节点,都可以。我觉得,这是EC2受欢迎最根本的原因之一,即通用性,它使用亚马逊云计算可以用来满足各种应用的要求。EC2受欢迎的第二个原因是它的可伸缩性。你的一个映象可以传到十台机器,也可以传到一百台机器,只要你付钱。当业务量大的时候,你可以多租一些机器,当业务量下来的时候,你可以退掉一些机器。EC2受欢迎的第三个原因是它非常便宜,租用一个服务器一小时,只需要付0.10美元,比到网吧用电脑还要便宜得多。
由于亚马逊提供了非常便宜又非常强大的服务,所以我们可以用它来做以前想都没想到的事情。比如这家小公司,它的设施基本都可以租用亚马逊的机器,存储的数据是放在S3服务,处理节点用的是EC2。还有一家公司SMUGMUG,它的网站上面已经有几亿张高清图片,拥有几十万付费用户,这么大的规模,这家公司人数只有五十人,之所以如此,是因为它所有的设施都是托管于亚马逊的。纽约时报曾经使用亚马逊的服务,在24小时之内就把历史上所有的文章从TIF格式转化成PDF格式,一共才花了240美元。别少看这240美元,它可以租2400个机器小时。如果纽约时报要用自己的机器来完成的话,需要几个月的时间才能做好。所以亚马逊的服务给业务量不确定应用带来非常大的好处。事实上,大多数互联网应用都是业务量不确定的。
我们再来看看Google。Google几乎所有的业务,包括Gmail、Google Maps、Google Earth、Google Docs和新近出来的Google Wave,全部都是在云计算上运行的。我们可以通过各种终端、在各种平台上访问Google服务,可以是手机,可以是PC,也可以是Macintosh,或者在Linux环境中。Google之所以能够做到这一点,根本原因是它后面的云计算设施。Google把这些云设施建到非常偏远的地区,比较冷和靠近电站的地区,用电成本非常低,通过光纤传信息来代替通过电线传电力。Google有一个说法,传输光子的成本要远远地公共低于传输电子。Google的云计算数据计算中心目前分布于30多个不同地点,共有200多万台计算机。我们来看看一些图片,这些云设施,被人们称为“信息时代的核电站”。再看看机房内部,有些机房里的机器就是一大堆普通的PC。极其廉价,但非常容易坏。Google认为,机器会坏是正常的,不坏是不正常的。Google牛就牛在任意一个节点坏,或者两个节点同时坏,它的数据不会丢,服务不会中断。它的云计算设施管理起来也非常方便,一个人可以管理上千台机器。这个人用小推车推了一些机器,看到机架上哪台机器的灯在闪,就将它拿下来,换一个新的插上去就可以了。你们看,图片上的机器是难看的背面对外,为什么?更换方便!
要做到这个境界,Google主要依靠四个技术:GFS、MapReduce、Bigtable和Chubby。这里我主要讲下Google文件系统GFS。这个文件系统能做什么呢?我们看这张图:GFS将集群里的节点分为管理节点和数据节点两类。管理节点存储元数据,客户端通过访问管理节点来获得文件应该存储在什么位置的信息。一个文件被分布若干块存储于不同的数据节点上,客户端从管理节点知道存储的节点编号后,就可以直接访问数据节点存取数据。这样,数据传输是直接发生在客户端与管理节点之间的,管理节点只需要处理元数据访问请求,从而不会在管理节点形成瓶颈。我们再来看数据是怎么存放的。Google的数据块是比较大的,默认是64MB一块,这和Google应用的特点有关。任何一块数据在GFS里默认是有3份的,当客户端向数据节点A存储了一个数据块,A会立即将它复制给B和C。如果B坏了,会自动再复制一份给D。Google对GFS的访问作了许多限制,例如不允许在文件的中间去修改数据,但可以在后面加数据。之所以作限制,是为了实现方便并提高整体的可靠性。这个系统无论规模做得很大,瓶颈也不会显现出来,这个Google文件系统,看似非常简单,但是是一个非常巧妙的系统。如果GFS只管理了100台机器,看起来并不高明,甚至比不上常见的分布式文件系统,但当GFS管理了100万台机器时,它的优势就显现出来了。这就是规模效应。
更多详细信息,请您微信关注“计算网”公众号: