简述分布式文件系统

一、概述

1、 分布式系统定义

是一个硬件或软件组件分布在网络中的不同的计算机之上,彼此间仅通过消息传递进行通信和协作的系统。

2、特征:

分布性、对等性、并发性、缺乏全局时钟、故障必然会发生

3、典型问题:

通信异常、网络分区、三态(成功、失败、超时)三种状态转换、节点故障

二、什么是CAP定理

  • 2000年7月份, 加州大学伯克利分校的Eric Brewer, 在ACM PODC这个杂志上首次提出CAP定理的猜想,到了2002年,来自麻省理工学院的Seth Gilbert和Nancy Lynch证明了CAP定理的存在,因此CAP成为了定理,被分布式系统设计者广泛采用和遵循。

  • CAP是指任何一个分布式系统最多只能同时满足CAP中的两项

    • P:分区容错性(必须满足)
      • CP:一致性
      • AP:可用性
  • 基于CAP定理就产生了BASE理论

三、BASE理论:

  • BA:基本可用,分布式系统出现问题时,保证系统基本可用
  • S:软状态,允许各节点在可控范围内接收数据有时间延迟
  • E:最终一致性,所有副本经过一段时间同步,最终数据保持一致。
    • 一致性又分为:因果一致性、会话一致性、单调读一致性(每一次读都是一致的)、单调写一致性(每一次写都是一致的)、读己之所写一致性(自己写的自己始终要读到,前后一致);

四、保证分布式系统的一致性多种协议

1、2PC:2 Phase-Commit(两阶段式提交)

  • 两阶段式提交包含了请求和执行过程
  • 参与的所有节点,均准备完毕,然后进行第二步提交,问题是第一个准备请求将被阻塞,要等待最后一个节点准备完毕,才能启动第二阶段提交。这里会产生大量阻塞,还有单点问题和节点间协调问题等等。

2、 3PC:3 Phase-Commit,(三阶段式提交)

  • CanCommit发出提交请求,参与节点中那些能够提交,从而降低了阻塞范围,但是此种方式也引入了数据不一致的可能性,下一步PreCommit预提交,最后DoCommit提交。

3、Paxos协议

  • 算法作者是Leslie Lamport,帕克索斯协议1990年提出,分布式系统中最有效的解决方案

4、Raft协议

  • Raft是一种共识算法,旨在替代Paxos。 它通过逻辑分离比Paxos更容易理解,但它也被正式证明是安全的,并提供了一些额外的功能。Raft提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。

五、分布式协调服务实现

1、Chubby
  • Paxos协议著名的工程实践是Google Chubby项目,它是分布式锁服务,GFS/BigTable都用到了chubby分布式锁服务来实现的。chubby作用是分面式协作、元数据存储、Master选举;

2、Zookeeper

  • 开源的分布式系统HDFS/HBase,它的分布式协调服务由Zookeeper实现。
  • zookeeper是一个开源的分布式协调服务,由知名互联网公司Yahoo创建,它是Chubby的开源实现;换句话讲,zookeeper是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现数据的发布/订阅、负载均衡、名称服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列;

3、ETCD

  • ETCD使用Raft协议来维护集群内各个节点状态的一致性。简单说,ETCD集群是一个分布式系统,由多个节点相互通信构成整体对外服务,每个节点都存储了完整的数据,并且通过Raft协议保证每个节点维护的数据是一致的。

你可能感兴趣的:(简述分布式文件系统)