分布式存储系统设计的关键问题,系统设计关键问题


 本文介绍下分布式系统设计中的一些关键问题及解决思路: 数据的分布方式 副本的保存方式 副本的控制 节点状态监控
1)数据的分布方式 hash分布 用于key-value模型的存储系统中,数据库中的分表也可以使用这种方式。 利用hash函数将对象散列到不同的机器。 优点: 散列型号,分布均匀,实现简单。 缺点 可扩展性(scalability)不强,增加新的机器会导致之前的映射全部失效。
按数据范围分布 用于key-value模型的存储系统中,数据库中的分表也可以使用这种方式。 将数据分成不同的区间,分到不同的机器上,区间可以采用动态创建的方式。 优点: 数据拆分规则灵活,扩展性强 缺点: 元数据较多(维护数据分区和机器之间的对应关系),容易成为瓶颈。
按数据量分布 用于文件模型的存储系统。 分布过程中,保证个台机器上的数据量大体一致,即负载均衡方式。 优点:扩展性强 缺点:维护元数据(每个文件分布在那台机器上)
一致性哈希 用于key-value模型的存储系统中 克服了hash分布的扩展性缺陷,广泛用于各种产品实现,如memcached, openstack swift等。
2)副本的保存方式 以机器为单位 副本以机器为单位,若干机器互为副本,副本之间的数据完全相同。 优点 实现简单 缺点 数据恢复效率不高(恢复源较少);负载分布容易不均。
以数据段为单位 将数据拆分为合理的数据段,以数据段为单位进行副本保存。数据段的大小相同,有多种叫法:chunk, partition,segment等。 优点 恢复快,扩展性强 缺点 维护元数据,难于实现
3)副本控制 用来管理多副本之间的一致性问题,关系到系统的一致性模型。
中心化的副本控制 一个副本充当中心节点,控制其他副本,如primary-secondary方式。更新操作都要通过中心节点完成,该方式的实现相对简单。典型代表如GFS, mysql中的master-slave模式。
去中心化,个副本之间没有中心控制。 这种方式的实现比较复杂,采用的不多,代表产品Dynamo。
4)节点状态监控 heartbeat 存在一个监控节点,其他节点定时向监控节点发送heartbeat信息。
lease机制 也可以采用lease机制实现状态监控。
fastdfs中的方法 1)数据的分布方式 按数据量分布,不同的组之间做负载均衡。
2)副本的保存方式 以机器为单位保存副本,互为副本的几台机器构成一个组。
3)副本控制 由tracker在组中选择一个storage作为中心节点(primary),其他的节点为从节点(secondary),又中心节点负责向从节点同步数据。
4)节点状态监控 storage定时向tracker发送heatbeat信息,一旦规定的时间内没有收到心跳信息,将相应的节点下线。
参考文章 《分布式系统原理介绍》,刘杰


分布式存储需要做磁盘阵列?云存储?

感觉概念需要澄清一下:
1、与分布式存储向对应的概念是集中式存储。这两个概念用于描述用户数据存储状态。
2、简单地,可以将磁盘阵列理解为向计算机提供高性能、高可靠性、大容量存储空间的存储系统。分布式存储与集中式存储均可使用磁盘阵列作为计算机存储数据的专用设备。
3、云存储旨在整合用户IT设备为用户提供更强大、更丰富的增值功能的存储系统,较传统磁盘阵列而言,云存储概念更先进,但目前业界对云存储的定义还存在争议并为形成标准,属于技术预研领域。目前在云存储方面势头强劲的主要有:EMC、SUN、Symantec、HuaweiSymantec等专业存储厂商。
 

帮助写一篇分布式计算云计算论文

一、云计算概念
二、云计算历史
三、云计算现状
四,云计算发展前景
五、云计算实现,目前存在的问题。
写论文多参考:华为的云计算,wingdows云计算,goole云计算。明天看看再补充些,多参考
 

相关内容