浅谈高端通信系统中一些分布式理论基础-前言
作者 陈怀临 | 2011-07-01 06:04 | 类型 专题分析, 研发动态 | 22条用户评论 »
系列目录 浅谈高端通信系统中一些分布式理论基础
通信系统设计是一个相对比较复杂的工程问题。相关的工程设计和实现人员,通常是网络背景的比较多,或者只有网络背景。 这是不够的。 通信系统,特别是高端通信系统,已经演变成一个大型的分布式计算系统。 分布式计算与网络计算,从理论上而言,是需要不同的知识背景和技能的。 本文试图探讨一些通信系统中的分布式计算的相关理论基础,起到抛豆腐引美女蛇的作用,从而希望对相关读者们有所帮助。 相关的内容组织如下 0。分布式系统简介 1。 通信系统体系结构概述 2。 基于消息的通信系统 3。 通信系统中的时序逻辑 4。 微观分布式并行计算简介 5。 通信系统的分布式调度 6。 分布式系统设计与调试方法 7。 TBD 8。 结束语 [欢迎同学们发表看法,从而我可以把相关章节组织好。] | |
弯曲出品:《浅谈系统性能优化与技巧》
作者 陈怀临 | 2011-06-30 17:19 | 类型 弯曲推荐, 研发动态 | Comments Off
对大宋下一代系统软件架构师的七个期望
作者 陈怀临 | 2011-06-18 17:35 | 类型 弯曲推荐, 研发动态 | 52条用户评论 »
有诗云:人之老,其言真;人之去;其行善。 系统软件设计是软件系统的皇冠中的宝石。绚烂美丽。令无数男女痴迷。 在系统软件,特别是通信系统软件的设计上,有没有一些可以提炼的方法论? 今身处幽州(北平),心在大宋。聊聊数语。谈谈我对大宋年轻一代的系统软件工程师的期望。 1。 The Thinner vs. The Thicker 系统软件一定要越细越好;越薄越好。 我在华为做speech的时候,也提到过:能把系统软件做薄,才是一代高手。 最可怕的就是为了做而做。 最高境界是:能不做就不做。 每一行代码,都会成为历史(Legacy);每一份恋情都会成为过去。 工程的事情,就是要简简单单。 内在算法的复杂不代表外在的臃肿。 一个女人,要的是清澈美丽;而非妖娆迷人。 智慧者应该做的是cut;而非单纯的add。 2。 Re-Create vs Re-Search ReCreate是工程之大忌。任何一个问题,必须首先养成良好的科研习惯: 如果有,拿来主义基础上的改良主义就是最好的。重复发明已经发明了的算法,模型是兵家之大忌。 3。 Qualitative vs Quantitative 自然科学在中国的错失是我们大宋百年之痛之根本之一 定性和定量分析的有机结合,是成为一个优秀的系统软件架构师的基本素养。 只有定性分析的胶片,是研发之大忌。 一定要养成能case study,算法分析的良好工作习惯。 要的是数据说话;不要的是框架忽悠。 大宋某公司特别喜欢玩一个词汇:技术断裂点。还有一些:领先世界产品的优势点。 这基本上是胡扯。或者从大样本的角度,是胡扯。是文革作风。是党八股。 作为一个工程设计人员,不要羞于Feature Parity。学习和模仿美军,伪军的东西,是提高自己的最佳方法。不要上来就是什么断裂点。 邓公稼先都说:我们这几代人要做的是使得国家不要差距加大。 我们这2,3代人能做的是:Follow。领先基本上不存在现实。 这其中,最大的问题不是工程,而是教育的落后。教育的落后使得我们不存在成为一个高科技大国的基础yet。 所以,不要有强迫症,没事玩断裂点。跟上并略微有改良就好。 这就好比,明明不是AV明星,非要玩AV明星的动作。。。受罪。 请把创新留给90后和00后吧。。。 5。 Semi-Optimal Optimization vs Full-Optimal Optimization 工程上,没有最好的算法;只有最好的折衷。 不要过分追求最佳算法。要能把握算法带来的时间和空间上代价的折衷。更为重要的是,在工程上,如果出了问题,调试,调优和定位带来的代价。否则,能解决问题的算法,就是好算法。 6。 Application vs System 系统是为应用服务的。 男人的钱是为你爱的女人而挣的。 做系统不能玩意淫。不能为做系统而做系统。 一切要为人民服务,为应用服务。 只有人民的需要,才是系统软件的需要。 “爱系统软件就是爱人民。是等价的”。这是愚弄人民。 不能本末倒置。 应用和系统是相通的。你能写汇编,也能写object-C。都是逻辑的表达而已。 7。 Proprietary vs Open Source 拿来主义,没人反对。也需要提倡。但如何贡献和反馈给社区,这是每一个大宋系统软件工程师应该反思的。知识共享不仅仅是一个方法论,也应该是一种精神家园。 天天信息安全,什么都藏着,躲着,非一代天骄之所为。 成大事者,必有大胸怀。公司也好;个人也罢。 | |
谁才是真正的Scale-Out?
作者 冬瓜头 | 2011-03-09 09:40 | 类型 图书推荐, 新兴技术, 研发动态, 行业动感 | 59条用户评论 »
本文摘自即将于2011年4月份出版的《大话存储2》的第15章-集群存储系统,著作权所有,转载请注明出处与作者 IBM自从亮相了XIV之后,EMC接着出了V-Max,接着HDS也推出了VSP。这三者都宣称自己是Scale-Out架构,在业界也引发了一些讨论,有人认为只有XIV才是真正的Scale-Out,而V-Max与VSP则不算Scale-Out。对于这个问题,我是这么看的。 大家知道服务器多CPU架构变迁过程,一开始是单CPU,后来发展到双CPU或者多CPU的SMP架构,也就是多CPU共享相同的内存、总线、操作系统等资源,每个CPU访问全局内存任何地址耗费的时间都是相等的。还有一类AMP架构,即不同CPU做的事情是不同的。但是由于共享访问冲突,SMP架构扩展性-效率曲线已经达到瓶颈。为了消进一步提高CPU数量的同时保证效率,NUMA架构出现了,也就是将多个SMP进行松一点的耦合,多个SMP之间通过CrossBar Switch高速交换矩阵互联,每个SMP都有各自自己的内存,一个SMP内部的CPU访问自己的内存时与之前没什么两样,但是要访问其他SMP处的内存,就需要走交换矩阵,导致延迟增加,所以,NUMA通过牺牲了内存访问的时延来达到更高的扩展性,比如可以将数百个CPU组成NUMA架构。SMP和NUMA架构对于软件程序方面的影响不大,同一台主机内都使用单一操作系统。但是由于NUMA访问远端内存时的时延问题,导致NUMA架构下的效率也不能随着CPU数量的增加而线性增长,只是比SMP要好罢了。此时,MPP架构就出现了。MPP可以说已经与CPU已经关系不大了,MPP说白了就是将多台独立的主机使用外部网络来组成一个集群,显然MPP架构下,每个节点都有各自的CPU、内存、IO总线和操作系统,属于最送的耦合,而且运行在MPP集群中的软件程序的架构也需要相应改变,变为大范围并行化,并尽量避免节点之间的消息传递。由于软件程序发生了变化,那么MPP的效率随节点数量的增长就可以呈线性关系了。其实,如果在NUMA架构下,软件也可以避免尽量少读取远端内存的话,那么NUMA效率也会线性增长,但是NUMA架构下的操作系统仍然是同一个,内存仍然是全局均匀的,而程序架构又尽量保持不变,那么就不可避免的时不时访问远端内存了。MPP相当于把内存强制分开,把操 作系统强制分开,把程序架构也强制改变从而保持海量计算下的效率线性增长。 那么再说回到存储系统。与服务器CPU架构演进相同,可以把存储系统的控制器类比为CPU,而后端磁盘柜类比为一条条的内存。一开始的单控,后来的双控互备份(传统双控存储),一直到双控并行处理(目前只有HDS的AMS2000存储系统为双控并行架构),到这个阶段就类似于AMP(双控互备)和SMP(双控并行)架构,后来则有多控并行对称处理架构,Oracle的RAC集群也可以视作一种多点SMP,各种共享底层存储的集群文件系统及基于这种文件系统所构建的存储系统也属于多点对称SMP。同属多点对称SMP架构的还有华为赛门铁克的VIS以及S8100和N8000存储系统。 同样,由SMP到NUMA的过度也出现在了存储系统中,比如EMC的V-Max,相当于多个SMP(一对控制器组成一个Director等价于一个SMP矩阵)利用高速交换矩阵(RapidIO)来共享访问每个SMP上掌管的内存。 由NUMA到MPP的过度一样也出现在存储系统中,IBM的XIV就属于松耦合MPP架构,多个节点之间彻底松耦合,各自都有各自的CPU/内存/总线/磁盘/IO接口,使用外部以太网交换机,使用TCPIP协议互相通信。而HDS的VSP则更像是一个紧耦合的MPP,MPP对软件架构变化很大,所以传统存储厂商很难将之前的架构演变到MPP上来。另外一种属于MPP架构的存储系统就是各种分布式文件系统(注意,并非共享存储的集群文件系统)。 至于谁才是真正的Scale-Out,这个是个无定论的问题了。SMP/NUMA/MPP其实都算Scale-Out,只不过程度和形态都不同罢了。有人说MPP才是真正的Scale-Out,可能是基于MPP流行的原因。但是不能一概而论。MPP架构的存储,例如XIV,由于特定场景下,由于单路IO就可能导致整个MPP集群中的磁盘资源全部牵动(每磁盘同一时刻只能执行一个IO),在多路大块连续IO并发的情况下,反而效率很差(比如多流大块连续地址IO);而某些特定场景下,多路IO之间牵制很少,则表现出线性增长的性能(比如小块高随机IO)。这也可以类比为将一个程序并行分解成多个执行颗粒(类比为高随机IO),颗粒间的关联性越少,则并行执行的效率越高,一个道理,所以MPP自身为Share-Nothing架构,那么运行在它上面的程序颗粒之间最好也Share-Nothing。SMP、NUMA和MPP各有各的好处,也各有各的应用场景。比如SMP适用于扩展性要求不太高而又不想对程序改变太大的场景,而MPP则使用海量数据下的高扩展性需求场景,需要对程序有较大改变才能获得良好性能。同样对于存储也是这样,比如一旦决定用MPP架构的存储,那么就需要面对多流大块连续IO场景下性能不佳以及效率-扩展曲线的线性不佳这2个事实。或者你去修改上层应用,将大块连续IO改为高随机IO,而这显然荒唐。并且为了适应存储去修改应用,这一般是不可能被接受的。而MPP架构却被广泛用于互联网运营商的底层Key-Value分布式数据库,其高随机小块读访问场景下能获得巨量的性能以及线性的效率-扩展曲线。 本文摘自即将于2011年4月份出版的《大话存储2》的第15章-集群存储系统,著作权所有,转载请注明出处与作者 | |
奥巴马都惧怕的天河一号
作者 陈怀临 | 2011-02-07 17:33 | 类型 研发动态, 科技普及 | 89条用户评论 »
浅谈存储网络拓扑若干概念
作者 冬瓜头 | 2011-01-05 07:05 | 类型 研发动态, 行业动感 | 18条用户评论 »
近来又碰到多个初学者面对这几个词时候显得概念混乱,不知所措。qq上经常有留言咨询各种问题,其中也不乏一些问题描述的让我根本没法看懂,所以鄙人感觉有必要写一篇小文有针对性的澄清一下这几个概念。。 LAN:Local Area Network WAN:Wide Area Network,广域网 NAS:CIFS和NFS以及其他第三方厂商自行开发的基于文件偏移量IO的文件型IO协议 SAN所包含的元素: 笔者建议:今后在描述具体技术参数时杜绝单独使用“SAN”一词,代之以“FC-SAN”“IP-SAN”“NAS-SAN”等,或者干脆直接只用协议来描述,比如FC,ISCSI,CIFS,NFS。比如“前端支持FC、ISCSI访问方式”,这样就没有任何歧义了。
乱七八糟的Free:
笔者在做一些方案或者写一些文章的时候,都会时刻注意这些词的应用,力求清晰严谨。 | |
计算与存储重新合体?三统理论?真正的统一存储?
作者 冬瓜头 | 2011-01-01 16:20 | 类型 云计算, 新兴技术, 研发动态, 行业动感 | 21条用户评论 »
存储和计算结合之后,是什么样的产品形态啊?计算,存储,都很牛叉的机器? | |
弯曲评论荣誉出品:理客 。《关于城域网的思考》(中)
作者 陈怀临 | 2010-12-19 18:16 | 类型 弯曲推荐, 研发动态, 通讯产品 | 2条用户评论 »
多核操作系统–来自大辽MIT的研究
作者 陈怀临 | 2010-12-03 20:27 | 类型 研发动态, 行业动感 | 42条用户评论 »
【陈怀临注:今天与Tilera创办人Anant Agarwal教授见面的时候,他给我带来两篇其Lab的最新文章–Factored Operating System和另外一篇关于云计算OS的–An Operating System for Multicore and Clouds: Mechanisms and Implementation。我非常感动与自豪。感动的是Anant的谦卑。自豪的是我对OS的热爱和理解能让他这样著名的教授appreciate。。。我答应会仔细的阅读文章并给他反馈意见。】 | |
系统软件研究的一些调查数据
作者 陈怀临 | 2010-11-21 19:06 | 类型 学术园地, 研发动态, 行业动感 | 13条用户评论 »
【陈怀临注:这是多伦多大学Livio对过去N年来操作系统领域Top会议文章的一些调查数据。调查数据表明,在系统软件领域,工业界Applied Research的贡献的比重在不断的上升。由此可见,系统软件确实是一个强应用的学科。。。另外,对作者人数的调查发现,基本上都是团队作战。很难相信一个人能整一个系统软件。。。。。。另外,在2000年,Bell Lab的Rob Pike曾经发表了其著名的系统软件无路可走的观点–Systems Software Research is Irrelevant。 在学术界和工业界,其实附和的观点很多。我个人认为,在多核,众核和将来Massive核,然后是NUMA basedMassive核的将来,系统软件的将来还是明朗的。有许多事情值得去创造。经典的OS是不适合新的应用的。新的应用会催生新的系统研究的发展。。。BTW,Rob现在在Google当差。。。Google的美金和宽松文化吸收了太多太多的精英。。。很难想象世界上哪个公司能抗衡。。。。。。】 | |