㈠ 分布式存储相对于单机存储的挑战是
1、分布式相比于传统存储系统的优点
①高性能:它通常可以高效地管理读缓存和写缓存,支持自动的分布式存储通过将热点区域2映射到高速缓存,提高响应速度。一旦不在是热点,那么存储系统将会把他们移除。写缓存技术可配合高速存储明显改变整体存储的性能,按照一定的策略先将数据写入高速存储,再在适当的时间进行同步落盘。
②支持分布式存储:通过网络进行松耦合链接,允许高速村塾和低速存储分开部署。一定条件下分层存储的优势可以发挥到最佳。解决了最大的问题是当性能池读不命中后,从冷池提取数据的粒度太大,导致延迟高,从而给造成整体的性能的抖动的问题。
③多副本一致性:他相比传统的存储框架使用RAID不同。它采用了多分本备份机制,存储之前进行分片,之后按照一定的规则存在集群的节点上,为了保证数据一致性,布式存储通常采用的是一个副本写入,多个副本读取的强一致性技术,读取数据失败,从其他副本获取,重新写入该副本恢复。
④容灾与备份:对于容灾采用最重要的手段就是快照,可以实现一定时间下的数据的保存。他有利于故障重现,有助于分析研究,避免灾难,备份就是为了数据的安全性。
⑤弹性扩展:分布式存储可预估并且弹性扩展计算、存储容量和性能,节点扩展后,旧数据自动迁移到新节点上,实现负载均衡,避免单点问题。水平扩展只需要将节点和原来的集群链接到同一网络,整个过程不会对业务造成影响,当加节点时,集群系统的容量和性能随之线性扩展,新节点资源会被平台接管,分配或吸收。
⑥存储系统标准化:随着分布式存储的发展,存储行业的标准化进程也不断推进,分布式存储优先采用行业标准接口(SMI-S或OpenStack Cinder)进行存储接入,在平台层面,通过将异构存储资源进行抽象化,将传统的存储设备级的操作封装成面向存储资源的操作,从而简化异构存储基础架构的操作,以实现存储资源的集中管理,并能够自动执行创建、变更、回收等整个存储生命周期流程。基于异构存储整合的功能,用户可以实现跨不同品牌、介质地实现容灾,如用中低端阵列为高端阵列容灾,用不同磁盘阵列为闪存阵列容灾等等,从侧面降低了存储采购和管理成本。
2、分布式相比于传统存储系统的缺点
首先,从部署与维护的角度来看,分布式存储部署过程较为复杂,需要专门的人才进行部署,维护与管理,需要一定的时间培养专门的人才。其次,从硬件设备角度来看,分布式存储使用的均为X86架构服务器,稳定性可能不如传统的硬件存储。尤其对于银行,金融,政府等重要行业,稳定永远大于一切,他们既是新技术的实践者但同时也需要最稳定的环境保持业务的良好运行。最后,对于数据保护技术,大部分都是通过副本技术实现数据保护机制,常见的有两副本三副本等,这样也会造成可用存储容量的降低。
㈡ 什么是分布式存储系统
分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
(2)盐城魏晋元兴分布式存储系统架构扩展阅读:
分布式存储,集中管理,在这个方案中,共有三级:
1、上级监控中心:上级监控中心通常只有一个,主要由数字矩阵、认证服务器和VSTARClerk软件等。
2、本地监控中心:本地监控中心可以有多个,可依据地理位置设置,或者依据行政隶属关系设立,主要由数字矩阵、流媒体网关、iSCSI存储设备、VSTARRecorder软件等组成;音视频的数据均主要保存在本地监控中心,这就是分布式存储的概念。
3、监控前端:主要由摄像头、网络视频服务器组成,其中VE4000系列的网络视频服务器可以带硬盘,该硬盘主要是用于网络不畅时,暂时对音视频数据进行保存,或者需要在前端保存一些重要数据的情况。
㈢ 分布式架构和分布式系统存储研发的区别是什么
分布式架构是软件系统
分布式系统存储是基于存储、服务器、数据库技术、容灾热备等技术的系统集成。
hps+ssan多节点+ibm6000服务器+Oraclerac是一套基于全闪存融合扩容hds的分布式存储系统。
在这个上面允许的xx云软件,是一个基于分布式架构的软件系统
人才少,需求量大是什么意思?
我基本上除了阿里王博士,和阿里超融合一体机的相关负责人,还没有见过听说过能一个人把整套分布式系统存储技术搞定的
所以你说的人才少是合理的
需求量大就存疑了.......
人家大厂研发好了,一般技术人员去实施运维就好了啊
以联想为例,他的超融合一体机研发,需求量大么...
哦,博士确实挺缺的....
分布式架构是软件系统
分布式系统存储是基于存储、服务器、数据库技术、容灾热备等技术的系统集成
数字经济时代,各个企业、个人都在生产数据,利用数据,数据也在 社会 中不断流动、循环,为这个时代创造着价值与机遇。尽管数据如此珍贵,但我们仍然会听到在集中式存储场景中,由于网络攻击、火灾、地震而造成数据故障、丢失等问题。
为了防止数据出现故障、数据丢失、服务器出错、数据无法恢复等情况,越来越多企业开始把集中存储转变为分布式存储。分布式存储,类似于“把鸡蛋放到不同的篮子里”,简单来说就是把一张照片或文件切碎并放在不同的存储服务器上,任何人都可以成为节点,任何人都可以成为中心,因此,无论数据中心发生数据丢失,数据存储都可以实现永久存储,只要存在存储服务器,就能恢复数据。
其实,分布式存储已经不是什么新鲜事物,而是经历了多年的积累和发展,用户对支撑的服务器需求也越来越明确:相比传统服务器,分布式存储需要更大存储容量,兼具性能的同时,还要更灵活的存储能力,专门的存储服务器应运而生。
存储服务器是随着互联网分布式存储架构迅速崛起而出现的一个服务器品类,随着大数据、视频、图片搜索等互联网创新应用的发展,适用于不同场景的存储服务器种类也越来越多。当前,不仅互联网运营商在大规模采购存储服务器,传统的企业和政府也在批量部署,用于视频、文件归档、邮件以及大数据分析等应用。
浪潮信息一直是存储服务器的主要供应商,今年4月浪潮信息发布了全新的M6系列服务器,其中就包含存储服务器子系列,包含2U24盘、4U46盘、4U60盘、4U106盘等一系列产品,覆盖冷存储、温存储以及视频分析等不同用户不同类型的应用场景。其中,NF5466M6就是一款4U46盘,兼顾高存储容量、强大计算性能和极致IO扩展能力的双路存储优化服务器,是分布式存储架构的不二之选。
㈣ 分布式文件存储系统通过什么方式提高可用性和安全性
分布式存储的六大优点
1. 高性能
一个具有高性能的分布式存户通常能够高效地管理读缓存和写缓存,并且支持自动的分级存储。分布式存储通过将热点区域内数据映射到高速存储中,来提高系统响应速度;一旦这些区域不再是热点,那么存储系统会将它们移出高速存储。而写缓存技术则可使配合高速存储来明显改变整体存储的性能,按照一定的策略,先将数据写入高速存储,再在适当的时间进行同步落盘。
2. 支持分级存储
由于通过网络进行松耦合链接,分布式存储允许高速存储和低速存储分开部署,或者任意比例混布。在不可预测的业务环境或者敏捷应用情况下,分层存储的优势可以发挥到最佳。解决了目前缓存分层存储最大的问题是当性能池读不命中后,从冷池提取数据的粒度太大,导致延迟高,从而给造成整体的性能的抖动的问题。
3. 多副本的一致性
与传统的存储架构使用RAID模式来保证数据的可靠性不同,分布式存储采用了多副本备份机制。在存储数据之前,分布式存储对数据进行了分片,分片后的数据按照一定的规则保存在集群节点上。为了保证多个数据副本之间的一致性,分布式存储通常采用的是一个副本写入,多个副本读取的强一致性技术,使用镜像、条带、分布式校验等方式满足租户对于可靠性不同的需求。在读取数据失败的时候,系统可以通过从其他副本读取数据,重新写入该副本进行恢复,从而保证副本的总数固定;当数据长时间处于不一致状态时,系统会自动数据重建恢复,同时租户可设定数据恢复的带宽规则,最小化对业务的影响。
4. 容灾与备份
在分布式存储的容灾中,一个重要的手段就是多时间点快照技术,使得用户生产系统能够实现一定时间间隔下的各版本数据的保存。特别值得一提的是,多时间点快照技术支持同时提取多个时间点样本同时恢复,这对于很多逻辑错误的灾难定位十分有用,如果用户有多台服务器或虚拟机可以用作系统恢复,通过比照和分析,可以快速找到哪个时间点才是需要回复的时间点,降低了故障定位的难度,缩短了定位时间。这个功能还非常有利于进行故障重现,从而进行分析和研究,避免灾难在未来再次发生。多副本技术,数据条带化放置,多时间点快照和周期增量复制等技术为分布式存储的高可靠性提供了保障。
5. 弹性扩展
得益于合理的分布式架构,分布式存储可预估并且弹性扩展计算、存储容量和性能。分布式存储的水平扩展有以下几个特性:
1) 节点扩展后,旧数据会自动迁移到新节点,实现负载均衡,避免单点过热的情况出现;
2) 水平扩展只需要将新节点和原有集群连接到同一网络,整个过程不会对业务造成影响;
3) 当节点被添加到集群,集群系统的整体容量和性能也随之线性扩展,此后新节点的资源就会被管理平台接管,被用于分配或者回收。
6. 存储系统标准化
随着分布式存储的发展,存储行业的标准化进程也不断推进,分布式存储优先采用行业标准接口(SMI-S或OpenStack Cinder)进行存储接入。在平台层面,通过将异构存储资源进行抽象化,将传统的存储设备级的操作封装成面向存储资源的操作,从而简化异构存储基础架构的操作,以实现存储资源的集中管理,并能够自动执行创建、变更、回收等整个存储生命周期流程。基于异构存储整合的功能,用户可以实现跨不同品牌、介质地实现容灾,如用中低端阵列为高端阵列容灾,用不同磁盘阵列为闪存阵列容灾等等,从侧面降低了存储采购和管理成本。
㈤ 分布式文件系统hdfs主要由哪些功能模块构成
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
Hadoop分布式文件系统架构
1 NameNode(名称节点)
HDFS命名空间采用层次化(树状——译者注)的结构存放文件和目录。
2 映像和日志
Inode和定义metadata的系统文件块列表统称为Image(映像).NameNode将整个命名空间映像保存在RAM中。而映像的持久化记录则保存在NameNode的本地文件系统中,该持久化记录被称为Checkpoint(检查点)。NameNode还会记录HDFS中写入的操作,并将其存入一个记录文件,存放在本地文件系统中,这个记录文件被叫做Journal(日志)。
3 数据节点
DataNode上的每一个块(block)副本都由两个本地文件系统上的文件共同表示。其中一个文件包含了块(block)本身所需包含的数据,另一个文件则记录了该块的元数据,包括块所含数据大小和文件生成时间戳。数据文件的大小等于该块(block)的真实大小,而不是像传统的文件系统一样,需要用额外的存储空间凑成完整的块。因此,如果一个块里只需要一半的空间存储数据,那么就只需要在本地系统上分配半块的存储空间即可。
4 HDFS客户端
用户应用程序通过HDFS客户端连接到HDFS文件系统,通过库文件可导出HDFS文件系统的接口。像很多传统的文件系统一样,HDFS支持文件的读、写和删除操作,还支持对目录的创建和删除操作。与传统的文件系统不同的是,HDFS提供一个API用以暴露文件块的位置。这个功能允许应用程序。
5 检查点节点
HDFS中的NameNode节点,除了其主要职责是相应客户端请求以外,还能够有选择地扮演一到两个其他的角色,例如做检查点节点或者备份节点。该角色是在节点启动的时候特有的。
6 备份节点
HDFS的备份节点是最近在加入系统的一项特色功能。就像CheckpintNode一样,备份节点能够定期创建检查点,但是不同的是,备份节点一直保存在内存中,随着文件系统命名空间的映像更新和不断更新,并与NameNode的状态随时保持同步。
7 系统更新和文件系统快照
在软件更新的过程中,由于软件的bug或者人为操作的失误,文件系统损坏的几率会随之提升。在HDFS中创建系统快照的目的,就在于把系统升级过程中可能对数据造成的隐患降到最低。快照机制让系统管理员将当前系统状态持久化到文件系统中,这样以来,如果系统升级后出现了数据丢失或者损坏,便有机会进行回滚操作,将HDFS的命名空间和存储状态恢复到系统快照进行的时刻。
㈥ 云存储架构分哪些层次,各自实现了什么功能
(1)存储层
云存储系统对外提供多种不同的存储服务,各种服务的数据统一存放在云存储系统中,形成一个海量数据池。从大多数网络服务后台数据组织方式来看,传统基于单服务器的数据组织难以满足广域网多用户条件下的吞吐性能和存储容量需求;基于P2P架构的数据组织需要庞大的节点数量和复杂编码算法保证数据可靠性。相比而言,基于多存储服务器的数据组织方法能够更好满足在线存储服务的应用需求,在用户规模较大时,构建分布式数据中心能够为不同地理区域的用户提供更好的服务质量。
云存储的存储层将不同类型的存储设备互连起来,实现海量数据的统一管理,同时实现对存储设备的集中管理、状态监控以及容量的动态扩展,实质是一种面向服务的分布式存储系统。
(2)基础管理层
云存储系统架构中的基础管理层为上层提供不同服务间公共管理的统一视图。通过设计统一的用户管理、安全管理、副本管理及策略管理等公共数据管理功能,将底层存储与上层应用无缝衔接起来,实现多存储设备之间的协同工作,以更好的性能对外提供多种服务。
(3)应用接口层
应用接口层是云存储平台中可以灵活扩展的、直接面向用户的部分。根据用户需求,可以开发出不同的应用接口,提供相应的服务。比如数据存储服务、空间租赁服务、公共资源服务、多用户数据共享服务、数据备份服务等。
(4)访问层
通过访问层,任何一个授权用户都可以在任何地方,使用一台联网的终端设备,按照标准的公用应用接口来登录云存储平台,享受云存储服务。
2云存储技术的优势
作为新兴的存储技术,与传统的购买存储设备和部署存储软件相比,云存储方式存在以下优点:
(1)成本低、见效快
传统的购买存储设备或软件定制方式下,企业根据信息化管理的需求,一次性投入大量资金购置硬件设备、搭建平台。软件开发则经过漫长的可行性分析、需求调研、软件设计、编码、测试这一过程。往往在软件开发完成以后,业务需求发生变化,不得不对软件进行返工,不仅影响质量,提高成本,更是延误了企业信息化进程,同时造成了企业之间的低水平重复投资以及企业内部周期性、高成本的技术升级。在云存储方式下,企业除了配置必要的终端设备接收存储服务外,不需要投入额外的资金来搭建平台。企业只需按用户数分期租用服务,规避了一次性投资的风险,降低了使用成本,而且对于选定的服务,可以立即投入使用,既方便又快捷。
(2)易于管理
传统方式下,企业需要配备专业的IT人员进行系统的维护,由此带来技术和资金成本。云存储模式下,维护工作以及系统的更新升级都由云存储服务提供商完成,企业能够以最低的成本享受到最新最专业的服务。
(3)方式灵活
传统的购买和定制模式下,一旦完成资金的一次性投入,系统无法在后续使用中动态调整。随着设备的更新换代,落后的硬件平台难以处置;随着业务需求的不断变化,软件需要不断地更新升级甚至重构来与之相适应,导致维护成本高昂,很容易发展到不可控的程度。而云存储方式一般按照客户数、使用时间、服务项目进行收费。企业可以根据业务需求变化、人员增减、资金承受能力,随时调整其租用服务方式,真正做到“按需使用”。
3云存储技术趋势
随着宽带网络的发展,集群技术、网格技术和分布式文件系统的拓展,CDN内容分发、P2P、数据压缩技术的广泛运用,以及存储虚拟化技术的完善,云存储在技术上已经趋于成熟,以“用户创造内容”和“分享”为精神的Web2.0推动了全网域用户对在线服务的认知
㈦ 《大规模分布式存储系统原理解析与架构实战》epub下载在线阅读,求百度网盘云资源
《大规模分布式存储系统》(杨传辉)电子书网盘下载免费在线阅读
链接:https://pan..com/s/1CG8nBAVixYg53OHREZc_3g
书名:大规模分布式存储系统
作者:杨传辉
豆瓣评分:7.8
出版社:机械工业出版社
出版年份:2013-9-1
页数:293
内容简介:
《大规模分布式存储系统:原理解析与架构实战》是分布式系统领域的经典着作,由阿里巴巴高级技术专家“阿里日照”(OceanBase核心开发人员)撰写,阳振坤、章文嵩、杨卫华、汪源、余锋(褚霸)、赖春波等来自阿里、新浪、网易和网络的资深技术专家联袂推荐。理论方面,不仅讲解了大规模分布式存储系统的核心技术和基本原理,而且对谷歌、亚马逊、微软和阿里巴巴等国际型大互联网公司的大规模分布式存储系统进行了分析;实战方面,首先通过对阿里巴巴的分布式数据库OceanBase的实现细节的深入剖析完整地展示了大规模分布式存储系统的架构与设计过程,然后讲解了大规模分布式存储技术在云计算和大数据领域的实践与应用。
《大规模分布式存储系统:原理解析与架构实战》内容分为四个部分:基础篇——分布式存储系统的基础知识,包含单机存储系统的知识,如数据模型、事务与并发控制、故障恢复、存储引擎、压缩/解压缩等;分布式系统的数据分布、复制、一致性、容错、可扩展性等。范型篇——介绍谷歌、亚马逊、微软、阿里巴巴等着名互联网公司的大规模分布式存储系统架构,涉及分布式文件系统、分布式键值系统、分布式表格系统以及分布式数据库技术等。实践篇——以阿里巴巴的分布式数据库OceanBase为例,详细介绍分布式数据库内部实现,以及实践过程中的经验。专题篇——介绍分布式系统的主要应用:云存储和大数据,这些是近年来的热门领域,本书介绍了云存储平台、技术与安全,以及大数据的概念、流式计算、实时分析等。
作者简介:
杨传辉,阿里巴巴高级技术专家,花名日照,OceanBase核心开发人员,对分布式系统的理论和工程实践有深刻理解。曾在网络作为核心成员参与类MapRece系统、类Bigtable系统和网络分布式消息队列等底层基础设施架构工作。热衷于分布式存储和计算系统设计,乐于分享,有技术博客NosqlNotes。
㈧ 《大规模分布式系统架构与设计实战(含光盘)》epub下载在线阅读全文,求百度网盘云资源
《大规模分布式系统架构与设计实战(含光盘)》(彭渊)电子书网盘下载免费在线阅读
链接:https://pan..com/s/1rDgvCgeNKwl4gJlFJeYxpg
书名:大规模分布式系统架构与设计实战(含光盘)
豆瓣评分:4.8
作者:彭渊
出版社:机械工业出版社
出版年:2014-3
页数:231
内容简介
本书从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网企业的分布式存储计算系统都是个大平台,系统复杂、代码庞大,而且只适合公司的业务,工程师很难下载安装到自己的电脑里学习和吃透。本书对分布式核心技术进行了大量归纳和总结,并从中抽取出一套简化的框架和编程API进行讲解,方便工程师了解分布式系统的主要技术实现。这不是一本空谈概念、四处摘抄的书,这本书包含了大量精炼示例,手把手教你掌握分布式核心技术。
作者简介
彭渊资深架构师,现任华为企业中间件首席架构师,主要负责中间件和大数据。前淘宝高级专家(花名:千峰),先后在淘宝交易、淘宝中间件、集团核心系统、阿里金融等部门工作。曾任金蝶总体架构部SOA架构师,负责设计ESB。曾艰苦创业,编写和销售财务软件。在Java技术领域从业十多年,撰写过多款开源软件,其中,淘宝分布式技术框架Fourinone为其代表作。他拥有软件着作权的代表作有:BS系列软件(包括财务进销存、OA产品、CRM等)、FMS视频会议、Flash网站生成软件(华军可下载),所有软件作品均贡献99%代码。
㈨ 《大规模分布式系统架构与设计实战(含光盘)》epub下载在线阅读,求百度网盘云资源
《大规模分布式系统架构与设计实战(含光盘)》(彭渊)电子书网盘下载免费在线阅读
资源链接:
链接:https://pan..com/s/1XoxJB0i2HGGsmPJtONFSUA
书名:大规模分布式系统架构与设计实战(含光盘)
作者:彭渊
豆瓣评分:4.8
出版社:机械工业出版社
出版年份:2014-3
页数:231
内容简介:
【编辑推荐】
绝技源于江湖、将军发于卒伍,本书包含作者从程序员到首席架构师十多年职业生涯所积累的实战经验。
这不是一本讲怎么使用Hadoop的书,而是一本讲实现Hadoop功能的书,本书系统讲解构建大规模分布式系统的核心技术和实现方法,包含开源的代码,手把手教你掌握分布式技术
【内容简介】
本书从作者的实战经验出发,深入浅出地讲解了如何建立一个Hadoop那样的分布式系统,实现对多台计算机CPU、内存、硬盘的统一利用,从而获取强大计算能力去解决复杂问题。一般互联网企业的分布式存储计算系统都是个大平台,系统复杂、代码庞大,而且只适合公司的业务,工程师很难下载安装到自己的电脑里学习和吃透。本书对分布式核心技术进行了大量归纳和总结,并从中抽取出一套简化的框架和编程API进行讲解,方便工程师了解分布式系统的主要技术实现。这不是一本空谈概念、四处摘抄的书,这本书包含了大量精炼示例,手把手教你掌握分布式核心技术。
本书主要内容
分布式并行计算的基本原理解剖;
分布式协调的实现,包括如何实现公共配置管理,如何实现分布式锁,如何实现集群管理等;
分布式缓存的实现,包括如何提供完整的分布式缓存来利用多机内存能力;
消息队列的实现,包括如何实现发送和接收模式;
分布式文件系统的实现,包括如何像操作本地文件一样操作远程文件,并利用多机硬盘存储能力;
分布式作业调度平台的实现,包括资源隔离、资源调度等。
【参考阅读】
978-7-111-43052-0 大规模分布式存储系统:原理解析与架构实战
978-7-111-40392-0 分布式系统:概念与设计(原书第5版)
978-7-111-45244-7 Hadoop应用开发技术详解
978-7-111-41766-8 Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理
978-7-111-42226-6 Hadoop技术内幕:深入解析MapRece架构设计与实现原理
978-7-111-44534-0 Hadoop技术内幕:深入解析YARN架构设计与实现原理
978-7-111-43514-3 网站数据分析:数据驱动的网站管理、优化和运营
978-7-111-42591-5 数据挖掘:实用案例分析
作者简介:
彭渊资深架构师,现任华为企业中间件首席架构师,主要负责中间件和大数据。前淘宝高级专家(花名:千峰),先后在淘宝交易、淘宝中间件、集团核心系统、阿里金融等部门工作。曾任金蝶总体架构部SOA架构师,负责设计ESB。曾艰苦创业,编写和销售财务软件。在Java技术领域从业十多年,撰写过多款开源软件,其中,淘宝分布式技术框架Fourinone为其代表作。他拥有软件着作权的代表作有:BS系列软件(包括财务进销存、OA产品、CRM等)、FMS视频会议、Flash网站生成软件(华军可下载),所有软件作品均贡献99%代码。
㈩ 什么是灵动的分布式存储系统
什么是分布式系统
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。
分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。
因为,分布式系统要解决的问题本身就是和单机系统一样的,而由于分布式系统多节点、通过网络通信的拓扑结构,会引入很多单机系统没有的问题,为了解决这些问题又会引入更多的机制、协议,带来更多的问题。
在很多文章中,主要讲分布式系统分为分布式计算(computation)与分布式存储(storage)。
计算与存储是相辅相成的,计算需要数据,要么来自实时数据(流数据),要么来自存储的数据;而计算的结果也是需要存储的。
在操作系统中,对计算与存储有非常详尽的讨论,分布式系统只不过将这些理论推广到多个节点罢了。
那么分布式系统怎么将任务分发到这些计算机节点呢,很简单的思想,分而治之,即分片(partition)。
对于计算,那么就是对计算任务进行切换,每个节点算一些,最终汇总就行了,这就是MapRece的思想;对于存储,更好理解一下,每个节点存一部分数据就行了。当数据规模变大的时候,Partition是唯一的选择,同时也会带来一些好处:
(1)提升性能和并发,操作被分发到不同的分片,相互独立
(2)提升系统的可用性,即使部分分片不能用,其他分片不会受到影响
理想的情况下,有分片就行了,但事实的情况却不大理想。原因在于,分布式系统中有大量的节点,且通过网络通信。
单个节点的故障(进程crash、断电、磁盘损坏)是个小概率事件,但整个系统的故障率会随节点的增加而指数级增加,网络通信也可能出现断网、高延迟的情况。
在这种一定会出现的“异常”情况下,分布式系统还是需要继续稳定的对外提供服务,即需要较强的容错性。