云计算和虚拟化的关系

云计算和虚拟化,没有任何必然关系。实现云计算,根本不需要虚拟化。我说的云计算,就是分布式计算(利用 MapReduce来实现)。

只有在云服务提供商对外提供服务的时候,才需要使用虚拟化的技术,用虚拟化的目的是为了更好的管理。

这就是我的结论。


现在云有多热?连我妈都问我,啥是云? 我也只能告诉他,我那时候也没有搞明白。

我最近买两本书《云计算》和《hadoop权威指南》,我上周末在家里把《云计算》翻完,不过我还真的也没有搞明白啥是云计算。别人问我,我还是无法回答。据说作者还建议作为高校教材,不知道高校学生学完,能回答云和虚拟化有啥关系这个问题吗?

或者说,云计算是不是就是虚拟化呢。vps呢?

对于云和虚拟化的关系,专家有不同的解读。不过我相信你基本也会和我一样,听不明白他在说啥。

“以前报道过“虚拟化和云计算:手心手背都是肉”;“虚拟化将成为云计算的支撑基础”等等”

我反正是不明白他们在说啥。

今天上午在公司看完《hadoop权威指南》第一章,感觉我可以说明白云和虚拟化有啥关系。这就是国外人写书和国人的区别。

下面就谈谈我的理解,至少是我今天对云的理解。


一个故事

古时候,人们用牛来拉重物,当一头牛拉不动的时候,他们不曾想到要培育个头更大的牛。同样,我们也不需要尝试更多的计算机,而是应该开发更多的计算机。

这个是从《hadoop权威指南》觉得一个例子。


什么是云


什么是云,其实并不重要,重要的是我们在其之上,将数据,软件和平台等等的复杂构建,安装和维护的工作转嫁给云提供商。

这是《hadoop权威指南》给出的一个说法。这个的定义,应该大家可以理解把。

昨天一个运营商的老大问我:3G和云有啥关系? 这个问题我当场无法回答。

我今天思考了一下,3G,就意味无数的终端都可以联网,那么这个时候,就会产生无数的应用,那么这些应用无一例外的特点就是会产生大量的数据,3G的终端,计算能力很弱。

对于大量的数据,就会产生两个问题,存储和数据的分析。存储需要空间,数据分析,需要计算能力。那么你作为运营商,需要做啥呢。当然是准备好存储空间和计算能力。那么肯定就要和我们一起云。

让那些小的软件厂商,开发各种的应用,他们不需要考虑存储和计算能力,这样大大降低了门槛。吸引更多的人加入。

举一个实际的例子:我一个朋友做手机定位。现在的手机定位已经很先进。

手机定位采用2种技术,

手机上带有gps芯片,通过卫星定位。
通过基站定位,一个基站,只能确定1公里,如果是3个基站,就可以定位一个人的确定位置。

你在大街上行走,gps就可以对你进行定位,当你进入建筑物,就可以通过基站进行定位。而且你所以走过的轨迹,都是记录下来的。

下面这个故事是我编的。

假设一家保险公司,全部的保险业务员,都是配置这种功能的手机。我的服务器记录的全部业务员的运行轨迹。

3个月,我认为业务员的运行轨迹,走路多少和业绩是否有关系。他们去的地方,是否和业绩有关系。我就希望对这些数据进行分析。

这个时候,我们就要从云存储里把数据拿出来,用云主机进行云计算。看看他们有啥内在的关系。进行数据挖掘。

看看他们业务员,中午喜欢到那里吃饭,平时有啥爱好。估计分析出来的东西很多。看看什么因素是和业绩有关的。


云的应用

我个人理解,云的应用,目前成熟其实就2部分,云存储和云计算。这两个是有很大的差异的。其实我的理解,应该还有所谓的云数据库,不过目前我还没有了解这个。


云存储

云存储,其实和我们比较近,也相对来说,比较好理解。如果接触过服务器的人,就很容易明白。

2000年的时候,当时sina给用户提供邮件的空间是50M,后来sina还出现一次事故,存储出现问题,造成用户的邮件丢失。在那个年代,邮件服务提供商,都是使用共享存储,这种设备非常昂贵。

使用共享存储的方式,对于今天这种大数据量其实已经无法适应。那么如何解决呢?

那么就是把更多的机器的硬盘连成一起。这样做需要增加空间就简单,加台机器就可以。那么随之而来的问题就是如果其中一台机器出现问题怎么办?其实也好解决,我们把一份文件,copy多几份到不同的机器上,这样就解决了一台机器出现问题,丢失数据。

这其实就是分布式文件系统。

其实在国内,我相信网易,早就使用类似的技术,只是不对外开放而已。目前国内的那些网络硬盘,其实也基本是类似的技术。

其实看完这个,你就应该知道,云存储和虚拟化一点关系都没有。

为啥说Gmail是云呢?我的理解是Gmail,邮件的存储,他肯定是采用了分布式文件系统。

曾经有人问过我一个问题,800客,xtools这些CRM应用这些算不算云,或者说,他们是否采用云的技术?

这是一位咨询公司的朋友问我的问题,当时我的回答,应该是不对的。

800客,xtools到底是不是云?我的理解就是看他们的存储和数据库。

简单点说,如果只是不不同的用户分配到不同的机器上,我想这不能算是云。从技术来说,应该是很简单就可以实现。或者说,根本不需要用到云的技术。

把用户分配到不同的机器上,有2个问题。

1:如果一个用户,他的消耗的资源过多,那么就会影响别的用户,那么这个时候怎么办?假如这个企业今天是20个crm的用户,明天突然增加到1000个,那么一台机器,肯定就无法满足。

当规模不大的情况下,这样的问题也好解决,给他单独安排一台机器就可以。那么如果单独一台机器都无法满足,那就有问题,如果这样的用户不多,其实还是有很多办法解决。对于saleforce来说,他们就必须想办法自动解决,所谓的弹性就是这样意思。你企业是100用户,可能是分配到不同的机器访问,但是数据库是同步的。这里面技术含量还是很高的。

2:机器如果硬件出现故障,那么就麻烦。造成服务停止。

还有一点,需要注意的,云存储,只是针对文件。对于数据库,他是没有办法的。也就是说,如果你用的是mysql的数据库,你是无法通过所谓的分布式文件实现,实现多个备份的。

所以从这几点来看,他们不可能算是云。如果是有数据库的应用,要做到云的应用,技术难度还是很高的。

所以我个人认为,他们都是没有采用所谓云的技术,他现在的规模,也不需要实现那种弹性,也就不能算是云。日后如果有机会接触他们的技术,探讨一下。

Saleforce,大家肯定认为他是云的应用,为啥。我个人认为,他不但解决的存储,还解决的数据库的问题。


云计算

为啥需要云计算。云计算可以解决两个问题

1:当一台机器资源闲置的时候,我可以通过虚拟化,在上面跑多个os。

这其实就是很好理解,也就是为啥云计算好像都是虚拟化一样。虚拟化,是很好解决这个问题的方式。

那么如果是这样的话,云计算和虚拟化就有关系。

2:当1台机器无法满足计算的要求的时候,我们把多个机器并一起来完成一项工作,这其实就是所谓的并行计算。

这其实也很好理解,但是有点,这和虚拟化有啥关系呢?

我一台机器的性能都不够用,难道我还在上面虚拟化,再跑一个os,这样性能就更差。

这其实是很困惑人的。

那么我不虚拟化,来实现并行计算,可以吗?这肯定是可以,假如你这次并行技术,需要的是linux,安装特定的软件,那么你就在100台机器进行安装,就可以实现并行计算。

我们一些固定的应用,并行计算,其实根本不需要虚拟化,现在那些高性能计算机,其实就是通过并行计算的原理来实现的。

一个简单的例子,google,他肯定是云,那么可以肯定一点,google肯定是没有用啥虚拟化的技术。他都是用普通的pc,进行大量的并行计算。

那么云厂家都是通过虚拟化来提供云计算呢?

不同用户,实现并行计算的软件,os都是不一样的。如果我是对外提供服务,我就需要满足不同的需求。而且客户需要云计算的能力,是按需的,不是长期的。

假设客户需要100台服务器,运行linux,10个小时。马上又有客户提出,我需要100台windows的机器,跑一个小时。

那么如何在在100台机器跑完linux,又马上安装window给客户提供服务呢?

当你有100台物理的机器。你如何可以实现统一的管理呢?远程控制卡,这是可以实现远程管理,不过不是所有的机器都有远程控制卡,而且即使有远程控制卡,你如果希望同时在这些机器安装系统,软件呢?

那么目前的技术条件,如何才能更低的成本来实现统一管理100台服务器,甚至1000台呢?答案就是虚拟化。

目前一台物理服务器上跑一个os,和物理服务器上虚拟化,再跑一个os,性能大概要损失5%,这是可以接受的。因为所有的机器实现虚拟化后,我们就可能实现统一的管理。

虚拟化,物理服务器,其实也是需要你去安装系统,不过这是一次性的。实现虚拟化后,你在上面跑什么os,什么软件,都是可管理的。

你需要100linux的主机,我1分钟就克隆出来给你使用。

这就是我们为啥看到云服务提供商,都是通过虚拟化来提供云计算。

结论,云计算和虚拟化的关系

对于要解决1台机器的资源充分利用资源,那么云计算是需要虚拟化来实现。 

但是对于把多台机器并在一起完成一项工作,根本不需要虚拟化。

在什么情况下要虚拟化呢?

如果你希望对外提供服务,作为云计算的服务提供商,那么你就需要采用虚拟化的技术,这样可以更好的服务客户。 

原文地址:http://hi.baidu.com/chenshake/item/3132b5e8c3d5bbc2bbf37da1

阅读更多
个人分类: 云计算
想对作者说点什么? 我来说一句

<em>虚拟化云计算</em>

2017年08月05日 0B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭