分布式系统存储模型

分布式系统,我们一般会采用计算和存储分离的架构来提高系统扩展的灵活性。而常见的存储架构主要有下面三种:

1. 共享存储(Shared Storage):

有一个分布式的存储集群,每个计算节点通过网络访问共享存储内容;

  • 扩展性: 存储层扩展比较方便,但需要计算节点引入分布式协调机制保证数据一致性;
  • 故障切换:计算节点故障直接切换到另外一个节点;
  • 故障隔离性:单节点故障不会影响其他节点。


    image.png

2. 存储分片(Shared Nothing):

每个计算节点自己挂载存储,一个节点只能处理一个分片的数据,各节点之间可以通信将数据汇总。

  • 扩展性:扩展比较方便,但是需要计算和存储同时扩容;而且扩容后需要rebalance。
  • 故障切换:节点failover需要等待数据加载完成才能提供服务;
  • 故障隔离性:节点故障互不影响。


    image.png

3. 存储计算分离(Storage Disaggreation):

存储和Shared Storeage一样共享一个分布式集群;计算和Shared Nothing一样进行分片,每个Shard只处理自己所在的分片。


image.png
  • 一致性:计算层只需保证同一时刻只有一个计算节点保存数据。
  • 扩展性:计算和存储可以分开扩展,不需要做rebalance;
  • 故障恢复:计算节点故障,新节点可以直接从分布式存储拉取数据;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。