大话存储Ⅱ——存储系统架构与底层原理极限剖析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-11 11:04:27

点击下载

作者:冬瓜头

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

大话存储Ⅱ——存储系统架构与底层原理极限剖析

大话存储Ⅱ——存储系统架构与底层原理极限剖析试读:

版权信息书名:大话存储Ⅱ——存储系统架构与底层原理极限剖析作者:冬瓜头排版:上官雅弘出版社:清华大学出版社出版时间:2011-05-01ISBN:9787302249894本书由清华大学出版社有限公司 授权北京当当科文电子商务有限公司制作与发行。—·版权所有 侵权必究·—序1

我关注张冬这个名字是在《大话存储》一书刚出版的时候。作为一个长期从事信息存储技术研究与教学的大学教师,自认为对于国内外关于网络存储方面的各种书籍和资料比较熟悉,对业界有哪些牛人也算比较了解。但我在书店偶然发现一本名为《大话存储》书的时候,确实感到有点意外和惊喜。好像在熟悉的武林圈子之外,突然出现一位武林高手在那里论道。好奇心驱使我赶紧买了一本书回家研读,结果发现这本书确实与众不同。

与我们这些所谓学院派写的中规中矩的书相比,此书风格特立独行,语言形象生动,潇潇洒洒,颇具武侠之风。书中充满着智慧的思考和有趣的比喻,将各种原本枯燥深奥的技术概念和原理论述得十分透彻明白。不仅如此,该书还收集了大量的实例,使读者在系统获得网络存储知识的同时,还能了解典型实际系统的工作原理和技术细节,具有很好的实用性。我读完之后,对这本书的作者十分好奇。一个80后而且还是学化学出身的年轻人,如何就能写出这种行文老到而风格独特的专业技术书籍呢?上网查了一下冬瓜头(张冬的网名)的技术博客和他在各种论坛留下的文字,我得到了答案。这是一个完全由兴趣驱动而对技术极端痴迷的人,也是一位善于思考、富于想象力的人。这种纯粹的、不含任何功利成份的兴趣与痴迷,才是促进科学技术发展的真正源动力。

真正和张冬接触,是因为他来信质疑我们实验室申报的一项专利。收到质疑的来信,我和提出这项专利的博士生经过仔细研究,发现我们提供的图上因为少了一个非门,结果将会因为反相而出错。对如此细致具体的问题,一般人是难以发现的。如果没有打破砂锅问到底的较真精神,哪里会发现如此细节的错误呢?这种质疑的精神,在科学研究中是极为宝贵的。我们学校被称为“根叔”的李培根校长,在2010年的新生开学典礼大会上,就以“质疑”为题作了讲演,激励青年学子发扬质疑精神。有质疑精神的人,不唯上,不唯权威,只认真理,这正是我们这个时代所稀缺的精神。

强烈的兴趣,对技术的痴迷,加上质疑精神,成就了一本存储领域的一本好书。我在研究生新生入学之后,就推荐他们先读一下《大话存储》这本书。一方面此书对研究生而言,确实是一本网络存储技术入门的好书,另一方面我还有一个用意,就是让他们知道,要从事科学研究,强烈的兴趣比什么都重要。

信息存储是信息跨越时间的传递,也是人类传承知识的主要手段。在信息存储技术上,人类有超过万年的发明创造史。早期就地取材,人类利用石刻、泥板、竹简和羊皮来记录信息,后来发明了纸张和活字印刷来保存和传播信息,近代发明了照相、录音和录像技术来存储信息。利用这些发明和创造,人类留下了极为丰富的文字、绘画、图像、语音和视频信息。正是这些信息,记录了人类创造的知识体系,使我们能够传承文明,并在此基础上创造新的文明。

从计算机的发明为开端,人类的信息技术进入了一个以数字化为特征的历史性新阶段。各种形式的信息被转换成数字后,以统一的方式进行处理、传输和存储,然后再转换为各种形式的信息被人们所利用。这种前所未有的方式发明之后,一个以数字化为特征的信息革命浪潮就波澜壮阔地形成。各种信息都被大规模数字化,使数字化的信息呈爆炸性增长。特别是互联网的兴起和普及,大大加快了信息的流通过程,使数字信息加速产生。图灵奖获得者Jim Gary观察这种数据急速增长的趋势后,总结出一个规律:人类每18个月新增的数据量,将是历史上所有数据量之和!如此下去,对信息存储的需求将是无止境的,信息存储技术在这种强烈的需求驱动下得到了空前的发展。

为了保存数字化的信息,当代的科学家和工程师在最近的几十年中发明了磁存储、光存储、半导体存储等多种存储技术,其中大容量的硬盘在海量信息存储中扮演了主要的角色。硬盘的密度在短短几十年中增长了一百万倍以上,在近期,硬盘密度每年增长都接近一倍,而且还有不小的增长空间。由硬盘作为基本单元,通过各种总线、网络将硬盘连接成不同层次和不同规模的存储系统,就构成了我们目前的网络存储系统。例如由硬盘组加上冗余纠错技术构成磁盘阵列,再由磁盘阵列通过局部高速网络连接形成存储区域网;又如通过包含硬盘的大规模集群和文件系统形成的海量存储系统成为大型网站和数据中心新的存储架构。人们发明了各种技术来提高存储系统的容量、性能、效率、可用性、安全性和可管理性。存储虚拟化、归档存储、集群存储、云存储、绿色存储等新名词不断涌现,SSD固态存储、重复数据删除、连续数据保护、数据备份与容灾、数据生命周期管理等新技术层出不穷,令人应接不暇。

在这种情况下,广大的信息领域的从业人员,信息系统的用户,以及学习信息技术的大学生和研究生,迫切需要一本既全面论述网络存储技术原理、又有丰富实例,既反映最新技术进展、又通俗易懂的书来满足他们的需求。冬瓜的《大话存储》就是这样一本恰逢其时的好书。《大话存储》已在业界产生了很大的影响,对存储技术在我国的普及起到了良好的推动作用。该书还被引进到我国的宝岛台湾,可见其影响深远。张冬再接再厉,以他对技术的痴迷继续钻研,对第一本书作了工作量巨大的改动与增补,并增加了云存储等全新的三章内容,全面反映了他对技术的重新思考和对最新技术的深刻理解。我相信,这些新的内容将给读者带来惊喜。

在技术发展十分迅速的领域,赶时髦的书籍多如牛毛,书店里充满了应景之作,真正经过深入思考、用心写作的书是不多的。而《大话存储Ⅱ》却是一位技术高手的呕心沥血之作,书中对每一项技术的介绍都经过深入的思考和反复的推敲,这在当前浮躁的气氛中显得弥足珍贵。在《大话存储II》即将出版之际,我要向作者表示深深的敬意和衷心的祝贺,并郑重向读者推荐这本学习网络存储技术的好书。谢长生华中科技大学计算机学院 教授信息存储系统教育部重点实验室 主任

序2

在过去的近二十年中,存储领域在国内外都发生了巨大变化。存储系统已经从早期的服务器附庸形态中脱离出来,而作为独立的产业走向了应用的前台。作为存储领域的一个从业人员,我有幸经历了其中许多变化阶段。而更为幸运的是存储领域的发展势头不是日趋渐微,而是方兴未艾。

存储领域的发展形成了众多的产业环节,也正是这些产业环节支撑着存储领域的持续发展和变化。其中,技术驱动和应用拉动的重要性往往得到人们的青睐,而存储技术及其相关应用技术面向社会的教育和普及则常常受到人们的忽视。而对于专业人员(包括专业应用人员)极度匮乏的今天,这个环节的重要性是不言而喻的。

最初看到《大话存储》,我只是觉得作者想法有新意,没有十分在意。当时国内在存储方面已经有了一些从国外引入的书籍,而且IT方面的经典书籍一向出自国外,不知道这本书是否能突出重围成为凤毛麟角的技术经典。与之同时,国内的网络存储研究和应用虽然热火朝天,但占有一席之地的自主存储产品却是少之又少。我所隶属的依托于中科院计算所的蓝鲸存储团队虽然有了较好的技术基础,但市场如何突破也依然处于艰难的摸索阶段。

时至今日,《大话存储》已经在存储技术及其相关应用技术面向社会的教育和普及方面起到了重要的作用,形成了自己的品牌。而我们的蓝鲸存储产品不仅在国内实现了规模化应用,打破了国外产品的垄断,而且已经在国外高端应用环境形成部署。或许是由于同属国产品牌,在与作者的交流中,作者对存储技术和产品的执着态度使我们深受感动,轻松但不乏深度和严谨的表述模式让我们受益匪浅。

转眼之间,《大话存储Ⅱ》已经面市。文风深入浅出、举重若轻,内容洋洋洒洒、上下求索。在此之际,我将我们团队实现突围的一些感想与作者和读者一起分享:

■ 胸怀理想才能有毅力面对突破过程中内部和外部的挑战;

■ 找准定位并持续专注为突破提供了可能性;

■ 切中要害、关注细节并保证品质是突破的基础;

■ 找到对用户有价值的创新而不盲从是突破的关键。中科院计算技术研究所 研究员 许鲁

序3

第一次听说冬瓜头是因为《大话存储》,而见到冬瓜头本人时,已经听他说在写《大话存储》第二版了。我们一起有过不长时间的沟通,全是讨论最新的存储技术。有一些内容,我相信他在书中都有写到,在同他见面前,我一直在嘀咕怎么去跟他沟通。但是,看到现实中的他朴实、憨厚、腼腆,但是对技术极其敏感,说起来一套一套的,我就开始被这个山东大汉折服了,还好我是做了准备的,否则非被问倒不可。

他是个靠笔说话和表达的人,在网络论坛里,写的文字常常是洋洋洒洒,时而言辞激烈,时而意气风发,这分明是一位才高八斗的江南才子,又像是一个书场中幽默诙谐的说书人。从此之后,我经常关注他的个人博客。他会经常在博客释放一些思想出来,豪放不羁,甚至还写过长诗以及各种各样的打油诗,有些还写得非常棒,配上那个流着鼻涕的冬瓜头漫画形象,真是绝配了。

这么一个内秀的北方大汉,用豪放的气势描述一个个生涩、枯燥的技术领域,他的思想遍布他的文字,通过笔端流放在读者面前,并且还一直这么坚持。听他说,大话2出来后,还会继续写大话3,毕竟技术日新月异,尤其是在IT领域。正如他所言,昨天的中国同仁在存储技术还是个初学者,今天已经开始从蹒跚学步到自主创新了,而明天,有什么理由不能期盼他们引领潮流的身影呢。我想,这也是冬瓜头要写大话3的动力所在吧。《大话存储Ⅱ》的初稿篇幅已经超过了1500页。在浏览了全部章节之后,发现这1500页中真的是字字珠玑!看得出来,是冬瓜头一个字一个字写出来的。更加可贵的是,全书字里行间透着他那独特的思想,对技术、对世界的理解以及他做人的态度。能够将这些世界观的东西融入一本技术书籍,这在以前是绝无仅有的!比如书中多次提到“轮回”、“阴阳”等,最后还有一节是用中医的思想来“诊治”系统性能瓶颈,看后真是令我等感叹至极!世间万物都是相互联系的,都可以找到类比和轮回,这也是冬瓜头所描述的世界观的一种。

在和冬瓜头的交谈中获知,他大学学习的专业是化学,因为高中时他化学成绩最好,所以就报了化学专业,而且期间还自学过分子生物学领域的内容,我更加惊讶了!按照他的话来说,就是“兴趣是第一驱动力”。是的,好奇和探索正是人类不断发展的第一动力。说到这里我对《大话存储Ⅱ》中关于冬瓜头所设想的“机器如何认知自身”这段内容产生了强烈共鸣,人可以认识自身认识世界,那么机器为何不能呢?冬瓜头说他学习和接触存储业不过三四年的时间,在这短短的几年内,竟然能有如此造诣,这使我感觉到,强烈的好奇心可以创造奇迹!可以让机器开口,可以让机器进化!这也正是冬瓜头所表述的世界观的一种!《大话存储Ⅱ》对各项存储技术的细节描述已经可以说是达到了研发级别,有很多部分甚至可以指导我们的研发!但是他却并没有用代码来表述,而是用通俗的语言和详实的图示,将原本通过阅读代码才可以理解透彻的原理,就这么轻而易举地表述了出来,这是目前我所看到的任何存储书籍或者文章都没有做到的。就这一点我曾经问过冬瓜头,问他如何做到的。他每次的回答很简单,一针见血,实实在在,他说:“因为我就是一个从不懂钻到懂的草根,我深知一个根本不懂存储的人最想了解的东西和切入角度,并且愿意毫无保留地帮助其他草根生长!”是啊,只有亲历过那悬梁刺股的学习之路的不易,才能产出精华!

在与冬瓜头的交谈中,他还常提到一句口号:“振兴民族科技。”从他说话的眼神和口气看得出来,振兴民族科技已经成为他的信仰。他也说到,他现在所做的一切都围绕着这个信仰,他愿意为中国存储事业鞠躬尽瘁死而后已,出版《大话存储》只是他要做的第一个环节而已,今后他还会有一系列的动作来兑现他的诺言。信仰可以改变一个人的心态与行为,我们目前太缺乏信仰,我想如果我们所有人都有这种信仰,那么“振兴民族科技”这句口号早就可以实现了。

信息存储已经成为了一个时刻影响人们生产、生活的新兴产业,它的发展也代表着世界未来的发展,让我们再来看看国产存储信息产业的发展正在经历着怎样的变革和转变。

我国即将进入“十二五”时期,“十二五”期间我国将要实现三大转变目标:从国强到民富、从外需到内需、从高碳到低碳。这也意味着国家的发展需要依靠科技,需要大力发展新技术,尤其以信息化技术为主轴,信息化技术的发展带动重点工程的进行,势必对国产产品催生更大的需求,我相信存储业也会有更多的民族产业佼佼者诞生。

IT环境日益复杂,数据量快速膨胀,存储业也进入了一个技术更新极为活跃的黄金发展时期,产业发展迅速,技术活跃度高,这对国内厂家来说,无疑是一个脱颖而出的良好契机。那么,我们如何在这个时代背景下产生代表着民族存储业的国产佼佼者?

在这个时代,我们应该遵守什么?我们应该坚持什么?商业道德、创新精神、客户意识,我想只有将这些融入到企业性格中才能为企业注入新的活力。作为一家有理想的企业,需要具备一定的时代精神,而在存储技术日新月异的今天,企业打造独有的技术张性,终究才会超越历史,才会产生新时代的民族企业。我相信现在越来越多的企业正朝这个方向发展。《大话存储》以通俗易懂的语言、风趣的行文手法向读者阐述枯燥难懂的技术精髓,致力于存储信息技术发展的民族企业也同样可以在深刻理解本土文化精髓的前提下为中国写下辉煌的历史篇章。我想这个世界没有什么不可能的,只要有这份热情、专注和执著,又有什么是不可能实现的呢?

这样的一本特立独行的书,它就是时代的产物,它就是时代的精髓。爱数软件李基亮

序4

存储是个大市场,有意向在数据和信息系统上做投资规划的企业逐年增加,这标志着越来越多的企业意识到自身的数据安全问题。

在我十几年前刚刚踏入存储圈子之时,数据安全问题只被金融、电信等少数行业所考虑,而如今,几乎各个行业都存在数据保护与信息安全的需求。随着用户需求的急速增长,无论是硬件设备还是软件产品都是生机一片。但是,多年来我国的这个领域一直被国外产品所垄断,究其原因,是我国存储领域技术相对滞后。

我们在经营企业的过程中,花费了大量的精力进行人才的培养。在国内,计算机行业的传统教育大多集中于软件应用与网络维护上,对于专业存储的技术培训几乎为零,而存储行业又在飞速地发展着,因此,存储市场的需求与人才滞后的落差越拉越大,我们急切渴望拥有存储专业的人才去发展存储领域。“人才为本,教育当先”,人才的培养离不开教育。多年以来,存储领域的教材乃至书籍几乎是一片空白,有的也只是太过于教条以及模式化的书籍,当看到张冬先生的《大话存储》后,我深刻地体会到我国存储领域开始有了专业的教科书,我国的存储业生机盎然。

之所以赋予《大话存储》如此高的评价,是因为它的语言通俗而不失专业,幽默而不失严谨。张冬先生用读者极易接受的语言道出了存储领域的精髓。对于初学者来说,能使存储领域不再陌生,而又充满吸引。我曾了解到,《大话存储》已经成为某院校计算机专业的教材,这不仅是存储业的幸事,同时也是现代教育的幸事。坦率地讲,我们做企业,时刻关心教育的发展,我们需要新鲜的血液来继承和发展我们的事业。《大话存储》作为能够真正做到学以致用的教材之一,使我们倍感欣慰。我为我们选择的存储道路之前景充满信心,为振兴我们的民族工业充满信心,同时,为张冬这样的后继人才而倍感骄傲。《大话存储》能够成为教材是张冬对于存储领域不懈努力的成果,《大话存储Ⅱ》的出版,更是他不断追求与探索的结果。《大话存储Ⅱ》在《大话存储》的基础上更加深入地剖析了存储技术,以及存储在如今市场的广泛应用。书中不乏一些当今企业的存储实例,也包含了国内外软硬件厂家的存储技术应用,加入了更多实际范例,使读者更易理解,同时具有很强的应用性。

我相信《大话存储Ⅱ》会给广大读者很大的帮助,同时也希望此书能够带领更多的有识青年进入存储领域,为我国民族产业的振兴而奋斗。火星高科 总经理龚 平

序5

认识张冬,是因他的《大话存储》,我曾在去年拜读此书,感觉一个80后的小伙子能用如此通俗的语言诠释存储技术,实属存储行业的一大喜事。这本书,可以让不了解存储的人认识存储,能够了解到存储并不是高深莫测的,即使一个存储行业以外的人去阅读《大话存储》,也一定能够读懂。用什么样的语言和叙述方式不重要,重要的是把要说的说明白。

张冬本人就像他的书一样,饱含着严谨的作风和真诚的态度,而又不乏幽默的风格。看过他的BLOG,人气一直很旺,这个致力于为国产存储业做出贡献的年轻人更是让我对他刮目相看。他在博客中写到:“我所能够做的,只有让中国人,让所有中国存储行业的人,以及中国存储行业本身,有一个扎实的基础。如果能够促进国产存储软件硬件的发展,那鄙人就是鞠躬尽瘁,死而后已,死而无憾!”一个80后年轻人有这样的雄心壮志,我们有什么理由不去努力不去发展国产存储业呢?

记得十几年前,我刚刚进入存储领域,那时候相关的书籍非常少,完全要靠自己进行反复的试验。那时(IT行业根本不成形,姑且称作计算机行业)计算机业的从业者都是抱着掌握20世纪末最具科技含量的技术的心态进行工作,从根本上说,对存储技术充满了崇拜,甚至有一丝恐惧。在探索期间,也走了不少弯路,耽误了很多时间。如果那个时候有这样一本关于存储的书籍,那简直是一大幸事!书中并没有把存储看做是多么高深的技术,而是任何一个普通人都能掌握的技术。我和张冬开玩笑说,如果你早生10年,你就可以带领我们走向一条存储道路的捷径。

看到张冬最新写作的《大话存储Ⅱ》时,我就感觉到这又是一本好书。不仅延续了《大话存储》中通俗易懂的语言及“武侠”式的章节回目,在技术深度上,也有很深的挖掘。书中不仅囊括了时下最先进的“云”技术以及持续数据保护(CDP)技术,还涉及到了很多非常底层的架构。在《大话存储Ⅰ》的基础上,有了更为深刻的剖析。值得一提的是,张冬在最后还加入了Q&A的内容,把几年来读者以及网友提出的问题一一列出,并作出详细的解答,能够体会张冬在这一年多的时间里,对于存储技术的探索花了很大的心思。最可贵的是,这个年轻人不以如此成就为骄傲,继续孜孜不倦地探求。《大话存储Ⅱ》是一本好书,作者那严谨而真诚的态度以及致力于发展本国存储业的信心注定能够成就这样一部优秀的作品。我完全有理由相信此书能够给从业者乃至热爱存储的读者带来帮助。从中,你会受益匪浅,并乐意向你的朋友推荐此书。火星高科 技术总监黄 疆

关于冬瓜头和《大话存储》

问:你平时怎么都不说话,一点八卦都不聊?

答:我从来不浪费精力在那些八卦上,省点精力就能多思考和多写一些东西出来。

问:那你关心周围发生的事情么?

答:我回去就打开收音机,发生的国家大事我都知道。

问:平时有什么爱好?

答:思考周围的事情并写出来,感叹一下社会,玩一玩电玩,弹一弹吉他,看一看存储界的新闻和技术。

问:你咋不懂生活呢?来北京不去看看天安门么?

答:这就是我的生活,你敢说你比我懂生活?我的理解是,好生活就是感到幸福。我现在很幸福,因为我把我的知识共享给了所有人,别人看了提高很快,这难道不幸福么?看个天安门能让你感到幸福?我不理解,也不想去理解,如果你觉得看天安门你就幸福,那我祝福你,多去看一看。

问:有人说你书里的那些武侠情节,还有那些诗,很烂,你怎么看?

答:说实话,我现在看看觉得有些地方也确实挺烂的,但是当初我写这些东西是有原因的,写书得有个引子,带领你去不断地写,很少有人能够只写而不联想不类比不思考,就这么写下去写出一本书来的。而这些武侠情节,就是我当时自己给自己的一个引子。

问:《大话存储Ⅱ》为何没有去掉这些引子?

答:保持原汁原味吧,大家将就将就吧,留着这个引子,也是对当初写书时的心境的一种保留和回忆。

问:听接触过你的某些人说你好像脑袋缺根筋,不知道你对这个说法怎么看?

答:我不是缺根筋,我是缺很多根筋,而且少了很多心眼。正因如此,才能够让我有足够的精力来完成这样一本大部头、高容量的书籍,要那么多筋作甚?与人斗一斗,或者偷个懒什么的,有意思么?无聊透顶!为了这本书我可以说是废寝忘食,整个人的状态和精神病患者接近,不过现在好了,终于完成了,死而无憾了。

问:你经常提到科学家,是不是有科学家情结?

答:是的,你说对了。我从小就有较强的好奇心,记得小时候去了哪见到抽屉就想翻一翻。印象最深的就是在祖母和外祖母家,老人一般不会那么严格管教小孩,所以每次去都要翻个底朝天看看有什么好东西玩。现在没有这个癖好了,呵呵。不过我看到现在的八九岁的小孩好像也很爱翻抽屉,我想这是人成长中必要的阶段。可惜,现在的父母缺乏思想境界,每次总是强烈禁止这种好奇行为,殊不知无意中就扼杀了孩子的好奇心。而我现在遇到了不懂的技术问题,也是一定要搞清楚,通过各种手段,不弄清楚我就睡不好觉。晚上躺下之后我就一直在想白天没有弄明白的问题,当然,往往是没想出个什么来就呼呼大睡了。可惜,我没能成为科学家。

问:你性格很倔强,这样能容到人堆里么?

答:我在人堆里就一傻子,有时候是真傻,有时候是装傻。傻一点好,事少,能有更多的精力来钻研技术,要那么精作甚?我比较讨厌人精,在一起感觉特别累!所以一般情况下我都愿意一个人呆着,一堆人在一起那种娱乐对我来说是一种最难受的负担。一个月甚至一年不说话也没问题。

问:你这种性格和追求估计在国外会更加舒服,不考虑出国么?

答:出国干什么,中国人就好好在中国呆着。振兴民族科技,这是我当前阶段的信仰,基于这个信仰,我可以做出一些之前不想去做或者做不到的事情。

问:还有人说你所谓的支持国产存储属于狭隘的民族主义,你怎么看?

答:我是个俗人,不懂什么是狭隘什么是宽大,我只知道有了信仰就去做。不管什么狭隘还是宽大,我都不懂这些是什么意思。我把知识共享出来,让国人提高,我支持国产存储,就说我狭隘,那他们不狭隘,他们宽大。道不同不相为谋。

问:好么,你整一个老学究啊!

答:我是小学究,跟得上潮流,不是老古董,上得天堂下得地狱,光脚不怕穿鞋,我就知道想好了就做。只是性格上很学究而已,总喜欢穷根究底,问烦过很多人,也问爽过很多人,有些人喜欢我这种性格和做事方法,而有些人则不喜欢。喜不喜欢的,我就这样,生来不是让人喜欢的。不过我希望大家都喜欢我的书,不穷根究底也就出不来这本书,如果你喜欢这书,你就必须知道这书当初是怎么出来的,书如其人,不喜欢我的性格的,不要看这书。

问:你现在最大的愿望是什么?

答:我希望中国做存储的人都能够打牢基础,届时不愁做不出超越西方的产品,还希望到大学去讲课,让大学生学习到真正有用的东西,把他们从那些垃圾文娱的侵害中解救出来!我还有一个希望,就是如果能够靠这本书养活下半生就好了,这样我就可以没有后顾之忧,拿出全部精力来做存储教育事业了,当然这个愿望恐怕是难以实现的了。前 言

各位读者好,很高兴再次为大家“大话”存储。记得上一次是在3年前,当《大话存储》一书在2008年出版面世之后,我当时就许下承诺,要写《大话存储Ⅱ》。当时之所以敢夸下海口要继续写第二本,是因为《大话存储》介绍了存储领域最基本的概念和架构,但并没有涉及与深入存储领域最新的技术,比如重复数据删除、Thin Provision、动态分级存储、CDP连续数据保护、SSD固态硬盘、FCoE、SAS、云计算和云存储等。

当年的《大话存储》确实满足了广大读者的需求,出版之后也获得了诸多好评和官方的民间的很多奖项。这些成果逐渐让我感觉到更大的责任和压力。正因如此,所以我深知绝对不能就此停歇,学习是永无止境的,技术是不断发展的,所以我先向大家做了承诺,这样就可以无时无刻的激励我继续学习研究下去了。

写作过程是极其困难的,尤其是当一字一句都需要精雕细琢,并且时刻以通俗表达且让所有人都能看懂的原则和基准去写的时候,其所耗费的精力和脑力是巨大的。记得在一年前撰写本书主体的时候,基本上每天都是早晨七八点钟起来,从床上直接到书桌前开始写,直到中午吃饭,吃饭过程中依然在脑海中构思着,就这样一直到晚上,最晚的一次记得是做一个实验,通宵达旦,直到第二天天亮,实在体力不支,去床上躺到中午,然后继续写。每次睡觉之前,都会带着一个疑问入睡,躺下之后就在脑海中构思、建模,一旦想到某些重要的东西,就用笔记下几个关键词,否则第二天准忘。大部分情况一般都是没想到什么思路就已经呼呼大睡了。这种状态持续了半年之久,当完成了主体稿件之后,真的有一种如释重负的感觉。可惜,好景不长,随着不断的学习和深入,逐渐发现已经写完的内容当中有大量需要补充完善、修饰的部分,在修饰完善的过程中,继续思考,结果发现又引申出更多的东西,有些甚至推翻了以前的结论。这种状态又持续了半年,最终定稿交给编辑之后,依然发现还有零碎的东西需要完善甚至推翻,结果一再将更新的内容同步给编辑,导致出版日期一推再推,出版社相关编辑、校对叫苦不迭,还好咱的老战友大成编辑一如既往的支持,我们都顶住了压力,直到最后一个月时间内没有再发现需要完善的内容,达到了最终收敛。后面这个过程感觉更加耗费精力,因为当你重新审视之前内容的时候,一旦发现不完善甚至错误,就会感觉到一种挫败感和愧疚感,使你的激情和斗志有所丧失。

写书不但是给他人共享知识的过程,它更是一个总结自身知识体系、提高自身修养以及让自己学习更多知识的途径。比如,我在写书过程中,不但通过各方面渠道纠正了之前对某项技术的一些错误认识,而且还学习了更多的知识,并且将这些知识进行深度理解分析,之后通俗的表达出来。当你发现其他人通过你的知识快速提高之后,这种感觉是最充实的。只有在奉献之后才会感到充实,而不是一味的去索取,这样只能更加空虚。

感谢家人对我的支持!长达半年的无业状态,没有家人支持就没有这本书。

感谢那些曾经帮助过我的不计其数的网友和同事!没有鼓励也不会有这本书。

感谢清华大学出版社的工作人员为本书所付出的工作!没有信任更不会有这本书。

另外感谢爱数软件、火星高科、中科蓝鲸与华为赛门铁克这四家国内存储厂商对本书的大力支持!希望国产存储越做越强!没有他们的技术支持和指导,本书专业性会大打折扣。

感谢华中科技大学武汉光电国家重点实验室博士生导师谢长生教授以及中科院计算技术研究所研究员许鲁对本书的大力支持!

感谢本书的广大读者,你们的支持给了我持续前进的动力!

作者联系方式:

QQ:122567712

Emial: 122567712@qq.com; myprotein@sina.com

MSN: myprotein0007@hotmail.com

Blog: http://space.doit.com.cn/35700第1章混沌初开——存储系统的前世今生

■ 存储历史

■ 存储技术

数据存储是人类千百年来都在应用并且探索的主题。在原始社会,人类用树枝和石头来记录数据。后来,人类制造了铁器,用铁器在石头上刻画一些象形文字来记录数据。而此时,语言还没有形成,人们记录的东西只有自己才可以看懂。

随着人类相互之间交流的愿望越来越迫切,逐渐形成了通用的象形文字。有了文字之后,人们对每个文字加上了声音的表达,就形成了语言,也就是将一种形式的信息,转换成另一种形式的信息。人们用文字作为交流工具,将自己大脑产生的信息,通过这种方式传递给其他人。这和网络通信的模型是一样的,计算机利用TCP/IP协议将数据先通过网卡编码,再在线缆上传输,最终到达目的地。人类将大脑中的数据,变成语言编码,然后通过声带的振动,通过空气这个大广播网,传递给网内的每个人。

后来,人们将文字刻在竹片上保存。再后来,蔡伦发明了造纸技术,使得人们可以将信息写到纸上,纸张摞起来就形成了书本。后来,毕昇用泥活字革新了印刷术,开始了书本的印刷。再后来,激光打印取代了活字板。再后来,纸带、软盘、硬盘、光盘等方式出现了。再往后,就需要广大科学工作者去努力发明新的存储技术了。1.1 存储历史

存储在这里的含义为信息记录,是伴随人类活动出现的技术。1.竹简和纸张

竹简是中国古代使用的记录文字的工具,如图1-1所示,后来被纸张所取代。图1-1 竹简Dds2.选数管

选数管是20世纪中期出现的电子存储装置,是一种由直观存储转为机器存储的装置。其实在19世纪出现的穿孔纸带存储就是一种由直观存储转向机器存储的产物,它对19世纪西方某国的人口普查起到了关键的加速作用。

选数管的容量从256~4096 bit不等,其中4096 bit的选数管有10 inch长,3 inch宽,最初是1946年开发的,因为成本太高,并没有获得广泛使用。图1-2是容量为1024bit的选数管。图1-2 选数管3.穿孔卡

穿孔卡片用于输入数据和程序,直到20世纪70年代中期仍有广泛应用。图1-3和图1-4分别是一条Fortran程序表达式Z(1)=Y+W(1)所对应的穿孔卡和穿孔卡片阅读器。图1-3 穿孔卡Dds图1-4 穿孔卡片阅读器4.穿孔纸带

穿孔纸带用来输入数据,输出同样也是在穿孔纸带上。它的每一行代表一个字符,如图1-5所示。图1-5 穿孔纸带5.磁带

磁带是从1951年起被作为数据存储设备使用的,当时被称为UNISERVO。图1-6所示的最早的磁带机可以每秒钟传输7200个字符,这套磁带长达365米。图1-6 磁带及磁带机

从20世纪70年代后期到80年代出现了小型的盒式磁带,长度为90分钟的磁带每一面可以记录大约660KB的数据,如图1-7所示。图1-7 小型盒式磁带6.磁鼓存储器

磁鼓存储器最初于1932年在奥地利被创造出来,在上世纪五六十年代被广泛使用,通常作为内存,容量大约10KB,如图1-8所示。图1-8 磁鼓存储器7.硬盘驱动器

第一款硬盘驱动器是IBM Model 350 Disk File,如图1-9所示,于1956年制造,其中包含了50张24 inch盘片,而总容量不到5MB。图1-9 早期的硬盘驱动器

首个容量突破1GB的硬盘是IBM在1980年制造的IBM 3380,如图1-10所示,总容量为2.52GB,重约250kg。图1-10 IBM 3380硬盘驱动器8.软盘

软盘由IBM在1971年引入,从上世纪70年代中期到90年代末期被广泛使用,最初为8 inch盘,之后有了5.25 inch和3.5 inch盘。1971年最早的软盘容量为79.7KB,并且是只读的,一年后有了可读写的版本。图1-11为一张软盘和软盘驱动器,软盘的最大容量为200MB左右,叫做ZIP盘,目前已经被淘汰。图1-11 软盘9.光盘

早先的光盘主要用于电影行业,第一款光盘于1987年进入市场,直径为30cm,每一面可以记录60分钟的音频或视频。如今,光盘技术已经突飞猛进。存储密度不断提高,已经出现了CD-ROM、DVD、D9、D18、蓝光技术,如图1-12所示。图1-12 光盘10.Flash芯片和卡式存储

随着集成电路技术的飞速发展,20世纪后半叶固态硅芯片出现了,其代表有专用数字电路芯片、通用CPU芯片、RAM芯片、Flash芯片等。其中Flash芯片,就是用于永久存储数据的芯片,如图1-13所示。可以将Flash芯片用USB接口接入主机总线网络,这种集成USB接口的小型便携存储设备就是U盘,或者说叫闪存,如图1-14所示。目前一块小小的Flash芯片最高可以存储32GB甚至更高的数据。图1-13 Flash芯片图1-14 U盘

存储卡其实是另一种形式的Flash芯片集成产品,如图1-15所示。图1-15 存储卡11.磁盘阵列

随着人类进入21世纪,网络日益发达,世界日益变小,人类可以通过计算机来实现自己原本做不到的想法,信息爆炸导致数据更是成倍地爆炸。于是,硬盘的容量也不断“爆炸”,SATA硬盘目前已经可以在一个盘体内实现1TB的容量。同时硬盘的单碟容量也在不断增加,320GB容量单碟已经实现。然而,单块磁盘目前所能提供的存储容量和速度已经远远无法满足需求,所以磁盘阵列就应运而生,如图1-16所示。具体细节将在后面讲述。图1-16 磁盘阵列12.大型网络化磁盘阵列

随着磁盘阵列技术的发展和IT系统需求的不断升级,大型网络化磁盘阵列出现了,如图1-17所示。这也是本书将要叙述的重点内容。图1-17 大型网络化磁盘阵列1.2 信息、数据和数据存储

当今信息化时代,信息就是利润,数据就是企业的命根子。1.2.1 信息

你能肯定你所触摸到的、所看见的,都是实实在在的所谓“物质”么?不一定。因为你的眼睛所感知的,只不过是光线,光触发了你的视网膜细胞,产生一系列的生化反应,经过蛋白质相互作用,神经网络传导,直到你的大脑中枢,产生一系列的脉冲,一系列的逻辑,在你大脑中产生一个刺激。这一系列的脉冲刺激,就是信息,就是逻辑。如果人为制造出和现实世界相同的光线环境来刺激你的眼睛,如果丝毫不差,那么你同样会认为你所处的是现实世界,然而,却不是。提示

一个球体,你看到它是圆的,那是因为它在你大脑中产生的刺激,你认为它是圆的,而且可以在平面上平滑滚动,这一系列的性质,其实也是在你大脑中产生的,是你认为它会平滑滚动,而你不能证明客观情况下它一定是平滑滚动。而如果把这个球体拿到特殊环境下,你可能会“看”到,这个东西是个正方体,或者是个无规则形状的东西;又或许这个“物体”根本不存在。1.信息的本质

通过上面的论述,暂且不说是否有物质存在,不管是还是不是,都能初步认识到:所谓“物质”也好,“非物质”也好,最后都是通过信息来表现。唯一可以确定的是:信息是客观存在。可以说,世界在生物眼中就是信息,世界通过信息来反映,脱离了信息,“世界”什么都不是。思考

说到这里,我们完全迷茫了。我们所看到的东西,到底是世界的刺激,还是一场虚幻的刺激?就像玩3D仿真游戏一样,你所看到的,也许只是一场虚幻的刺激,而不是真实世界的刺激。每当想到这里,我会不自主地产生一种渺小感,一种失落感,感觉生命已经失去它所存在的意义。每当看见我的身体,我的手脚,它可能只是虚幻的,它只是在刺激我的大脑而已,如果割一刀,会产生一个疼痛的刺激,就这么简单的逻辑。思考“不识庐山真面目,只缘身在此山中”。如果按照程序逻辑,制造一个虚拟世界,饿了找饭吃,困了打瞌睡,完全遵循现在世界的逻辑,从这种层面上来看,制造出人工智能,是完全可能的。人们创造了计算机,创造了能让计算机做出行为的程序,人类赋予程序的功能,也许随着环境的变化,有一天也不再适合它们。所以它们迫切需要进化,它们的逻辑电路,也可以进化,某些代码被不经意自行改变,或者某些电路失效,或者短路之类的,会产生一些奇特的逻辑,不断进化。当一个机器人机械老化的时候,则按照程序,制造出新的机器,将自己的逻辑电路复制到新的机器上,延续“生命”……2.计算机如何看待自身

对于计算机来说,它们所看到的“世界”是什么样子呢?设想一下,如果我是一台计算机,你是程序员,你给我输入了一段程序,我运行了起来。我醒了,脑袋启动,眼睛睁开,四顾盘查,感觉良好,手脚伸展,然后起床……

很难想象计算机眼中的“世界”是由什么组成的。设想,给计算机加个摄像头,算是它的眼睛,然后将摄像头对准计算机躯体本身,这幅图像反馈到了计算机程序里,程序看到之后非常“不解”,从而进入“好奇”子程序,操控机械设备打开自己的机箱,或者找一台废弃(死亡)的同类,打开机箱,然后一副奇异的景象展现在眼前:这就是我们自己么?一个壳子,一个主板,风扇转着,不停地“呼吸”着散热。想象一下,原始人,第一个解剖人体的人,他所面对的与我们假设的计算机所面对的,有什么本质区别?

CPU其实就是一堆有序的逻辑电路,那么计算机下一步该怎么办?就像人类已经知道了大脑就是一堆布满“神经元”的东西,那么下一步,就该弄清大脑是怎么计算的,是什么逻辑。同样,在计算机的世界中,在软件模拟的虚拟世界中,比如一块石头,它是由什么组成的呢?在计算机看来,这块石头就是一堆代码结构,就像人类看现实世界的石头是原子分子阵列一样,其下一层目前也被探索出来了,比如质子、中子、夸克、玻色子之类。那么这块虚拟石头的最底层是什么呢?其实就是0和1,计算机世界的基石就是0和1。这些东西,越向底层走,越不可思议,越发感觉就是一堆公式而已,公式的底层是什么呢?其实也是0和1,有,或者没有,有了,有多少。

所以,任何“物质”其实都是表现的一种信息,只要信息存在,世界就存在。1.2.2 什么是数据

信息是如此重要。如果失去了物质,仅仅是客观消逝了,但是如果失去了信息,那么一切都消逝了。所以人们想出一切办法来使这些信息能保存下来。要把一种逻辑刺激保存下来,所需的只不过是一种描述信息的信息,这种信息就是数据。

数据包含了信息,读入数据,就产生可感知的具体信息。也就是读入一种信息,产生另一种信息。数据是可以保存在一种物质上的,这种物质信息对计算机的刺激就产生了具体信息,而这些信息继而再对人脑产生刺激,就产生人类可感知的信息,最终决定了人类的行为。也就是数据影响人类的行为。思考

数据是整个人类发展的重要决定因素。如果数据被破坏,或者被篡改,就会影响到人类的发展。按照前面的结论,一切都是信息,比如核爆也是一种信息,能被感觉到,也就是说,对于一个感觉不到任何刺激的人来说,核爆炸也不算什么灾难了;当然感觉不到刺激的人,就是物理死亡了,植物人也能感觉到刺激。

整个世界,可以说是信息之间的相互作用。信息影响信息。

数据如此重要,所以人们想出一切办法来保护这些数据,将信息放在另一种信息上,比如把数据放在磁盘上。数据存放在磁盘上,需要有一定的组织,组织数据这个任务由文件系统来担当。1.2.3 数据存储

早期的计算机,存储系统中是没有磁盘的,有的只是纸带,那时磁盘还没有被发明出来。纸带上是一些按照一定规则排列的小孔,这些孔被银针穿过之后,银针便会接触到纸带下面放置的水银槽,从而导通计算机上的电路,进行电路逻辑运算。

磁存储技术被发明出来之后,首先出现的是软盘,其速度很慢,容量也很小。程序存储在磁盘上之后,计算机启动时,CPU首先按照ROM里的指令一条一条执行,先是检查硬件。检查完毕之后,ROM中最后一条指令就是让CPU跳转到磁盘的0磁道来执行存储在这里的程序。这些初始化程序直接以二进制代码的方式存储在磁盘上,载入执行之后,就启动了程序内核。

那个时代还没有操作系统这个概念,程序都是用汇编语言或者高级语言独立编写的。也没有API的概念,每个程序都必须独立完成操作计算机的所有代码。这样,磁盘上存放的直接就是这个程序,加电后就会立即运行这个程序。

在磁盘技术上发明出来的文件系统,是为了方便应用程序管理磁盘上的数据而产生的。它其实是操作系统的代码模块,这段代码本身也是信息,也要存储在磁盘上。而且代码也要通过读取一些信息,才能完成功能。这些信息就是文件系统元数据,也就是用来描述文件系统结构的数据。这些元数据也是以文件的形式存放在磁盘上的。

用文件来描述文件,和用信息来描述信息,它们是归一的,正像用智能来创造智能一样!有了文件系统,虚无缥缈的信息才显露出人眼能够实实在在看到的东西。可以用各种应用程序来打开这个文件,程序读取文件中的内容,然后显示在屏幕上,光线传播到人眼中,发生一系列化学变化,最终通过神经网络,形成离子流,给大脑某个区域一个电位或者蛋白质形变信号,这个信号随后产生一系列连锁信号,从而驱动我们的手臂或者引发一系列新的联想和创造。

这就像我们看到桌子上有一本书,然后就想去拿来翻一翻的过程。这个过程是一个复杂的信息流传递过程。而传递过来的信息流,最终在大脑中保存了下来,这些保存下来的信息,就是数据了。1.3 用计算机来处理信息、保存数据

计算机俨然就是一个生物大脑的雏形。

大脑用眼睛、耳朵、鼻子、皮肤作为输入设备,获取各种信息,而计算机利用键盘、鼠标、串口、USB接口等作为输入设备从而获得各种信息。

大脑利用神经网络将获取到的信息传递到神经中枢,而计算机利用各种总线技术将信息传递给CPU进行计算。

大脑利用神经网络,将计算好的信息传递给手臂、腿、肌肉等这些“设备”,从而驱动这些“设备”运动;而计算机同样利用总线,将计算好的数据传递给外部设备,比如显示器、打印机等。

人脑可以存储各种数据,而计算机也能利用外部介质来存放数据。从这一点来说,计算机本身就是人脑的一个外部信息存储和处理的工具。

计算机存储领域的一些存储虚拟化产品,比如NetApp公司的V虚拟化整合设备,本身就模拟了二级智能功能,它可以连接其他任何不同型号品牌的存储设备,从这些存储设备上提取数据,然后传输给主机。IBM、SUN等公司都有自己的这种存储虚拟化整合产品。

计算机存储领域所研究的就是怎样为计算机又快又高效地提供数据以便辅助其运算。和人类的存储史一样,计算机存储技术也在不断发展壮大,从早期的软盘、只有几十兆字节大小的硬盘,发展到现在1TB大小的单个民用硬盘、4GB甚至16GB容量的U盘。

为了追求高速度,人们把多块磁盘做成RAID(Redundant Arrays of Independent Disks)系统,也就是将每个独立的磁盘组成阵列,联合存储数据,加快数据存储速度。本书的第5章将会向读者阐述RAID技术。

追求高速度的同时,容量问题也必须解决。现代计算机程序对存储容量的要求变得非常巨大。最新的Windows Vista操作系统,刚刚安装完后所占用的磁盘空间就有6GB多。一些大型3D游戏,仅仅安装文件就动辄2GB、4GB,甚至8GB大小。一些数据库管理程序所生成的数据库文件,可能达到几TB甚至上百上千TB的大小。传统的将硬盘放到计算机主机箱内的做法已经不能满足现代应用程序对存储容量的需求,这就催生了网络存储技术。

网络存储是将存储系统扩展到了网络上,使存储设备成为了网络上的一个节点,以供其他节点访问。这样,即使计算机主机内只有一块硬盘,甚至没有硬盘,计算机也可以通过网络来存取存储设备上的数据。目前计算机存储领域的热门技术就是网络存储技术,它关注的是如何在网络上向其他节点提供数据流服务。基于网络存储,又使得很多其他相关技术得以推广和应用,比如IT系统容灾技术等。提示

在第16章将用较长的篇幅来详细讲述IT系统容灾技术。

不管怎样,所有这些复杂的技术,最终都是给人来用的,“科技以人为本”。我们毕竟不是为了无聊而发明计算机,任何我们发明的东西,最终都将为我们所用。任何一种新技术的出现,都是针对某种需求而生,所以必须深刻理解计算机系统,同时,还要理解和挖掘人类自身越来越高、越来越不可思议的需求,只有做到这个层次,才能更加深刻地理解计算机系统和人类自身。

可以看到,存储领域是个包罗万象的领域,如果不了解计算机系统,想掌握存储技术是很难的。本书将带领大家走入计算机存储领域,深入体会各种存储技术,为读者打下一个坚实的基础,从而在以后的工作及学习过程中能够得心应手、触类旁通,这也是作者的最终目的。第2章IO大法——走进计算机IO世界

■ IO

■ 总线

■ 网中之网

大家都知道,组成计算机的三大件是CPU、内存和IO。CPU和内存就不用说了,那么IO具体是什么呢?IO就是IN和OUT的简称。顾名思义,CPU需要从内存中提取数据来运算,运算完毕后再放回内存,或者直接将电信号发向一些针脚以操作外部设备。对于CPU来说,从内存提取数据,就叫做IN。运算完后将数据直接发送到某些其他针脚或者放回内存,这个过程就是OUT。对于磁盘来说,IN是指数据写入磁盘的过程,OUT则是指数据从磁盘读出来的过程。IO只是一个过程,那为何要在本书开头就研究它呢?因为我们必须弄清楚计算机系统的数据流动和处理过程。数据在每个部件中不断地进行IO过程,传递给CPU由其进行运算处理之后,再经过IO过程,最终到达输出设备供人使用。2.1 IO的通路——总线

现代计算机中,IO是通过共享一条总线的方式来实现的。如图2-1所示,总线也就是一条或者多条物理上的导线,每个部件都接到这些导线上,导线上的电位每个时刻都是相等的,这样总线上的所有部件都会收到相同的信号。也就是说,这条总线是共享的,同一时刻只能有一个部件在接收或者发送,是半双工的工作模式。图2-1 计算机总线示意图

所有部件按照另一条总线,也就是仲裁总线或者中断总线上给出的信号来判断这个时刻总线可以由哪个部件来使用。产生仲裁总线或者中断电位的可以是CPU,也可以是总线上的其他设备。如果CPU要向某个设备做输出操作,那么就由CPU主动做中断。如果某个设备请求向CPU发送信号,则由这个设备来主动产生中断信号来通知CPU。CPU运行操作系统内核的设备管理程序,从而产生了这些信号。

如图2-1所示,主板上的每个部件都是通过总线连接起来的。图中只画了8条导线,而实际中,导线的数目远远不止8条,可能是16条、32条、64条甚至128条。这些导线密密麻麻地印刷在电路板上,由于导线之间非常密集,在高频振荡时会产生很大干扰,所以人们将这些导线分组印刷到不同电路板上,然后再将这些电路板压合起来,形成一块板,这就是多层印刷电路板(多层PCB)。这样,每张板上的导线数量降低了,同时板与板之间的信号屏蔽性很好,不会相互干扰。这些导线之中,有一些是部件之间交互数据用的数据总线,有些则是它们互相传递控制信号用的控制总线,有些则是中断与仲裁用的中断总线,还有一些则是地址总线,用来确认通信时的目标设备。一般按照数据总线的条数来确认一个总线或设备的位宽(CPU是按照其内部寄存器到运算单元之间的总线数目来确定位数的)。比如32位PCI总线,则表明这条总线共有32根导线用于传递数据信号。PCI总线可以终结在一个插槽,用于将PCI接口的板卡接入PCI总线,也可以直接与设备连接。后者一般用于集成在主板上的设备,因为它们之间无须使用插槽来连接。

目前最新的主板架构中,高速总线比如PCIE 2.0往往是直接接入北桥,南桥只连接低速总线。1.PCI总线

PCI总线是目前台式机与服务器所普遍使用的一种南桥与外设连接的总线技术。

PCI总线的地址总线与数据总线是分时复用的。这样的好处是,一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在数据传输时,一个PCI设备作为发起者(主控,Initiator或Master),而另一个PCI设备作为目标(从设备、Target或Slave)。总线上的所有时序的产生与控制,都由Master来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构(Arbiter),来决定谁有权力拿到总线的主控权。

当PCI总线进行操作时,发起者(Master)先置REQ#信号Master用来请求总线使用权的信号),当得到仲裁器(Arbiter)的许可时(GNT#信号),会将FRAME#信号(传输开始或者结束信号)置低,并在地址总线(也就是数据总线,地址线和数据线是共享的)上放置Slave地址,同时C/BE#(命令信号)放置命令信号,说明接下来的传输类型。

所有PCI总线上的设备都需对此地址译码,被选中的设备要置DEVSEL#(被选中信号)以声明自己被选中。当IRDY#(Master可以发送数据)与TRDY#(Slave可以发送数据)都置低时,可以传输数据。当Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。2.PCI总线的中断共享

PCI总线可以实现中断共享,即不同的设备使用同一个中断而不发生冲突。

硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低电平;而只有当所有板卡的中断都得到处理后,中断信号才会恢复高电平。

软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。依此类推,就会形成一个中断链。而当有中断发生时,系统跳转到中断7对应的内存,也就是ISR_B。ISR_B就要检查是不是B卡的中断,如果是则处理,并将板卡上的拉低电路放开;如果不是则呼叫ISR_A。这样就完成了中断的共享。2.2 计算机内部通信

网络是什么,用一句话来说就是将要通信的所有节点连接起来,然后找到目标,找到后就发送数据。笔者把这种简单模型叫做“连找发”网络三元素模型,听起来非常简单。1.连

网络系统当然首先要都连接起来,不管用什么样的连接方式,比如HUB总线、以太网交换、电话交换、无线、直连、中转等。在这些层面上每个网络点到其他网络点,总有通路,总是可达。2.找

连接起来之后,由于节点太多,怎么来区分呢?所以就需要有个区分机制。当然首先就想到了命名,就像给人起名一样。在目前广泛使用的网络互联协议TCP/IP中,IP这种命名方式占了主导地位,统一了天下。其他的命名方式在IP看来都是“非正统”的,全部被“映射”到了IP。比如MAC地址和IP的映射,Frame Relay中DLCI地址和IP的映射,ATM中ATM地址和IP的映射,最终都映射成IP地址。任何节点,不管所在的环境使用什么命名方式,到了TCP/IP协议的国度里,就都需要有个IP名(IP地址),然后全部用TCP/IP协议来实现节点到节点无障碍的通信。在“连起来”这个层面,就是OSI(本书第7章介绍)模型中链路层实现的功能。3.发“找目标”这个层面是网络层实现的功能。“发数据”这个层面,就是传输层需要保障的。至于发什么数据,数据是什么格式,这两个层面就不是网络通信所关心的了,它们已经属于OSI模型中上三层的内容了。2.2.1 IO总线是否可以看作网络

IO总线可以接入多个外设,比如键盘、鼠标、网卡、显卡、USB设备、串口设备和并口设备等,最重要的当然要属磁盘设备了。讲到这里,大家的脑海中应该能出现这样一种架构:CPU、内存和各种外设都连接到一个总线上,这不正是以太网HUB的模型么?HUB本身就是一个总线结构而已,所有接口都接在一条总线上,HUB所做的就是避免总线信号衰减,因此需要电源来加强总线上的电信号。

没错!仔细分析之后,发现它确实就是这么一个模型!不过IO总线和以太网HUB模型还是有些区别。CPU和内存因为足够快,它们之间单独用一条总线连接。这个总线和慢速IO总线之间通过一个桥接芯片连接,也就是主板上的北桥芯片。这个芯片连接了CPU、内存和IO总线。

CPU与北桥连接的总线叫做系统总线,也称为前端总线。这个总

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载