跳到主要内容

技术架构

本章节将深入介绍 Curvine 的技术架构,详细剖析其各层组件的功能、交互方式以及设计理念,帮助你全面了解 Curvine 系统的工作原理。

整体架构概述

Curvine 采用分层设计的分布式架构,这种设计使得系统各组件职责明确,具备良好的可扩展性和高可用性。整个架构主要分为三层:控制层、计算层和存储层,各层之间相互协作,共同完成数据的存储、处理和管理任务。

Curvine 缓存由三个部分组成: mount-arch

Curvine客户端:数据读写操作由客户端实现,客户端通过 RPC 调用 Curvine 服务端提供的接口,实现数据读写操作; 客户端需要同时与Master和Worker通信。客户端支持多种接入方式:

  • FUSE,Curvine 以 POSIX 兼容的方式挂载到服务器,当做本地存储来使用。
  • Hadoop Java SDK,Curvine 提供 Hadoop Java SDK,支持 Hadoop 生态系统。
  • Rust SDK,Curvine 提供 Rust SDK,支持 Rust 生态系统。

Master:是系统的核心控制节点,承担着诸如集群状态管理、任务调度、元数据管理等重要职责。 Master通过Raft实现分布式一致性和高可用,不依赖任务外部组件。

Worker:负责实际的数据存储和管理,处理数据读写请求

UFS: Curvine通过数据编排技术,为用户提供统一的文件系统视图。

高性能设计

Curvine为了实现高性能、高并发、低资源消耗的目标,采用了以下技术和设计原则:

  • 纯Rust实现:Curvine 采用纯 Rust 语言实现,避免了传统语言的性能瓶颈和资源消耗,同时也保证了代码的安全性和稳定性。
  • 高性能RPC框架:Curvine实现了自定义rpc通信框架,支持高效的数据传输,在框架内实现了异步IO和零拷贝;
  • 零成本抽象: 零成本抽象设计,核心模块直接对接底层系统,避免了不必要的抽象层,提高了系统性能和资源利用率。
  • 异步IO:异步IO设计,充分利用了系统资源,避免了阻塞等待,提高了系统的并发处理能力。
  • 零拷贝:零拷贝设计,避免了数据的复制和内存的分配,减少了系统的内存占用和资源消耗。

高可用设计

Curvine 采用分布式架构设计,通过多副本机制和故障转移机制保证系统的高可用性。

  • Raft协议:使用用 Raft 协议实现分布式一致性,保证数据的一致性和可靠性。
  • 故障转移机制:故障自动转移,当主节点故障时,自动切换到备用节点,保证系统的高可用性。
  • 多副本机制:多副本机制,保证数据的冗余备份,提高系统的可靠性和容错能力。
  • 快照机制:轻量级快照机制,定期备份数据,提高系统的恢复速度和稳定性。