分布式系统(一)

分布式系统案例

  • 局域网络
  • Tair 分布式数据库架构
  • Elasticsearch 搜索集群
  • 边缘计算
  • 大规模深度学习系统

产生背景

计算机的小型化以及计算性能的提升

Enslow 的系统设计模型

发展趋势

  • 2005 年前:封闭集中的 IT 基础设施
  • 今天:开放集中的云环境
  • 2020 年以后: 开放分布式的普适计算环境

定义

分布式系统是若干独立自主计算机的集合,这些计算机对于用于来说像是单个 耦合系统。

物理分布,逻辑集中,个体独立,整体统一

特性

  • 构成组件并被所有用户共享;
  • 系统资源可能不允许访问;
  • 软件运行在不同处理器上的多个并发进程上;
  • 允许多点控制;
  • 允许多点失效

集中式系统特性

  • 仅由单个组件构成;
  • 单个组件被用户一直占用;
  • 所有的资源都是可访问的;
  • 软件运行在单个进程中;
  • 单点控制;
  • 单点失效;

自主性

计算节点硬件或者软件进程是独立的;

耦合性

用户或者应用程序感觉系统是一个系统——节点之间需要相互协作;

八大谬论

  1. 网络可靠。 The network is reliable.
  2. 延迟为零。 Latency is zero.
  3. 带宽是无限的。 Bandwidth is infinite.
  4. 网络是安全的。 The network is secure.
  5. 拓扑不会改变。 Topology doesn’t change.
  6. 只有一个管理员。 There is one administrator.
  7. 运输成本为零。 Transport cost is zero.
  8. 网络是同质的。The network is homogeneous.

自主节点集合

节点独立行为

  • 每个节点都是独立的,有自己的本地时间;
  • 没有全局锁;
  • 存在基本的同步和协同的问题;

节点集合行为

  • 如何管理集合中的节点之间的关系?— 开放集合、封闭集合;
  • 如何知道确实是在跟一个授权(非授权的)成员通信? — 信任、安全机制

节点间的组织形式

覆盖网络(Overlay network)

  • 实践表明覆盖网络最为常用
  • 每个节点仅和邻居节点通信
  • 邻居节点是动态的甚至只能通过查询获得

覆盖网络类型

  • P2P 网络(Peer-toPeer)
  • 结构型的 P2P 网:节点之间的连接具有特定规则的结构
  • 非结构性的 P2P 网络:节点之间的连接具有随机和任意性;

一致(Coherent)系统

本质

节点无论在什么地方,用户无论何时访问,节点集合对于 用户来讲是一个整体;

挑战

部分失效: 不可避免地,分布式系统的某一部分会失效, 部分失效以及恢复很难做到对用户的透明性

例子

  • 终端用户不知道计算发生在什么地方;
  • 用户也不知道与应用相关的数据存储在什么地方;
  • 数据拷贝完全是隐藏的;(核心是分布式透明性)

分布式系统的目标

使资源可访问

让用户方便地访问资源

透明性

隐藏资源在网络上的分布,隐藏进程和资源在多台计算机上分布这一事实

透明的类型
透明性 说明
访问 隐藏数据表示形式的不同以及资源访问方式的不同
位置 隐藏资源所在位置
迁移 异常资源是否移动到另一个位置
重定位 隐藏资源是否在使用过程中移动到另一个位置
复制 隐藏是否对资源进行复制
并发 隐藏资源是否由相互竞争的用户共享
故障 隐藏资源的故障和恢复
持久化 隐藏数据在主存和磁盘这一事实
观点

完全透明性是不可取的也是难以实现的,主要因为:

  • 可能隐含通信的性能问题
  • 完全隐藏网络和节点的失效是不可能的;
    • 不能区分失效和性能变慢的节点;
    • 不能确定系统失效之前的操作是什么
  • 完全的透明性可能牺牲性能,暴露系统分布特征
  • 保证复制节点与主节点的一致性需要时间(一致性问题)
  • 为了容错需要立即将内存修改的内容同步到磁盘上;

开放性

访问接口的标准化

可扩展性

系统在规模、地域、管理上的可扩展性