关闭

[置顶] 云计算的林林总总以及IaaS的核心技术

标签: iaas云计算虚拟机mapreducegooglepaas
1503人阅读 评论(2) 收藏 举报

一、云计算的林林总总。  

      云计算的概念是google率先提出来,当时他们缺钱无法购买昂贵的机器,就想了一个法,将很多廉洁的pc服务器集中起来,使用了一些网格计算技术,使其达到了大型计算机的效果.但网格计算毕竟很复杂在上面实现应用是很让人头痛的事情,google做了很多简化,首先他们简化了编程模式,提出了mapReduce模型,他们认为所用的编程行为都可以抽闲为两步,map,输入一些key,value对,生成中间的key,value对,reduce,利用这些中间key,value进行统计分析等操作,然后输出结果。对用户来说,使用mapReduce,是无需了解并行计算,网格计算,分布计算相互之间容错机制,用户只须要实现map函数,reduce函数即可,至于它跑在哪些计算机上,使用几台计算这些都不是用户所关心,而是mapReduce模型实现也就是google关心的。其实mapReduce模型实现并不复杂,在其上面采用网格计算的很多理念,首先和所用网格计算一样,它有一个schedule服务,该服务调度了很多worker,一些worker来运行用户map函数,一些worker来运行用户reduce函数,我们可以看到要实现多个worker并行处理,输入数据需要要裁分成很多块,通过map worker运行后,生成很多份中间数据,而这些中间数据的顺序是乱的,统计分析前需要进行排序,这些也是一些worker来处理,无需用户关心,排序后分成很多块,交给reduce来处理。在整个过程中,输入文件需要分成很多块,并分别到各个计算机上,中间过程数据需要排序,排序后又要分成很多块。现有的文件系统是无法支撑这些逻辑实现的,需要一个特殊的文件系统操作支撑,这就产生了GFS,google的分布式文件系统。google最早提出mapReduce概念时,并没有引起太多关注,后面google实用mapReduce的编程方式实现其搜索引擎,实现他的分布式数据库bigtable,论证mapReduce是一种编程模式革新,它什么都可以实现,后来google整合它的bigtable等技术,并结合它的mapReduce编程模式,推出他独有的软件开发平台,google app engine,并把该软件开发环境作为一种服务对外提供,这就是我们经常谈起的PaaS。再加上web2.0的推出,结合google app engine,这对传统的软件业带来很大冲击,一些好事者觉得这是不错的技术,应该对外公开,于是就产生了开源项目hadoop,hadoop是完全模仿google的一种山寨版的实现。

     google在云计算上走到了前面,ibm,微软,oracle等巨头都看到了他的未来发展前景,但这种模式却无法复制,他们不可能废除以前的传统应用产品,包括数据库,应用服务器,等等,从头来过,人家也要吃饭。于是他们就开始考虑如何将传统的应用也运行在云计算上。如果应用层不能动,为什么不在IT基础架构层上做点文章?通过虚拟化技术,将操作系统虚拟化,通过对虚拟机的调度实现资源的合理高效利用,n个虚拟机在m个物理机上运行不也达到了云计算的效果,传统的应用安装在这些虚拟机上也就成了云应用,如此以来就出现IaaS,IT基础架构层的解决方案。典型的IaaS有ibm的蓝云,亚马逊的弹性云等等。从IaaS的架构来看,一般来说都包括一个资源管理服务,性能监控服务,一大批物理服务器,和一些存储设备等。从实现看IaaS也采用网格计算技术,资源管理服务它维护了资源信息,所用物理服务器要加入到云计算上,需要向它注册,同时它也是一个schedule,所有物理机除了安装裸的操作系统外,还需要安装一个agent负责和资源管理服务通讯,同时也需要安装一个虚拟机供应适配器。其原理是schedule将所调用的job分成很多task,然后根据资源运行情况选择最优的资源,将task发送给执行资源上,由agent执行,agent按task执行后,将结果发送到schedule汇总。

    PaaS,IaaS是云计算在不同层面的解决方案,也不能说他们谁优谁俗,就如飞机与汽车一样,一个天上飞,一个地下跑,大家各走各的道。现在有一种言论,说IaaS是过渡方案,PaaS才是云计算的未来,这种言论太过偏激,能够想象这些言论者还不是一样的屁颠屁颠的买个小车跑得欢得很。总的来说,云计算几大特征:集中,服务,商品。这些年,云计算越来越火,有些人就想起了很多年前一个前辈所说的话,这个世界上只需要5台计算机,当然这个是一个很偏激的话,不过从某种意义上也代表了云计算发展趋势。现在世界各地都在大量建立数据中心(IaaS),从ibm的蓝云计划,到亚马逊的弹性云,从美洲到欧洲,从电信到航空领域,简直是如火如荼。

    有人问:为什么要用云计算,它将为我们带来什么好处?没有好处谁去干,干了就是傻瓜一个。那么到底云计算为我们带来了什么?高性价比的部署,高灵活性,高可靠,动态可扩展,按需部署等等,这些也许太过抽象,那么我列举一些传统上不可能完成的任务?

    1、你能够1个人就管理运维成千上万台机器?天啊,就算山西黑劳工也不是这种用法。

    2、你能够同时监控成千上万台机器的cpu,内存,网络运行情况,统计出整体运行状况?

    3、你能够在3天内部署一个需要3千台服务器的大型应用吗?“悟空,你又将自己看成神仙了,你不过是一只猴子”

    而这些云计算都可以实现,也有现成的例子。云计算的出现改变了很多企业,特别是一些中小型企业的信息化建设的模式,从资本投入,转向服务租凭。

二、IaaS是什么,涉及哪些技术

     IaaS是软硬件集成的云计算解决方案,因为它是基于IT基础架构层的解决方案,其实现更偏向底层,目前在云计算也流行一种分类方式:公有云,私有云,混合云,其实就是针对其用途上进行的一种分类。公有云是面向于公网的,是面向公众的提供服务租凭,亚马逊弹性云就是共有云,当然顾名思义私有云就是一些大型的企业,或者说安全要求很高的企业,在内部对他们的it资源进行整合,建立的云计算。

     从本质来说IaaS也是一种集成架构,集成大家都晓得,这是大杂烩的活儿,因此IaaS汇集了很多技术,因为我这段时间一直在做IaaS云计算解决方案,应该说对IaaS相关的东西了解多一些,下面我将介绍一下IaaS涉及一些核心技术。

     1、虚拟化。

     虚拟化目前有很多虚拟化技术Xen,VMVare,KVM等等,这些我就不详谈,网上多得很。对于IaaS来说,运行虚拟机有两种模式,一种是thin provision ,这种模式简单点来说就是一对多,一个虚拟机镜像上运行多个虚拟机实例,优点是省空间,每个虚拟机实例只保存不相同的内容,但缺点也很显而易见的,不适合IO较高的应用,例如数据库,或者负载较高的应用服务器;一种是preload,这种是一对一的模式,从性能来说高于thin provision ,但空间节省比不过。

     2、性能监控

     IaaS需要监控其下的所用资源运行情况,例如cpu,内存,io,网络带宽等,这些将对IaaS资源调度,智能迁移提供数据依据。目前在性能监控上有很多现成的技术,其中ganglia就是名气最大的开源技术,很多IaaS解决方案都是集成ganglia进行性能监控,典型的就是Novell公司的pso。

     3、智能迁移

     迁移是IaaS上核心技术,简单点来说,就是将一个正在运行的虚拟机进行内存拷贝生成文件,然后从一台物理机上迁移到另外的物理上恢复运行,迁移的时间是很短的,一般在1秒钟之内。那什么是智能迁移?IaaS利用迁移技术,结合性能监控数据,将负载大的物理机上的虚拟迁移到负载相对较小的物理机上运行,一般来说目前在智能迁移上有三种模式:一种是不做任何动作,人为的迁移虚拟机;一种资源均衡模式,这是一种自动模式,IaaS每隔一段时间检测资源运行状况,根据一定的算法,将负载大的物理机上的虚拟机迁移到负载相对较小的物理机上运行,从均衡资源的利用率,提升整体的运行性能;还一种是省电模式,这是资源均衡模式的一种改进,当在云计算里应用服务整体利用率较低的时候,IaaS将关掉一些物理机,将这些物理机上的虚拟机迁移到其他的物理机上,当整体负载较高的时候,IaaS将启动闲置的物理机,加入到云计算整体计算里。这里不做多说,在后面博文中,我将专题做介绍。

    4、远程控制技术

     远程控制是为运维人员提供运维的窗口。在云计算环境中虚拟机运行在哪台服务机上是不可预知,唯一能够标识就是它的ip,当然你也可以打开ftp,或者telnet等服务来进行访问,但不建议这样做,一是安全,口子太多,安全不可控,二是你要记住太多的ip,用户名,密码,运维成本不可控。一般来说IaaS基本采用VNC来实现远程控制,并集成到管理服务平台上,通过B/S的方式实现对虚拟机的访问,一般包括两种b/s的vnc访问方式,一种采用了web start技术,一种就是flash技术。在安全上,一般来说IaaS将对内部所用虚拟机vnc访问进行集中,并采用内外网双网体系,外网是无法直径vnc访问虚拟机,VNC集中访问管理目前也有两种方式实现,一种是采用VPN服务,一种是在管理门户上维护一个动态列表,虚拟机启动时将注册一个动态的端口,管理门户会将连接这个请求进行验证通过后转向到内网的真实地虚拟机上。当然如何将虚拟机中的文件下载到本地,或者将本地文件上传到虚拟机中,也是应该考虑的一个技术难题。因为虚拟机里毕竟有不同的操作系统,上传的位置,权限等等因素增加实现的难度。

    5、PXE以及物理机镜像技术推送

     PXE是大家都很熟悉的技术,目前很多网吧都采用这种技术进行物理机操作系统安装,要实现IaaS的智能以及自动化,这个是重要的技术,通过实现与PXE整合,IaaS会自动监测新加入的物理裸机,将物理机镜像文件推送安装。

    6、为什么要用到存储?

     因为IaaS最大的性能瓶颈在于网络带宽以及IO,一般IaaS的实现都将虚拟机镜像文件放在存储上,每个数据中心中的物理机一般来说都挂着这个存储,共享的方式使迁移在秒级以内就可实现,当然也可以将虚拟机镜像放到物理机本地,这是一种很笨的方式,一个镜像动辄十几个G,在廉价的物理机服务器以及有限的带宽下如果进行迁移将会得到一个让人沮丧的结果。

    当然IaaS还存在其它方面的技术以及知识,在此就不一一列举了,在你真正了解了他,你才发现你现在还是云里雾里的,不得其所,举一个简单的例子,叫你组建一个拥有上万台机器的数据中心,你的架构是什么?如果你想知道,那请继续关注我的博文。

0
0

猜你在找
【直播】机器学习&深度学习系统实战(唐宇迪)
【直播】Kaggle 神器:XGBoost 从基础到实战(冒教授)
【直播回放】深度学习基础与TensorFlow实践(王琛)
【直播】计算机视觉原理及实战(屈教授)
【直播】机器学习之凸优化(马博士)
【直播】机器学习之矩阵(黄博士)
【直播】机器学习之概率与统计推断(冒教授)
【直播】机器学习之数学基础
【直播】TensorFlow实战进阶(智亮)
【直播】深度学习30天系统实训(唐宇迪)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6869次
    • 积分:112
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论