Curve 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Curve 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Curve 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Curve 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Curve 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

CURVE 是网易开源的高性能、高可用、高可靠分布式存储系统,具有非常良好的扩展性。基于该存储底座可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。CURVE 的设计开发始终围绕三个理念:一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造顶级的存储产品;二是秉持 “Simple Can be harder than complex”,了解问题本质情况下选择最简单的方案解决问题;三是拥抱开源,在充分调研的前提下使用优秀的开源项目组件,避免造轮子。

当前网易基于 CURVE 已经实现了高性能块存储系统,支持快照克隆和恢复 ,支持 QEMU 虚拟机和物理机 NBD 设备两种挂载方式, 在网易内部作为高性能云盘使用。

特性

1. 高性能

高性能是 CURVE 的一大特点,也是项目团队创建 CURVE 项目的初衷。RPC 层面 CURVE 采用了高性能和低延迟并且已开源的 brpc;在一致性层面选择了基于 quorum 机制并且开源的 braft,从协议层面来说 quorum 机制在延迟方面天生优于多副本强一致的方式。实现上 CURVE 对 braft 快照的实现进行了优化,在状态机的实现上采用 chunkfilepool 的方式 ( 初始化集群的时候格式化出指定比例的空间用作 chunk ) 使得底层的写入放大为 0;此外CURVE 还在 chunk 上进行更细力度的地址空间 hash 以达到读写分离、减小 IO 碰撞等的效果,从而进一步提升 IO 性能。

2. 高可用

高可用是 CURVE 的另一大特点。MDS、ChunkServer 以及 SnapShotCloneServer 都支持多实例部署,部分实例异常不影响整个集群的可用性。

  • MDS

    MDS 是无状态的,推荐至少部署两个实例。通过 Etcd 进行选主。多个 MDS 实例通过 Etcd 进行选主,当单个实例失效时,可以秒级切换到另外一个实例。失效实例上正在处理的请求,Client 和 SnapShotCloneServer 都会对其进行重试,以达到不影响集群可用性的效果。

  • SnapShotCloneServer

    SnapShotCloneServer 与 MDS 类似, 也是通过 Etcd 进行选主,不同的是,它通过负载均衡对外提供服务。失效期间的请求失败重试都是幂等的,不影响任务的正确性以及集群的可用性。

  • ChunkServer

    ChunkServer 是一个集群,通过 Raft 协议保持数据一致性,并通过 MDS 做负载均衡。单个节点失效时,会影响到这个节点上存储的所有 Copyset。对于 Copyset 上的 Leader 节点,会中断服务,等待重新选举;对于Copyset 上的 follower 节点,服务不会受影响。当某个 Chunkserver 节点失效且在一段时间内无法恢复,MDS 会将其上的数据迁移到其他节点上。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (1)

加载中
期待和ceph的横向对比测评
2020/07/19 21:54
回复
举报
更多评论
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/06/06 15:07

Curve 曲线 工具

    最近研究了曲线绘制的工具,主要是2D方程的绘制。综合了许多工具,完成了一下两个脚本。 绘制的工具: 1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.UI; 4 5 public class Curve : MaskableGraphic 6 { 7 public Color color; 8 public float m_LineWidth = 1; 9 [Range(1, 10)] 10 public int Acc = 2; 11 public System.Func<float, float> xCon...

0
0
发表于多媒体处理专区
2014/11/23 12:34

PCurve - Curve on Surface

PCurve - Curve on Surface eryar@163.com Abstract. 本文通过给出曲面上曲线PCurve的定义来对OpenCascade中的Curve On Surface进行理解,并介绍了OpenCascade对应的类BRep_CurveOnSurface实现。通过Tcl脚本输出的球的拓朴信息,分析PCurve的实际应用。 Key words. OpenCascade, ACIS, PCurve, Curve on Surface, Parametric Surface 1. Introduction 不管是ACIS还是OpenCascade中都有PCurve这个概念,字面上来理解就是参数曲线...

0
0
发表了博客
2015/10/26 13:31

Curve Mode功能解释

Curve Mode是ZBrush中比较重要的一个工具,它的主要功能有两个,本文小编将给大家简单介绍Curve Mode的功能以及它的笔刷有哪些。   Curve Mode主要有两大功能:修改模型的表面和添加模型。      Curve Mode只是一个笔刷调板,展开Stroke面板就可以看到Curve Mode。它必须依附在模型上,所以在使用Curve Mode前要先建立一个多边形模型才可。      展开笔刷调板,下面这14个笔刷都是开启了Curve Mode的笔刷,他们的前缀...

0
0
发表于多媒体处理专区
2015/11/17 23:41

OPEN CASCADE Curve Continuity

OPEN CASCADE Curve Continuity eryar@163.com Abstract. 设计一条复杂曲线时,出于设计和制造上的考虑,常常通过多段曲线组合而成,这就需要解决曲线段之间如何实现光滑连接的问题。评价曲线间连接的光滑度的度量有两种:参数连接性和几何连续性。本文对这两种连续性分别进行介绍。 Key Words. Curve Continuity, Geometric Continuity, 参数连续性、几何连续性 1.Introduction 在实际应用中进行复杂零件的几何设计时,通常我们...

0
0
发表于多媒体处理专区
2015/11/13 20:07

OPEN CASCADE BSpline Curve Interpolation

OPEN CASCADE BSpline Curve Interpolation eryar@163.com Abstract. Global curve interpolation to point data is a way to construct curves. The paper focus on the interpolate algorithm in OPEN CASCADE, and give a simple example to demonstrate the usage of the GeomAPI_Interpolate class. Key Words. Interpolate, NURBS, BSpline, OPEN CASCADE 1.Introduction 曲线曲面拟合Curve and Surface Fitting的方式可以...

0
0
发表于AI & 大数据专区
2020/08/16 15:54

ML——Learning-Curve

Hello, we will push the machine learning flashcard everyday! Please pay more attention to 数据科学实战! 本文分享自微信公众号 - 数据科学实战(dsaction)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

0
0
发表了博客
2019/07/25 16:07

[matlab工具箱] 曲线拟合Curve Fitting

——转载网络 我的matlab版本是 2016a 首先,工具箱如何打开呢? 在 apps 这个菜单项中,可以找到很多很多的应用,点击就可以打开具体的工具窗口 本文介绍的工具有以下这些: curve Fitting curve Fitting 一开始的界面是这样子的 其中下面这个部分是用来添加数据的,提供的选项是workspace中已经存在的变量 这里我提供一组数据,用来演示 x=[8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20]; y...

0
0
发表于AI & 大数据专区
2020/04/22 21:41

ML——Learning-Curve

1 本文分享自微信公众号 - 数据科学实战(dsaction)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

0
0
发表于数据库专区
2020/11/26 11:52

Curve 技术解析之 MDS 元数据管理

Curve简介 Curve是网易数帆于今年7月份开源的一个高性能、高可用、高可靠的分布式存储系统,主打高性能、低延迟。 Curve设计可以作为多种存储场景的底层存储:例如块存储,对象存储,云原生数据库,EC等。 当前Curve已实现高性能块存储,并且基于这⼀场景对接了OpenStack 和 Kubernetes。OpenStack 上主要是用做云主机的系统盘和云盘,目前已经在线上稳定一年多了。Kubernetes上主要是想作为计算节点的数据目录,这个场景目前在...

1
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2020/07/31 09:45

网易分布式存储项目 Curve 专访:凭什么比 Ceph 提升 84%?

大数据时代,分布式存储凭借其较低的拥有成本、灵活的扩展能力、线性增长的性能、统一的资源池管理等诸多先天优势,逐步替代了传统的网络存储,成为越来越多的互联网企业用于有效处理海量业务数据的利器。 在开源领域,目前比较主流的开源分布式存储系统无疑是 Linux 基金会旗下的 Ceph。而近日,网易宣布开源一款名为 Curve 的分布式存储系统,从官方公布的性能测试结果来看,Curve 的性能相比 Ceph 提升了 84% ,引起了国内外...

6
24
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
307 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部