分布式系统简单介绍

上传人:飞*** 文档编号:47459952 上传时间:2018-07-02 格式:PDF 页数:13 大小:659.46KB
返回 下载 相关 举报
分布式系统简单介绍_第1页
第1页 / 共13页
分布式系统简单介绍_第2页
第2页 / 共13页
分布式系统简单介绍_第3页
第3页 / 共13页
分布式系统简单介绍_第4页
第4页 / 共13页
分布式系统简单介绍_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《分布式系统简单介绍》由会员分享,可在线阅读,更多相关《分布式系统简单介绍(13页珍藏版)》请在金锄头文库上搜索。

1、操作系统前沿技术分布式系统陈然 3140103431 2016/12/7 2 目录绪论 . 3分布式系统介绍 . 5分布式系统与集中式系统. 5分布式系统与集群 . 5分布式系统的主要特征 . 6分布式系统的设计理念 . 81. 分布式系统对服务器硬件要求很低. 82. 分布式系统强调横向可扩展性. 83. 分布式系统不允许单点失效 . 94. 分布式系统尽可能减少节点间通讯开销 . 10分布式系统实例 .113 绪论第 25 届 ACM 操作系统原理研讨会(SOSP 15)于 2015 年在美国加尼福尼亚州举办。本次会议对操作系统的前沿技术进行了探究,涉及到的领域从高性能事务处理系统的研究到

2、其实际实现的形式说明;从能量感知系统技术到全球范围内的分布式系统研究;从bug 寻找到大数据研究。而对分布式系统的探讨,又在本次研讨会中占据了重要的地位。本次研讨的十个议题,四个都和分布式系统有关,可见其重要性。4 5 分布式系统介绍分布式系统与集中式系统在了解分布式系统之前,需要先了解一下与之相对应的集中式系统是什么样的。集中式系统用一句话概括就是:一个主机带多个终端。终端没有数据处理能力,仅负责数据的录入和输出。而运算、存储等全部在主机上进行。现在的银行系统,大部分都是这种集中式的系统,此外,在大型企业、科研单位、军队、政府等也有分布。集中式系统最大的特点也是缺点就是部署结构非常简单,由于

3、采用单机部署。很可能带来系统大而复杂、难于维护、发生单点故障(单个点发生故障的时候会波及到整个系统或者网络,从而导致整个系统或者网络的瘫痪)、扩展性差等问题。因此分布式系统应运而生。分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。简单来说就是一群独立计算机集合共同对外提供服务,但是对于系统的用户来说,就像是一台计算机在提供服务一样。分布式意味着可以采用更多的普通计算机(相对于昂贵的大型机)组成分布式集群对外提供服务。计算机越多,CPU、内存、存储资源等也就越多,能够处理的并发访问量也就越大。分布式系统与集群分布式是指在多台不同的服务器中部署

4、不同的服务模块,通过远程调用协同工作,对外提供服务。6 集群是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。简单的说,分布式就是把一个大型应用分解成10 个不同的小的应用,分配给 10 个计算机进行处理。而集群是同时让10 台计算机处理10 个相同的 10 个应用。分布式系统的主要特征分布性分布式系统中的多台计算机之间在空间位置上可以随意分布,系统中的多台计算机之间没有主、从之分,即没有控制整个系统的主机,也没有受控的从机。透明性系统资源被所有计算机共享。每台计算机的用户不仅可以使用本机的资源,还可以使用本分布式系统中其他计算机的资源(包括 CPU、

5、文件、打印机等 )。同一性系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在几台计算机上并行地运行。通信性系统中任意两台计算机都可以通过通信来交换信息。7 可拓展性可拓展性是分布式系统的最大特点,它能够适应需求变化而扩展。企业级应用需求经常随时间而不断变化,它必须要能适应需求的变化,即具有可扩展性。和集中式系统相比,分布式系统的性价比更高、处理能力更强、可靠性更高、也有很好的扩展性,可以让多台服务器协同工作,完成单台服务器无法处理的高并发的大数据量的任务。例如,在处理大型应用时,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分

6、配给多台空闲计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。8 分布式系统的设计理念1. 分布式系统对服务器硬件要求很低这一点主要现在如下两个方面:对服务器硬件可靠性不做要求,允许服务器硬件发生故障,硬件的故障由软件来容错。所以分布式系统的高可靠性是由软件来保证。对服务器的性能不做要求,不要求使用高频CPU、大容量内存、高性能存储等等。因为分布式系统的性能瓶颈在于节点间通讯带来的网络开销,单台服务器硬件性能再好,也要等待网络IO。一般而言,互联网公司的大型数据中心都是选用大量廉价的PC服务器而不是用几台高性能服务器搭建分布式集群,以此来降低数据中心成本。比如, Google 对于数

7、据中心的成本控制做到了极致:所有服务器一律不要机箱;主板完全定制,只要最基本的组件,早期的定制主板连电源开关和 USB 接口都不要;在主板上加装隔离带把CPU单独隔出来,让冷风只吹 CPU ,不吹内存、硬盘等不需要降温的组件,最大限度降低冷却电力消耗。2. 分布式系统强调横向可扩展性横向可扩展性是指通过增加服务器数量来提升集群整体性能。纵向可扩展性是指提升每台服务器性能进而提升集群整体性能。纵向可扩展性的上限非常明显,单台服务器的性能不可能无限提升,而且跟服务器性能相比,网络开销才是分布式系统最大的瓶颈。横向可扩展性的上限空间比较大,集群总能很方便地增加服务器。而且分布式系统会尽可能保证9 横

8、向扩展带来集群整体性能的线性提升。比如有10 台服务器组成的集群,横向扩展为 100 台同样服务器的集群,那么整体分布式系统性能会提升为接近原来的 10 倍。互联网公司的数据中心,一般一个分布式系统横向扩展的上限在万台服务器左右。 Google 数据中心的基本单元:CELL,由两万台左右服务器组成,每个 CELL 由一套分布式管理系统BORG ,统一管理,每个数据中心都由多个 CELL 组成。3. 分布式系统不允许单点失效单点失效是指,某个应用服务只有一份实例运行在某一台服务器上,这台服务器一旦挂掉,那么这个应用服务必然也受影响而挂掉,导致整个服务不可用。例如,某网站后台如果只在某一台服务器上

9、运行一份,那这台服务器一旦宕机,该网站服务必然受影响而不可用。再比如,如果所有数据都存在某一台服务器上,那一旦这台服务器坏了,所有数据都不可访问。因为分布式系统的服务器都是廉价的PC服务器,硬件不能保证100% 可靠,所以分布式系统默认每台服务器随时都可能发生故障挂掉。同时分布式系统必须要提供高可靠服务,不允许出现单点失效,因此分布式系统里运行的每个应用服务都有多个运行实例跑在多个节点上,每个数据点都有多个备份存在不同的节点上。这样一来,多个节点同时发生故障,导致某个应用服务的所有实例都挂掉、或某个数据点的多个备份都不可读的概率大大降低,进而有效防止单点失效。通常情况,不要让服务器满负荷运行,

10、服务器长时间满负荷运行的话,出故障的概率显著升高。所以分布式系统采用一大堆中低性能的PC服务10 器,尽可能把负载均摊到所有服务器上,让每台服务器的负载都不高,保证集群整体稳定性。4. 分布式系统尽可能减少节点间通讯开销如前所述,分布式系统的整体性能瓶颈在于内部网络开销。目前网络传输的速度还赶不上CPU 读取内存或硬盘的速度,所以减少网络通讯开销,让 CPU 尽可能处理内存的数据或本地硬盘的数据,能显著提高分布式系统的性能。典型的例子就是Hadoop MapReduce ,把计算任务分配到要处理的数据所在的节点上运行,从而避免在网络上传输数据。11 分布式系统实例这里我选择的实例是Hadoop

11、 的 HDFS,Hadoop 是一个很经典的MapReduce 的开源实现的系统架构,能够分布式运行且复制数据,也可以在一个集群上运行多个进程,管理由用户创建的并行任务,低成本且可扩展。 Hadoop 集群排序 1TB 的数据只花了209 秒。Hadoop 实现了一个分布式文件系统HDFS,它的文件存储原理如下:(图片摘自网络)假设一个文件如图由红绿蓝三个数据块组成,将该文件写入HDFS 这三块首先在namenode 中登记元数据,哪个数据块在哪个服务器上:黄色在 1 号节点 ,红色的 2 号节点绿色在3 号节点。12 然后 HDFS 在节点之间复制这些数据块,最后这三块在多个节点中分布如下:13 写文件完成后,当我们开始读文件时,读文件由于是并行读取,因此读取时间会提高三倍,而且也不担心这6 台主机其中 1、2 台故障而导致无法提供此文件:HDFS最基本的读写操作,就是一个最简单的能体现分布式系统的优势的实例。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号