Skip to main content

3. 技术架构

3.1 分布式存储计算的基本原理

分布式存储计算系统是一种将数据存储与计算过程分布在多个网络节点上的技术,旨在提高数据处理的效率和可靠性。这种架构的关键优势包括:

  • 可扩展性 :系统可以通过添加更多的节点来轻松扩展,以处理更大的数据集和更复杂的计算任务。
  • 容错性:数据和任务在多个节点间复制和分配,即使部分节点失败或者离线,系统仍然能够保持运行和数据的完整性。并且能够自动协调恢复故障节点。
  • 灵活性:系统能够适应不同的工作负载和数据类型,为各种应用场景提供支持,如数据挖掘、机器学习、科学计算等。并且能够根据需求动态调整资源分配和任务调度。

3.2 VshareCloud 的技术架构概述

VshareCloud采用了先进的分布式存储计算架构,该架构特别设计来优化数据处理速度和系统稳定性。其主要组成部分包括:

  • 数据层:利用IPFS对存储庞大的数据集,并确保数据的高可用性和冗余备份。
  • 计算层:采用容器化技术和数据调度算法动态分配计算资源,支持各种储存和计算任务的弹性伸缩和负载均衡。
  • 管理层:通过饱和式容灾备份的额的控制台节点,对位于全球的节点进行系统监控、任务调度和资源管理,简化运维工作。

3.3 核心组件与功能介绍

VshareCloud由以下几个核心组件构成,每个组件都承担着特定的功能:

3.3.1 CosmicCluster 分布式系统通信框架

  • VshareCloud通过自研的CosmicCluster分布式计算通信框架,实现了节点间的高效通信和数据传输和统一可靠的任务调度和资源管理。
  • CosmicCluster采用了安全的通信机制和先进的任务应用间的零活热拔插式设计,确保了系统的稳定性和可靠性。
  • Cosmic的通信方式支持中心化通信协议(HTTP、WebSocket)和去中心化通信协议(Pubsub,IPFS)等进行完全兼容的对等通信,对系统的可扩展性和灵活性提供了保障。
  • Cosmic针对不同的任务应用(我们把每一种不同的任务作业类型都定义为了独立的"Apps",不同的Apps有自己的任务队列和资源池),提供了高效统一的接口,使得不同的任务应用可以在同一个系统中高效的运行。

3.3.2 CosmicCluster - Server

  • 检测和监控节点的状态,为任务调度提供参考,确保节点的健康运行。
  • 为节点和应用之间的通信提供一个安全的桥梁,确保通信的可靠性和安全性。
  • 提供了统一的应用接入API,开发新的分布式计算任务时只需要专注于任务本身的逻辑和针对每个任务类型的调度算法,而不需要关心底层的通信与节点鉴权等细节。

3.3.3 CosmicCluster - Client

  • 作为节点的代理,负责与Server通信,接收任务调度和数据分发指令。
  • 收集节点的状态信息,上报给Server,以便Server进行节点的健康监控和任务调度。
  • 收集和监测节点间的路由信息,以便Server进行任务调度和数据分发的优化。并且还可以避免部分节点的网络环境造假等情况。
  • 为应用提供统一的接入API,使得应用可以通过统一的接口与Server通信,而不需要关心底层的通信细节。应用专注于处理任务本身的逻辑。

3.3.4 CosmicCluster - App

  • 每个独立的任务类型专注于自己的任务调度和资源管理,通过Server和Client进行通信,实现任务的调度和资源的管理。
  • 应用间可以通过CosmicCluster框架共享部分关键数据,为系统的整体运作优化提供从上至下的配合。
  • Cosmic 的应用应该包含如下基本功能:
    • 节点管理器:负责监控和管理各计算节点的状态,确保节点的健康运行。
    • 数据分发器:根据计算任务的需要,高效分发数据到适当的节点,以减少数据传输时间和提高计算效率。
    • 任务调度器:智能分配计算任务到最合适的节点,考虑到节点的负载情况和资源使用率,优化任务执行时间。
    • 结果汇总器:将分布式计算的结果收集汇总,确保数据的一致性和完整性。

第一个范例应用 - Vshare Storage

基本架构:

  • Vshare Storage是VshareCloud的第一个应用,它是一个分布式存储系统,基于IPFS协议,实现了高效的数据存储和分发。
  • Vshare Storage的主要功能包括:
    • 数据存储:将数据分布式存储在多个节点和地理位置上,确保数据的高可用性和冗余备份。
    • 数据分发:根据计算任务的需要,高效分发数据到适当的节点,以减少数据传输时间和提高计算效率。
    • 数据检索:通过IPFS协议,实现高效的数据检索和传输,支持多种数据类型和格式。
    • 数据备份:自动备份数据到多个节点,确保数据的安全性和可靠性。
  • Vshare Storage的设计和实现,为VshareCloud的其他应用提供了基础设施和技术支持,包括数据存储和分发、任务调度和资源管理等方面。
  • Vshare Storage 的 Client 组成:
    • Client Node:负责与Server通信与处理,接收任务调度和数据分发指令。
    • IFPS Repo管理器:负责管理本地的IPFS Repo,对某个机器设备上的IPFS Repo进行分卷管理,状态监测与服务管理。
    • IPFS sPoST管理器:负责管理本地的IPFS sPoST(Simple Proof of Space Time)任务,负责处理来自Server端的PoST任务,此任务决定了节点的性能表现和节点的健康状态。
    • IPFS Pin管理器 :负责管理本地的IPFS Pin任务,负责处理来自Server端的Pin和Unpin指令。
    • Data Fixer:负责处理本地的数据修复,监测错误的数据并且向Server提交错误报告和数据修复请求,让其他节点协助修复错误数据。
    • IPFS GC Scheduler:负责处理本地的IPFS GC任务,监测本地的IPFS Repo的状态,确保本地的IPFS Repo的状态和性能。
  • Vshare Storage 的 Server 组成:
    • Server:负责与Client通信,接收任务调度和数据分发指令。
    • 订单管理器:负责管理订单的生成和撮合,确保数据的高可用性和冗余备份。
    • 节点状态监控器:负责监控和管理各计算节点的状态,确保节点的健康运行。
    • API服务:负责提供API服务,为客户的应用提供数据存储和检索的交互接口。
    • 财务系统:负责处理订单的支付和结算,确保数据的安全性和可靠性。

sPost(Simple Proof of Space Time)的设计与实现:

  • 什么是sPoST(Simple Proof of Space Time)?
    • sPoST是一种基于IPFS协议的存储证明机制,用于验证节点是否有效储存了特定的数据,并且对节点的存储介质性能进行评估。

    • 详细实现范例参考: IPFS_Raid_Chanllege_Demo(in Python)

    • 为什么sPoST是安全的?

      sPoST通过对节点的存储介质性能进行评估,确保节点的存储介质的可靠性和稳定性。其利用了IPFS 中的Merkle DAG的特性,通过对数据的读取性能进行挑战和判断,对数据的可靠性进行了相对安全的验证,确保了数据的一致性和完整性。

    • 通过sPoST,Vshare Storage不仅验证了数据的有效性,并且对节点的存储介质性能进行了评估,以便于整个系统的性能和健康度的评估。

对性能和健康度的定义

  • 性能:某个节点准确完成sPoST的时间消耗,会被统计计算为节点的性能表现。
  • 健康度:某个节点完成sPoST的综合统计稳定性和正确率,会被统计计算为节点的健康度。

数据区域划分与订单撮合规则

  • 数据区域划分:Vshare Storage将全球的数据区域划分为多个区域,包含 Zenith(官方与合作伙伴共同运营)、Galaxy(社区共同运营)和Premium(高级订单专属)、Filecoin(Filecoin网络)区域。

    • Zenith:官方与合作伙伴共同运营的区域,作为整个网络的存储的骨干服务基础设施,确保服务的高可用性和数据读取的高效性,为用户提供稳定快速的数据检索服务。
    • Galaxy:社区共同运营的区域,为整个网络提供高性价比的储存服务和备份服务,为用户提供经济高效的数据存储服务,并且确保数据的高可靠性。
    • Premium:高级订单专属的区域,为高级订单提供专属的存储服务,确保高级订单的数据存储的高可靠性和高效性。
    • Filecoin:Filecoin网络的区域,接入Filecoin网络的存储服务,使得Vshare Storage可以与Filecoin网络进行数据交换和存储,并且提高Filecoin网络的真实数据存储率和客户的数据存储可靠性。也确保用户的数据主权是不受单个服务商控制的。
  • 订单撮合规则: Vshare Storage通过订单撮合规则,确保用户的订单在符合预期的情况下能够匹配到最优的节点,降低成本的同时提高数据的可靠性和可用性。目前,Vshare Storage的存储订单撮合规则包括:成本优先,质量优先与限价单。

    • 对于每个有效节点:
      • R信誉度R_\text{信誉度}:节点的信誉度在所属区域的排名
      • R单价R_\text{单价}:节点的单价在所属区域的排名
      • R性能R_\text{性能}:节点的性能在所属区域的排名
      • 计算信誉度评分:S信誉度=(1R信誉度1N1)×100S_{\text{信誉度}} = \left(1 - \frac{R_{\text{信誉度}} - 1}{N - 1}\right) \times 100
      • 计算单价评分:S单价=(1R单价1N1)×100S_{\text{单价}} = \left(1 - \frac{R_{\text{单价}} - 1}{N - 1}\right) \times 100
      • 计算性能评分:S性能=(R性能1N1)×100S_{\text{性能}} = \left(\frac{R_{\text{性能}} - 1}{N - 1}\right) \times 100

    Vshare 采用简单加权平均的方式,对信誉度、单价和性能进行加权平均,以确保用户的存储成本最低和数据的质量最高。

    • 成本优先:优先匹配成本最低的节点,确保用户的存储成本最低。
        1. 信誉度权重:0.3
        1. 单价权重:0.5
        1. 存储介质性能权重:0.2
      • 评分撮合规则:S综合=0.3×S信誉度+0.5×S单价+0.2×S性能S_{\text{综合}} = 0.3 \times S_{\text{信誉度}} + 0.5 \times S_{\text{单价}} + 0.2 \times S_{\text{性能}}
    • 质量优先:优先匹配性能最高的节点,确保用户的数据存储的质量最高。
        1. 信誉度权重:0.4
        1. 单价权重:0.2
        1. 存储介质性能权重:0.4
      • 评分撮合规则:S综合=0.4×S信誉度+0.2×S单价+0.4×S性能S_\text{综合} = 0.4 \times S_\text{信誉度} + 0.2 \times S_\text{单价} + 0.4 \times S_\text{性能}

    每次撮合订单时,均选择综合评分最高的节点进行存储,以确保用户的存储成本最低和数据的质量最高。如果同时有多个节点的综合评分相同,则使用在熵联盟上的Drand随机数进行取模选取,以确保公平性。

    • 限价单:用户可以设置存储订单的最高单价,确保存储成本不超过预期。
      • 由于价格已由用户限定,价格因素的权重在限价单中不再适用。因此,我们主要关注以下两个因素:
        • 信誉度权重:0.6
        • 存储介质性能权重:0.4
      • 在筛选价格最接近的节点后,计算每个符合条件节点的综合评分:S综合=0.6×S信誉度+0.4×S性能S_{\text{综合}} = 0.6 \times S_{\text{信誉度}} + 0.4 \times S_{\text{性能}}
      • 根据综合评分选择最高分的节点作为撮合对象。

Vshare Storage API

  • Vshare Storage提供了丰富的API支持,使得开发者可以轻松地将Vshare Storage集成到现有的工作流程和系统中,进一步提高工作效率。
  • Vshare Storage的API包括:
    • 账户管理:支持用户账户的资产管理管理。
    • 订单发起:支持用户发起存储订单和检索订单。
    • 已有订单与数据管理:支持用户管理已有的存储订单和检索订单。
    • 数据分发:支持用户跨区域调度数据,以便用户针对自己的业务需求进行数据分发。
    • 对接应用:对接IPFS的生态应用,为用户提供更多的数据存储和检索的交互接口。

IPFS的原生应用

  • Vshare Storage支持IPFS的原生应用,包括但不限于:
    • PCDN
    • IPFS-Cluster
    • IPFS-Desktop
    • HLS-IPFS
    • 基于IPFS生态开发的应用

3.4 技术创新点

VshareCloud 在分布式存储计算领域的技术创新主要体现在以下几个方面:

  1. CosmicCluster 通信框架:通过自主研发的CosmicCluster通信框架,VshareCloud 实现了节点间的高效、安全通信以及数据传输,特别是其零活热拔插式设计和对等通信能力,极大增强了系统的稳定性、可靠性及扩展性。

  2. 动态资源调度算法:VshareCloud采用先进的数据调度算法,动态分配计算资源,支持数据和计算任务的弹性伸缩及负载均衡,这对于处理大规模分布式计算任务尤为关键,能够根据任务的实时需求自动调整资源分配,优化计算效率。

  3. sPoST机制:VshareCloud在存储验证机制上采用了sPoST(Simple Proof of Space Time),这种机制通过验证节点是否有效存储了特定数据,不仅保证了数据的安全性和完整性,还通过对节点存储介质性能的评估,提高了整个系统的性能和健康度评估。

  4. 数据区域划分与订单撮合规则:通过对全球数据区域的精细划分和智能订单撮合规则,VshareCloud能够根据数据存储需求和节点性能,智能匹配最优的存储解决方案,既保证了数据存储的高效性和经济性,又提高了数据的可靠性和可用性。

  5. IPFS集成和原生应用支持:VshareCloud深度集成了IPFS技术,不仅在分布式存储方面发挥了IPFS的强大能力,还支持IPFS的各种原生应用和生态系统,为用户提供了更为丰富和灵活的数据存储、检索及分发方案。

  6. 全面API支持和生态对接:VshareCloud提供了一系列API接口,使得开发者和企业用户可以轻松地将VshareCloud服务集成到现有的业务流程中,同时通过对接IPFS等生态应用,进一步扩展了其应用场景和功能,促进了生态的繁荣发展。

综上所述,VshareCloud通过这些技术创新,在分布式存储计算领域提供了一个高效、可靠和灵活的解决方案,极大地推动了该领域的技术进步和应用创新。