EMC中国研究院: 网络虚拟化-正在进行的网络变革
作者 陈怀临 | 2012-08-10 16:58 | 类型 弯曲推荐, 科技普及 | 4条用户评论 »
[编者注:这是一篇来自周伦 EMC中国研究院云基础构架实验室高级研究员的文章。] A revolution has started to free data center networks fromthe tyranny of inflexibility, complexity, vendor stranglehold, and high costs. It’s time to decouple network services from the underlyingphysical hardware. It’s time to never have to think about the network again. It’s time to virtualize the network. 摘自nicira主页 引子 接触网络虚拟化纯属偶然。作为研究院微博五毛小分队的成员,撰出一条微博是每天的任务。那天无意中抓取了一条新闻:Xsigo公司推出了业界第一个数据中心网络全虚拟化解决方案。巧的是Xsigo公司的方案是基于Infiniband技术的,而我最近的项目使我对Infiniband略懂,所以就重点关注了一下。这一关注不要紧,才发现里面水很深。不管是传统IT豪强还是网络巨人都对这一领域虎视眈眈,谋篇定局,更有无数的创业者们在此展开深耕。 抱着对技术要略懂的心态,我入水一探究竟。这篇博文算是对我这次涉水的总结,网络虚拟化发展到现在牵涉的技术非常多,每种技术都可以单独写一篇文章来介绍,限于我的精力和知识水平只能给大家做个整体的简单介绍,不足之处还请各位批评指正。如果读者对某种技术感兴趣可以搜索相关资料做更详细的了解。 什么是网络虚拟化 首先我们需要明确一个问题,什么是网络虚拟化,网络虚拟化简单来讲是指把逻辑网络从底层的物理网络分离开来。这个概念产生的比较久了,VLAN,VPN, VPLS等 都可以归为网络虚拟化的技术。近年来,云计算的浪潮席卷IT界。几乎所有的IT基础构架都在朝着云的方向发展。在云计算的发展中,虚拟化技术一直是重要的推动因素。作为基础构架,服务器和存储的虚拟化已经发展的有声有色,而同作为基础构架的网络却还是一直沿用老的套路。在这种环境下,网络确实期待一次变革,使之更加符合云计算和互联网发展的需求。云计算的大环境下,网络虚拟化的定义没有变,但是其包含的内容却大大增加了。 云计算环境下的网络虚拟化需要解决端到端的问题,笔者将其归纳为三个部分: (一)第一部分是服务器内部。随着越来越多的服务器被虚拟化,网络已经延伸到Hypervisor内部,网络通信的端已经从以前的服务器变成了运行在服务器中的虚拟机,数据包从虚拟机的虚拟网卡流出,通过Hypervisor内部的虚拟交换机,在经过服务器的物理网卡流出到上联交换机。在整个过程中,虚拟交换机,网卡的I/O问题以及虚拟机的网络接入都是研究的重点。 (二)第二部分是服务器到网络的连接。10Gb以太网 和Infiniband等技术的发展使一根连接线上承载的带宽越来越高。为了简化,通过一种连接技术聚合互联网络和存储网络成为了一个趋势。 (三)第三部分是网络交换,需要将物理网络和逻辑网络有效的分离,满足云计算多租户,按需服务的特性,同时具有高度的扩展性。 下面我就围绕这三个方面来讲述网络虚拟化中的一些主要技术和标准。 服务器内部 I/O虚拟化 多个虚拟机共享服务器中的物理网卡,需要一种机制既能保证I/O的效率,又要保证多个虚拟机对用物理网卡共享使用。I/O虚拟化的出现就是为了解决这类问题。I/O虚拟化包括了从CPU到设备的一揽子解决方案。 从CPU的角度看,要解决虚拟机访问物理网卡等I/O设备的性能问题,能做的就是直接支持虚拟机内存到物理网卡的DMA操作。Intel的 VT-d技术及 AMD 的IOMMU技术通过DMARemapping 机制来解决这个问题。DMARemapping机制主要解决了两个问题,一方面为每个VM创建了一个DMA保护域并实现了安全的隔离,另一方面提供一种机制是将虚拟机的GuestPhysical Address翻译为物理机的HostPhysical Address。 从虚拟机对网卡等设备访问角度看,传统虚拟化的方案是虚拟机通过Hypervisor来共享的访问一个物理网卡,Hypervisor需要处理多虚拟机对设备的并发访问和隔离等。这样Hypervisor容易行成一个性能瓶颈。为了提高性能,一种 做法是虚拟机绕过Hypervisor直接操作物理网卡,这种做法通常称作PCIpass through,VMware,Xen和KVM都支持这种技术。但这种做法的问题是虚拟机通常需要独占一个PCI插槽,不是一个完整的解决方案,成本较高且扩展性不足。 另一种做法是设备如网卡直接对上层操作系统或Hypervisor提供虚拟化的功能,一个以太网卡可以对上层软件提供多个独立的虚拟的PCIe设备并提供虚拟通道来实现并发的访问。这种方法也是业界主流的做法和发展方向,目前已经形成了标准,主要包括SR-IOV(SingleRoot IO Virtualization)和MR-IOV(Multi-RootIO Virtualization)。这方面的技术在网上已有很好的文章来做介绍,推荐想进一步了解的同学读一读:http://t.cn/aK72XS | |
简单比较一下 山石 和 PANW
作者 青成 | 2012-08-06 21:22 | 类型 弯曲推荐, 行业动感 | 109条用户评论 »
十个初创公司里面,只有一个成功的。从这个角度来说,山石已经算是成功的。产品做出来了,也有销售业绩,无论投资人是否已经看到曙光,这已经走在大多数初创公司前列。相对于PANW来说,山石就逊色一些。为什么呢? 第一个问题是TAM,total addressable market。简单比较中美重量级科技公司,比如谷歌和百度,是5:1的关系。这两个公司都是该行业在地区的领头羊。百度在国内的市场占有率还更高。所以如果市场占有率类似,这个比例可能要达到10:1比较合理。现在PANW在美国的位置也类似与山石在中国的位置,都非市场第一,都有一定的知名度,都有一定的创新。 第二个问题,客户。PANW的主要定位是企业用户。而这部分用户在国内几乎是不存在的。国际大公司通常有比较统一的采购模式,也就是说总部决定怎么选购产品。除了极少数大型民营企业,民企几乎没有类似的安全需求。那就剩下来大、中型国企和政府机关。这样的客户群,采购方法和使用需求非常的,个性化。销售的个人关系基本直接决定了采购对象。而对于销售来说,公司能提供的提成要远高于初创公司潜在股份的收益。所以,这样的刺激机制的结果就是市场分割严重。 第三个问题是产品。如果产品好,山石不是也能卖到国外来吗?其实这也非常困难。因为,客户定义了山石的产品。所以产品好不好,是相对的感念。举一个简单的例子,国内对于QoS的需求很高,而这种功能对于大企业来说并没有多大意义。如果企业里有p2p,IT不但把它禁用,而且还会查找源头,和用它的人聊聊。相反地,企业需要功能,比如用户识别,却是非常重要的。而且,对于NGFW安全产品来说,用户识别实际上是第六TUPLE。反过来看看山石的产品,企业用的功能都还基本处在端口防火墙的时代。而这部分是CHKP,思科和Juniper的惯有市场,怎么竞争呢? 最后简单总结一下,按照目前这个市场情况。山石做的已经不错了。当然,这么看起来,山石的前途也比较有限。也许对于国内这种市场状态,一些比较小资金小规模的游击队更能轻装上阵,更能适应市场需求。 | |
工具箱
本文链接 |
|
打印此页 | 109条用户评论 »
虚拟化的逆袭:网络虚拟化之OpenFlow和SDN
作者 陈怀临 | 2012-07-28 18:15 | 类型 下一代互联网, 弯曲推荐, 行业动感 | 20条用户评论 »
从网络虚拟化说起 OpenFlow和SDN尽管不是专门为网络虚拟化而生,但是它们带来的标准化和灵活性却给网络虚拟化的发展带来无限可能。笔者希望通过本文对OpenFlow/SDN做一个初步介绍,以期帮助大家能够进一步深入了解和学习OpenFlow/SDN。限于笔者能力有限,文中难免纰漏错误之处,欢迎批评和指正。 起源与发展 基于OpenFlow为网络带来的可编程的特性,Nick和他的团队(包括加州大学伯克利分校的Scott Shenker教授)进一步提出了SDN(Software Defined Network, 目前国内多直译为“软件定义网络”)的概念–其实,SDN的概念据说最早是由KateGreene于2009年在TechnologyReview网站上评选年度十大前沿技术时提出[5]。如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统(Network OS)的概念—这个网络操作系统一方面抽象了底层网络设备的具体细节,同时还为上层应用提供了统一的管理视图和编程接口。这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。关于SDN的概念和原理,可以参考开放网络基金会(Open NetworkingFoundation)于今年4月份发表的SDN白皮书Software Defined Networking:The New Norm forNetworks [6] 。 从上面的描述中,可以看出OpenFlow/SDN的原理其实并不复杂,从严格意义上讲也很难算是具有革命性的创新。然而OpenFlow/SDN却引来了业界越来越多的关注,成为近年来名副其实的热门技术。目前,包括HP、IBM、Cisco、NEC以及国内的华为和中兴等传统网络设备制造商都已纷纷加入到OpenFlow的阵营,同时有一些支持OpenFlow的网络硬件设备已经面世。2011年,开放网络基金会(Open Networking Foundation)在Nick等人的推动下成立,专门负责OpenFlow标准和规范的维护和发展;同年,第一届开放网络峰会(OpenNetworking Summit)召开,为OpenFlow和SDN在学术界和工业界都做了很好的介绍和推广。今年年初召开的第二届峰会上,来自Google的Urs Hölzle在以OpenFlow@Google[7]为题的Keynote演讲中宣布Google已经在其全球各地的数据中心骨干网络中大规模地使用OpenFlow/SDN,从而证明了OpenFlow不再仅仅是停留在学术界的一个研究模型,而是已经完全具备了可以在产品环境中应用的技术成熟度。最近,Facebook也宣布其数据中心中使用了OpenFlow/SDN的技术。 | |
《弯曲评论论文集》(上) 。纪念邓稼先(1924/6/25–1986/7/29)
作者 陈怀临 | 2012-06-25 14:29 | 类型 弯曲推荐, 科技普及, 行业动感 | 12条用户评论 »
SDN-Google Onix
作者 陈怀临 | 2012-06-05 18:12 | 类型 下一代互联网, 弯曲推荐 | 10条用户评论 »
大数据从“小”做起——中小企业Big Data解决之道
作者 吴朱华 | 2012-05-30 01:48 | 类型 弯曲推荐, 行业动感 | 12条用户评论 »
本文是最新的拙作,希望能大家能提点意见^_^
任何一个时代或者模式的兴起,都离不开与之相关的Killer App,比如,C/S时代的SAP ERP,互联网 1.0 时代的门户,以及互联网 2.0时代的搜索和SNS等,那么在当今云计算这个时代有那些Killer App呢?当然首当其冲的肯定是以VMware 和Amazon EC2为代表的虚拟化和相关IaaS服务,除此之外,新近崛起的大数据绝对也是云计算的Killer App之一,并且不仅类似百度、阿里以及腾讯这样的互联网巨头有相关的应用需求,而且根据我个人平时与客户接触,发现有很多普通中小企业,特别是中型的互联网和物联网企业,在这方面的场景也有很多。本文将首先给大家介绍一下在我眼中的大数据,以及大数据的意义和特点,再给大家聊聊大数据的常见处理流程,之后将会和大家分享一下我是如何帮助一些中小企业实施大数据相关的解决方案,也就是大数据如何从“小”做起。 什么是大数据?过去计算机产生的数据,较简单,基本上都是一笔笔事务,总量虽大,但是都是整体增长幅度都还是可控的,比如传统的金融企业,经常使用几台大型机就管理其所有的业务数据,而最近几年,由于以平板、智能手机和传感器为代表的智能设备越来越多,同时这些设备的生成的数据更是远远地超过我们的想象。据美国著名咨询公司IDC的统计,全球数字信息在未来几年将呈现惊人增长,预计到2020年总量将是现在的44倍。据另外一份数据显示,全球 90% 的数据都是在过去两年中生成的,并且每年以50%的速度进行增长,每天,遍布世界各个角落的传感器、移动设备、在线交易和社交网络产生上PB级别的数据;每个月,全球网友发布了 10多 亿条 Twitter 信息和300多 亿条 Facebook 信息。那么这些大数据的存在有什么价值和意义呢? 大数据的意义我个人和一些朋友一直觉得大数据就好比一口油井,因为里面蕴含着非常丰富的价值,如果企业能有效利用其内部存储的海量数据,那么将会改善其自身的产品和服务,从而提升客户和受众的体验,从而在大数据时代获取竞争优势,并且随着本身分析和挖掘技术不断地提升,可以在之前的基础上提供新的决策模式,从而支持管理者进行快速和精确地决策,这样能够超越对手,抢占市场先机,独领风骚。 下面通过几个行业来和大家举例讲解一下大数据有那些意义和作用? 互联网企业 我们有一些客户,他们主要是做网络舆情或者网络广告,他们明天都会处理和收集TB级别日志或者网页,结构化和非结构化都有,他们就是通过分析这些数据来给其客户提供价值,比如分析一下一个男性护肤品广告是在世界杯期间投放好,还是在亚洲杯那段时间播出好?还有,在电子商务方面,国外eBay的分析平台每天处理的数据量高达100PB,超过了纳斯达克交易所每天的数据处理量。为了准确分析用户的购物行为,eBay定义了超过500种类型的数据,对顾客的行为进行跟踪分析,并且通过这些分析促进eBay自身的业务创新和利润增长。 智能电网 我们有一个合作伙伴,他们是做智能电网相关的解决方案。对那些电网而言,如果无法准确预估实际电力的使用情况,将会使电网要求电厂发出过量的电力,虽然这些过量电力可以通过某种模式进行保存,但是大量的电力浪费已不可避免。而通过他们智能电网的解决方案,每隔一刻钟会采集一个省几千万用户的用电数据,之后他们会根据这些数据来精确分析用户的用电模型,最后通过这个用电模型来优化电力生产,从而有效地减少电力资源的浪费。 车联网 在车联网方面,我们也有一个客户,他们在一个城市有几十万台基于Android的终端,而这些终端会每隔一段时间会发送具体位置的GPS消息给后端的数据集群,接着这些集群会分析一下这些海量的GPS信息,分析出那些路段在什么时候比较堵,之后将这些非常有价值的信息不断地推送给客户,从而帮助用户减少在路上所消耗的时间。 医疗行业 在这个方面,大数据的用例有很多。首先,通过分析大量的病例信息,将有效地帮助医生治病;其次,假设在一个病人身体的多个节点加入探针设备,而且每个探针每天会采集GB级别关于人体细胞和血液运行状态的数据,之后计算集群可以根据这些数据来来进行分析,这样能更精确地判断病因,从而让医生对病人进行更具针对性地治疗。 机器学习 在这方面,最出名的例子莫过于最近很火的Siri,它后台有一个庞大的HBase集群来对类似语言这样的文本数据进行分析和管理,从而使Siri变成一位越来越老练的个人助手,为iPhone 4S的用户提供了日期提醒、天气预报和饭店建议等服务。除此之外,还有IBM的Watson,它通过一个基于Hadoop UIMA框架的集群来挖掘海量的文本信息来实现一定程度的人工智能,并在美国著名知识问答节目Jeopardy中战胜多位出色的人类选手。 国家安全 这方面最出名的例子,莫过于美国的联邦情报局(CIA)。在过去10年中,他们通过无人侦察机收集了大量阿富汗那边地理相关的视频资料,之后通过分析这些海量视频资料,来对极具危害性的恐怖组织团伙进行定位。 大数据的特点大数据,不仅有“大”这个特点,除此之外,它还有很多其他特色,在这方面,业界各个厂商都有自己独特的见解,但是总体而言,我觉得可以用“4V+1C”来概括,“4V+1C分别代表了Variety(多样化)、Volume(海量)、Velocity(快速)、Vitality(灵活)以及Complexity(复杂)这五个单词。 Variety(多样化) 大数据一般包括以事务为代表的结构化数据、以网页为代表的半结构化数据和以视频和语音信息为代表的非结构化等多类数据,并且它们处理和分析方式区别很大。 Volume(海量) 通过各种智能设备产生了大量的数据,PB级别可谓是常态,我接触的一些客户每天量都在几十GB,几百GB左右,我估计国内大型互联网企业的每天数据量已经接近TB级别。 Velocity(快速) 要求快速处理,因为有些数据存在时效性,比如电商的数据,假如今天数据的分析结果要等到明天才能得到,那么将会使电商很难做类似补货这样的决策,从而导致这些数据失去了分析的意义。 Vitality(灵活) 因为在互联网时代,和以往相比,企业的业务需求更新的频率加快了很多,那么相关大数据的分析和处理模型必须快速地适应。 Complexity(复杂) 虽然传统的BI已经很复杂了,但是由于前面4个V的存在,使得针对大数据的处理和分析更艰巨,并且过去那套基于关系型数据库的BI开始有点不合时宜了,同时也需要根据不同的业务场景,采取不同处理方式和工具。 大数据的常见处理流程前面已经跟大家讲了处理大数据的必要性和特点,那么接着将谈到如何处理大数据,特别是常见的流程。具体的大数据处理方法其实有很多,但是根据长时间的实践,我总结了一个基本的大数据处理流程(图1),并且这个流程应该能够对大家理顺大数据的处理有所帮助。 图1. 大数据的常见处理流程 整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析以及挖掘 采集 利用多个的数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作,比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。 在采集部分,主要特点和挑战方面是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如著名用于购买火车票的12306站点和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑,并且如何在这些数据库之间进行负载均衡和分片的确是需要深入地思考和设计。 导入/预处理 虽然有采集端本身会有很多数据库,但是如果要对这些海量数据进行有效地分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作,也有一些用户会在导入时候使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。 在特点和挑战方面,主要是导入数据量大,每秒导入量经常达到百兆,甚至GB级别。 统计/分析 统计与分析主要利用分布式数据库或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC 的GreenPlum、Oracle的Exadata以及基于MySQL的列式存储Infobright等,而一些批处理或者基于半结构化的需求可以使用Hadoop。 统计与分析这部分,主要特点和挑战方面是分析涉及的数据量大,其对系统资源,特别是I/O会有极大地占用。 挖掘 与前面统计和分析不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,这样实现一些高级别数据分析的需求,比较典型算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的Naive Bayes,主要使用的工具有Hadoop的Mahout等。 在特点和挑战方面,主要是挖掘的算法复杂,并且计算涉及的数据量和计算量都很大,还有,常用数据挖掘算法库以单线程为主。 如何从“小”做起?由于我平时与中小企业的接触非常频繁,虽然技术方案与实际的问题相关,很难在一篇文章当中详尽地道来。除了上面那个基本处理流程之外,我下面会将一些基本的从“小”做起的思路给大家阐述一下:
最后,想和大家说一下,“罗马不是一天建成的”,无论是Google的用于大数据处理的基础设施,还是我们国内淘宝的“云梯”都是一步步通过不断积累和实践而成,所以我们这些中小企业应该贯彻“大处着眼、小处着手”的方针来持续地验证和推进。还有,我们人云科技将于今年上半年发布用于海量结构化数据处理的YunTable,由于其性能指标非常出色,并且已经有正式运行的大型集群,所以请各位朋友敬请期待。 | |
YunTable1.0(beta)的产品介绍
作者 吴朱华 | 2012-05-22 12:09 | 类型 云计算, 弯曲推荐, 行业动感 | 15条用户评论 »
经过最近一年的努力,我们YunTable已经从一个过去基于BigTable的小玩具发展成新一代的分布式数据库,并且能在秒级对十亿行的大表进行快速地分析,现在版本号也从0.9进化为1.0beta, 具体内容可以看一下下文,并且将于本周正式对外提供下载和教学文档,最后感谢大家长期的支持^_^
据美国著名咨询公司IDC的统计,全球数字信息在未来几年将呈现惊人增长,预计到2020年总量将是现在的44倍。据另外一份数据显示,全球 90% 的数据都是在过去两年中生成的,并且每年以50%的速度进行增长,每天,遍布世界各个角落的传感器、移动设备、在线交易和社交网络产生上PB级别的数据,所以说“大数据”时代已不可避免地到来了,并且这些大数据里面蕴含着丰富的价值,而我们人云科技团队从2010年起开发了针对海量结构化数据分析的名为“YunTable”的分布式数据库,最新的版本号为1.0beta,现正处于公开测试阶段,并将于2012年6月正式对外发布1.0正式版,而本文档将会给大家逐步介绍YunTable,包括它的基本功能、核心技术、分布式架构和路线图等。
大数据的处理流程虽然具体的大数据处理方法其实有很多,并且也有各种不同的场景,但是为了帮助大家理顺大数据的处理,在对YunTable进行介绍之前,在这里给大家总结一下大数据处理的基本流程。 图1. 大数据的处理流程 如图1所示,整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析以及挖掘,下面将分别详细地介绍: 采集 利用多个的数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作,比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。在采集部分,主要特点和挑战方面是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作。 导入/预处理 虽然有采集端本身会有很多数据库,但是如果要对这些海量数据进行有效地分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作,也有一些用户会在导入时候使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。在特点和挑战方面,主要是导入数据量大,每秒导入量经常达到百兆,甚至GB级别。 统计/分析 统计与分析主要利用分布式数据库或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC 的GreenPlum、Oracle的Exadata以及基于MySQL的列式存储Infobright等,而一些批处理或者基于半结构化的需求可以使用Hadoop。统计与分析这部分,主要特点和挑战方面是分析涉及的数据量大,其对系统资源,特别是I/O会有极大地占用。 挖掘 与前面统计和分析不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,这样实现一些高级别数据分析的需求,比较典型算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的Naive Bayes,主要使用的工具有Hadoop的Mahout等。在特点和挑战方面,主要是挖掘的算法复杂,并且计算涉及的数据量和计算量都很大。
产品简介YunTable是在传统的分布式数据库的基础上发展而来的新一代分布式数据库,并吸纳了一些来自NoSQL的新技术,其核心技术与著名的Oracle Exadata和SAP HANA类似。通过它能构建一个百台服务器级别的分布式集群来管理PB级别的海量结构化数据。 YunTable最大的特色就是快,它能极快地导入海量的数据,并极快地进行相关的查询、统计和分析;其次是TCO低,整体成本和类似性能的Oracle Exadata和SAP HANA相比低很多。 在大数据的处理流程方面,如图2所示,现阶段,YunTable专注于数据导入、统计和分析这两部分。 图2. YunTable与大数据的处理流程
设计目标在设计方面,主要是找准专注的点,具体有下面这四点: 1. 主要针对海量结构化数据,并为其做非常彻底的优化; 2. 优化导入数据的性能,以满足非常极限的数据导入要求,比如,每秒整个集群需要导入50多万行数据; 3. 对数据分析相关的SQL语句进行支持和优化,比如支持去重、求和,以及分类汇总等命令; 4. 利用好现有的硬件,无论是CPU、内存、SSD,还是硬盘,都根据它们的特性,发挥它们的性能优势,比如利用多核的优势,以及硬盘顺序读写性能优等特点。
功能特性在功能特性方面,主要有下面这八点; l 支持核心的SQL命令:包括Group By、Distinct和Count等; l 支持百台级别服务器集群:构建耗时短; l 提供PB级别的数据存储:压缩比平均在1/10左右; l 提供秒级海量数据处理能力:能在几秒中对海量数据完成大多数SQL指令的执行; l 每秒百万行级别的数据加载能力:能快速导入海量数据,并支持CSV格式的数据文件; l 线性扩展:每添加一个节点能提供接近线性的性能提升; l 数据安全性:采用多备份机制来确保数据的安全; l 整体成本低:采用普通的X86服务器,无需昂贵的硬件技术;
三大核心技术图3. 三大核心技术 在上面大数据的处理流程那部分已经提到,对于统计和分析,最大挑战莫过于I/O方面。为了让YunTable更好地提升统计和分析相关的I/O性能,如图3所示,YunTable提供并行处理、行列混合存储和压缩这三个针对海量结构化数据处理和分析的必备利器,因为这样对分析命令而言,I/O处理会实现最优化,而且Oracle Exadata和SAP HANA的优秀性能都基于类似技术的,并能对热数据提供接近内存计算的性能,下面将分别介绍这三个技术: 1. 并行处理:就是将一个来自客户端的查询或请求分配到多个节点上进行并行处理,之后在客户端来接受来自多个节点的返回,并进行合并来产生最终的结果,在导入方面,也可以利用并行机制来加快数据的导入; 2. 行列混合存储:与常见的列式存储不同的是,YunTable会先以行为单位进行分组,之后再进行列式存储,这样做的好处是,在保持传统列式存储分析性能的同时,对部分涉及到行的命令也有一定的支持; 3. 压缩:虽然YunTable本身采用比较经典的压缩算法,但是在具体数据组织方面有一定的设计,使得整体压缩率达到1/10,甚至更高,并且压缩和解压缩的效率也很高。
整体架构图4. 分布式架构 首先,如图4所示,从分布式架构角度而言,YunTable主要有Client端、Master节点和Region节点这三个组件组成: l Client端,主要是用于发送命令,现在主要使用基于C的驱动,并将在4月提供基于Python的驱动; l Master节点,主要用于管理这个集群,并且负责集群中异常事件的处理; l Region节点,主要用于储存数据,并接受来自Client端的请求来对存储于其内数据的进行查询和分析。 接着,以一个Table为例来进一步介绍YunTable的分布式架构,当Client端向Master节点申请创建一个Table的时候,Master节点会为这个Table创建多个Tablet Group,一个Table的数据会按照一定的分片策略均匀分布到每个Tablet Group中,常用的分片策略为Hash算法。每个Tablet Group会包含多个数据完全一致的Tablet以用于备份,并且它们运行在不同的Region节点上,Tablet具体的数目和其设定的备份策略相关,一般备份数为3。在一个Tablet Group中,Tablet之间有主备份和副备份之分,也就是说,数据会首先写入到主备份,接着主备份会将数据异步发给第一个副备份,之后依次类推。 图5. Region节点的架构 最后,分析一下用于存储和分析数据的Region节点,如图5所示,每个Region会运行和存储多个Tablet,当数据写入的时候,数据会首先写到这个Tablet的WAL日志上,接着会写入至一个位于内存的数据结构Memstore中,WAL全称为“Write-Ahead Log”,主要用于暂存那些最新的数据更新请求,以避免当Tablet中的Memstore被意外关闭时所造成的数据丢失。接着,当Memstore存储的数据达到一定的阀值时,它会将数据整理一下,之后批量写入硬盘,写入格式为YFile。因为YFile本身是不可修改(Immutable)的,所以这样能有效地利用硬盘顺序读性能好的特性。最后,系统会清空WAL日志中那些已经写入的数据。
实际案例在2012年4月初,YunTable在一家中型互联网企业进行了一场基于海量数据的实际业务场景的测试,具体的测试数据见表1。简单而言,根据这次测试结果,YunTable无论在导入速度,还是以去重统计和多维分类汇总为代表的分析性能都基本上达到了业界最领先的水平。还有,本次测试的每台x86服务器的配置是2颗4核Xeon CPU、64G内存和4块7200转SAS硬盘。
表1. 测试结果
产品比较下面表2主要是在结构化数据分析方面,根据用户的反馈,与几款现在比较流行的产品进行了比较:
表2. 与竞争对手的比较(根据用户的反馈)
路线图在今后一两年时间中,我们人云科技团队的主要目标还是在于不断地提升YunTable对海量结构化数据的分析能力,下面是今后两年初步的规划:
服务策略现阶段的对客户的服务策略是“使用免费,服务收费”,用户现阶段可以免费下载和使用YunTable,同时为了帮助用户部署、使用和维护YunTable,我们人云科技团队提供了基于收费的各项服务和技术支持。 | ||||||||||||||||||||||||||||||||||||||||||
弯曲推荐: KPang 。《浅谈 数据中心 。 高压直流》
作者 陈怀临 | 2012-05-06 21:07 | 类型 专题分析, 云计算, 弯曲推荐, 研发动态, 行业动感 | 10条用户评论 »
兼容ARM9的软核处理器设计(首本在FPGA上实现兼容ARM9指令集处理器设计的书)
作者 free-arm | 2012-05-03 16:07 | 类型 图书推荐, 弯曲推荐, 新兴技术 | 25条用户评论 »
《系统设计黄金法则 : 简单之美》
作者 陈怀临 | 2012-04-23 07:41 | 类型 专题分析, 弯曲推荐 | 39条用户评论 »