云计算是目前IT界最流行的词。

云,是一种朦胧的美,一种特殊的感觉。云计算也如其名,是一个美妙的构思。

云计算发展到今天,又融入了一种新技术,那就是虚拟技术。曾经的云技术是从网格计算中而来,运用在群组计算机中,随着时代的发展,群组计算机需要大量的空间,人力和物力。而虚拟技术的发展,正好解决了这个问题,让大量的群组计算机,集中在几台服务器上。

 1.虚拟技术

虚拟技术的详情请看之前的日志。

这次云计算的框架中,选择了xen,作为虚拟管理,xen是由剑桥大学开发,传说是剑桥高手从中国禅道中悟出来的。。。

选择xen,有两大理由:一,xen是开源软件,不需要任何花费。二,xen是半虚拟化,其性能领先于完全虚拟化。

xen安装过程(源码安装)




这里有一个需要注意,xen的dom0不是host os,而是guest os。这是半虚拟化的一个特色,所有系统都由xen hypervisor来管理,hypervisor是一个微型系统,所以dom0的cpu使用率几乎可以达到97%

但为什么ubuntu先安装,再安装xen,而ubuntu是如何成为guest os?




ubuntu安装之后,加入了xen和linux kernel,当启动时候,就将使用xen kernel来启动。其余软件,也就是外壳,都是ubuntu的外壳。而xen hypervisor才是真正管理虚拟机的宿主机。

2.云环境

eucalyptus是一个很不错的云环境,NASA美国航空航天局,也用这个作为云环境。




CLC云控制,是所有系统的总控制,控制着网络,IO设备,读写操作。

CC簇控制,控制着一个簇里面的系统。

NC节点控制,单个系统的控制。

当客户提交任务,由CLC来平均分配任务,让计算机的效率发挥到最高,让普通机器也能完成以前只有超级计算机才能完成的事情。

从上图中,也可以看出,eucalyptus对于存储方面的贡献不大。

在当今世界,数据的存储已经越来越重要,试想银行要是掉了所有的数据,那是多么杯具的一件事。

3.存储结构

hadoop,是一个分布式系统架构,主要包括HDFS和MapReduce技术,MapReduce

是google的看家法宝。目前hadoop主要由雅虎公司负责开发。

HDFS,Hadoop Distributed File System。这套分布式系统具有高度容错性。(理论具体详见百度百科)

接下来看下HDFS的结构


HDFS中,分为NameNode和DataNode,前者管理,后者被管理。

当客户要求对存储区域操作时,首先向NN申请,然后由NN来决定存储的位置,申请一般以64M为一个单位,也就是一个block。

每份数据都有3个备份,二个备份是在同一个Rack之内的不同DataNode中,另一个备份则在其他Rack中。(感谢网友指正,原先所写的2个备份有误)

MapReduce,hadoop为了提高处理大量数据的效率而采用的的专用编程模型。map和reduce函数都是基于java的。(这里感谢网友的指正,原先所说的搜索技术是错误的。)



看图估计也未必能清楚的明白,毕竟这个是google的看家法宝。

举个例子来说明一下:

客户1:I am a student

客户2:I am living in Kobe

Map函数将会得到:

(I,1)   (am,1)   (a,1)   (student,1)
(I,1)   (am,1)   (living,1)   (in,1)   (kobe,1)

而再经过Reduce函数时候,得到:

(I,2)   (am,2)   (a,1)   (student,1)   (living,1)   (in,1)   (kobe,1)

在同时处理数据时,关键词I和am,都节约了一次处理的时间。想像一下,

同时有大量数据处理,将会节约多少时间。


这是最后的实现图,整个云环境的框架也就出来了。唯一的不足是,还没有云安全这一块,这一块目前世界上也是一个较为空白的区域,等待高手们的共同研究。