分布式理论 | 青训营笔记

63 阅读3分钟

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

2023.2.21

分布式概述

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

优势:

  1. 去中心化
  2. 低成本
  3. 弹性
  4. 资源共享

挑战:

  1. 普遍的节点故障
  2. 不可靠的网络
  3. 异构的机器与硬件环境
  4. 安全
  5. 可靠性高

常见的分布式系统

分布式存储

  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: 分布式资源调度

系统模型

故障模型

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

持续更新中···