分布式理论|青训营笔记

94 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第10天

1.分布式概述

1.1分布式定义

分布式系统是计算机程序的集合,这些程序利用跨多个独立计算节点的计算资源来实现共同的目标。可以分为分布式计算、分布式存储、分布式数据库等。

1.2分布式优势

  • 去中心化(将程序运行在一个集群里面,整体的存储和计算能力会有提高)
  • 低成本
  • 弹性(用户的访问会有波动,白天提供在线服务,夜间提供离线计算;促销活动中服务进行扩容,活动结束后服务进行缩容)
  • 资源共享
  • 可靠性高

1.3分布式挑战

  • 普遍的节点故障
  • 不可靠的网络
  • 异构的机器与硬件环境
  • 安全

1.4常见的分布式系统

  • 分布式存储
  1. Google File System(GFS):google分布式文件系统
  2. Ceph:统一的分布式存储系统
  3. Hadoop HDFS:基于GFS架构的开源分布式文件系统
  4. Zookeeper:高可用的分布式数据管理与系统协调框架
  • 分布式数据库
  1. Google Spanner:google可扩展的、全球分布式的数据库
  2. TiDB:开源分布式关系型数据库
  3. HBase:开源Nosql数据库
  4. MongoDB:文档数据库
  • 分布式计算
  1. Hadoop:基于MapReduce分布式计算框架
  2. Spark:在Hadoop基础之上,使用内存来存储数据
  3. YARN:分布式资源调度

2.系统模型

2.1故障模型

按照处理故障的难易程度可分为6类

  • Byzantine failure:节点可以任意篡改发送给其他节点的数据,是最难处理的故障,通常是由于网络问题和安全性事故引起的
  • Authentication detectable byzantine failure (ADB)(Byzantine failure的特例)节点可以篡改数据,但不能伪造其他节点的数据,例如内存错误,磁盘错误等
  • Performance failure:节点未在特定时间段内收到数据,即时间太早或太晚
  • Omission failure:节点收到数据的时间无限晚,即收不到数据
  • Crash failure:在Omission failure的基础上,节点停止响应,持续性的故障
  • Fail-stop failure:在Crash failur的基础上,错误可检测,是最容易处理的故障
故障模型表
故障描述可能的故障类型
磁盘故障例如:磁头不寻道,盘片不转,磁介质损伤等,年发生率1-2%Fail-stop
磁盘坏道、坏块磁头划伤引起坏道,或宇宙射线影响晶体管产生位反转Fail-stop、ADB
服务器主板、板卡故障可能是风扇故障或灰尘引起的短路或SCSI/RAID卡造成的死机器Crash
网络故障电源、背板故障、网卡位反转、网络流量大造成大量丢包Byzantine、Omission
网络分区网络引起的节点形成不同的子集,子集中网络相通,子集间网络不通Performance
内存故障内存出错造成的数据被篡改,分为UE、CEADB
线缆故障服务器光模块频繁up或downPerformance、Omission
内核崩溃内核内部的致命错误,产生的kernel panicCrash
CPU故障年故障率接近1%Omission、Crash
电源故障服务器失去电源支撑Omission
软件故障例如进程crash、内存踩坏、状态不一致、配置错误、软件bug等Byzantine