比特币的火爆催生了一个热词“区块链”,这个技术的本质是一种去中心化的分布式记账算法。这种很牛的技术最近在金融领域得到热捧,其实鹏云网络很早就把这种技术运用到分布式存储系统上了,听听鹏云网络怎么做到的。
区块链技术是利用分布式协同(Distributed Cooperation)和分布式一致性(DistributedConsensus)技术来确保众多账本分布在Internet上,当每个账本的账目改动时,其他人都能及时地收到和验证这些改动。区块链技术必须确保分布式账目内容可靠安全,不会被少数人恶意修改。利用这种技术,数字货币就可以实现去中心化,即中央的金融机构(如银行等)无法干预到数字货币的交易等。
有去中心化的优点,区块链技术可以应用于除了数字货币的很多其他领域,如交易平台系统,智能投票等等。鹏云也是第一个将区块链技术应用于它的分布式存储产品(SDS:Software-Defined-Storage)ZettaStor中,用于极大地提高SDS系统的容错性和扩展性。
鹏云利用区块链的底层技术实现了一个无中心的分布式数据库DDS(Distribute Database Service),用于存储SDS系统的元数据、节点的配置信息、SDS内部微服务的实时健康状态信息等。由于使用区块链中的个体数量很多,区块链技术中最难解决的问题是可扩展性和性能问题,即如何在有限网络带宽上确保数以万计的个体有效地交互和协同。鹏云定制的Peer-to-Peer网络组播技术、点到点的传输方式、数据压缩和数据手印(fingerprint)对比等技术在占用极低的网络带宽的前提下(10KB/s),能快速将变化的信息同步到集群中的所有的DDS Daemon上,从而有效的解决了区块链中的技术难点。
鹏云DDS采用去中心、全对称的架构:DDS Daemon部署在集群的每一个节点上,集群中的每个DDS都是等价的,而每个节点上的所有微服务都和本地的DDS通讯,这意味着任何一个服务都可以通过任意一个DDS获取存储在DDS内部的信息。
以监控服务状态为例,ZettaStor系统集群中每个节点上的所有微服务都和本地的DDS通讯,报告自己的健康状态。集群中所有的DDS通过区块链技术形成了一张分布式的微服务健康状态表。每一个微服务的状态变化,都可以及时的反映在所有DDS的健康表里。下图展示了DDS的架构及p2p的信息交换方式。利用DDS能够实时监控安装在成千上万台节点上的服务的状态,包括服务上下线、新增或移除服务、服务内部状态切换以及服务信息变更等等,具有良好的伸缩性,稳定性,实时性和容错性。
而绝大多数的同类产品如Ceph、FusionStorage等存在中心化的监控系统。以Ceph为例,Ceph的监控系统需要一个到多个Monitors,用于监控OSD Daemon的状态。所有的OSD需要周期性的向Monitors发ping消息,Monitors收集整个集群里面OSD的状态。这种中心化的监控系统架构是系统的在扩展性和容错性方面潜在的瓶颈。
鹏云ZettaStor系统中的元数据、节点的配置信息也和服务健康状态信息一样,存储在DDS里面,形成了去中心化的元数据表和配置信息表。利用区块链底层技术实现了无中心的分布式数据库,确保了ZettaStor存储系统的的容错性和可扩展性比相应的中心化要好100倍以上。鹏云曾在亚马逊AWS云里面租用5000台虚拟机来测试系统的容错性和可扩展性,系统运行稳定。
鹏云网络科技有限公司2013开始自我研发SDS产品,是国内最早从事SDS系统自研的公司之一。
本文转自:鹏云网络