ceph 存储 对比_分布式存储系统 Curve

CURVE 是网易开源的高性能、高可用、高可靠分布式存储系统,具有非常良好的扩展性。基于该存储底座可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。

  • 授权协议: Apache 2.0
  • 开发语言: C/C++
  • 开发厂商:网易
  • 软件类型:分布式应用/网络

CURVE 的设计开发始终围绕三个理念:

一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造顶级的存储产品;

二是秉持 “Simple Can be harder than complex”,了解问题本质情况下选择最简单的方案解决问题;

三是拥抱开源,在充分调研的前提下使用优秀的开源项目组件,避免造轮子。

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

03d0fc26cbe03f2e98544b294cf84769.png

特性

  1. 高性能

高性能是 CURVE 的一大特点,也是项目团队创建 CURVE 项目的初衷。RPC 层面 CURVE 采用了高性能和低延迟并且已开源的 brpc;在一致性层面选择了基于 quorum 机制并且开源的 braft,从协议层面来说 quorum 机制在延迟方面天生优于多副本强一致的方式。

实现上 CURVE 对 braft 快照的实现进行了优化,在状态机的实现上采用 chunkfilepool 的方式 ( 初始化集群的时候格式化出指定比例的空间用作 chunk ) 使得底层的写入放大为 0;

此外CURVE 还在 chunk 上进行更细力度的地址空间 hash 以达到读写分离、减小 IO 碰撞等的效果,从而进一步提升 IO 性能。

网易公布了 Curve 和 Ceph L 版本的测试数据对比,在单卷的场景下,核心的 4K 随机读/写的IOPS 性能,Curve 分别是 Ceph 的 1.84 倍和 1.58 倍,同时延迟相比 Ceph 分别降低 48.39%和 37.50%。

3eadee418f64c2fc08c8ba28d1fa6077.png
Curve与Ceph性能测试对比

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 会将其上的数据迁移到其他节点上。

更多信息:分布式存储系统 Curve

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS添加pch预编译文件

1.右键组名,New File->IOS->other选择PCH文件 2.在Build Settings的搜索栏输入prefix 3.找到Prefix Header 3.添加PCH文件,方法一:项目名/****.pch.(推荐) ; 方法二:$(SRCROOT)/项目名/***.pch转载于:https://w…

前端封装接口弹出错误_项目实践:SpringBoot三招组合拳,手把手教你打出优雅的后端接口...

前言一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同&am…

关于重写equals()与hashCode()

在HashMap与HashSet中,是不允许元素重复的。 在判定时比较元素的hashCode()是否相等,equals()是否返回true,那么问题来了 这是一个Person类 public class Person { private String id; private String name; private Integer age; …

金算盘高手论坛资料中心_3D304期 菜鸟论坛精英PK专栏 速来围观!!

点上方“菜鸟选号论坛”→点右上角“...”→选“星标★”每日上午更新,星标置顶与大神不走散苹果是置顶,安卓是星标 点击"菜鸟选号论坛"关注我们论坛明星版块,集全网各路高手之大乘,打造草根明星 展示舞台。同时主要是为…

诸暨机器人餐厅价格_现场 | 一家尝出“锅气”的餐厅 探店机器人餐厅

观点地产网蔡澜先生的书中曾说过,“食在广东,其实是食在顺德”,顺德这座美食之都,满足了对食物异常挑剔的广东人的味蕾追求。最近,一家坐落“凤城”顺德的餐厅开业了。餐厅开业本身并没什么稀奇,不过这是一…

VelocityTracker简要

翻译自:http://developer.android.com/reference/android/view/VelocityTracker.html參照自: http://blog.jrj.com.cn/4586793646,5298605a.html android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其它gestures手势事件&…

积木赛尔号机器人_赛尔号:谱尼三次败北,经历过被吊打、封印,一次比一次惨...

赛尔号:谱尼三次败北,经历过被吊打、封印,一次比一次惨。精灵类型的动漫层出不穷,在我们儿时看过精灵宝可梦、数码宝贝等等作品。国内的动漫则是有赛尔号和洛克王国,相较而言还是赛尔号更加的出名一些,更加…

xenu工具介绍

Xenu Link Sleuth 也许是你所见过的最小但功能最强大的检查网站死链接的软件了。你可以打开一个本地网页文件来检查它的链接,也可以输入任何网址来检查。它可以分别列出网站 的活链接以及死链接,连转向链接它都分析得一清二楚;支持多线程&…

安卓模拟器_exagear模拟器安卓模拟器

Exagear模拟器简介让Android 设备用户重温经典 PC 游戏,来自俄罗斯的初创公司 Eltechs发布了一款全新的 Android 游戏模拟器 ExaGear Strategies。该游戏模拟器的主要功能就是将经典的 PC 游戏带到 Android 智能手机或平板电脑上来。公告1.exagear软件和游戏&#x…

HBase 常用Shell命令

两个月前使用过hbase,现在最基本的命令都淡忘了,留一个备查~ 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后…

将Excle数据导入到数据库

假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 using System.Web.UI;6 using System.Web.UI.WebControls;7 us…

click vue 重复调用_VUE防止多次点击,重复请求

VUE防止多次点击,重复请求1.添加自定义文件 preventReClick.jsimport Vue from vueconst preventReClick Vue.directive(preventReClick, {inserted: function (el, binding) {el.addEventListener(click, () > {if (!el.disabled) {el.disabled truesetTimeou…

virbr0怎么关闭_CentOS 7中关闭删除virbr0虚拟网卡

在CentOS 7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡,这个是因为在虚拟化中有使用到libvirtd服务生成的,如果不需要可以关闭后去掉:[rootlocalhost ~]# virsh…

动态规划(五) 最大连续子序列和(Maximum Continuous Subsequence Sum)

占位...转载于:https://www.cnblogs.com/AloneAli/p/4580931.html

python中beautifulsoup是什么库_BeautifulSoup库详解(个人整理)

BeautifulSoup4是爬虫必学的技能。BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不…

iOS 设置系统音量和监听系统音量变化

很简单的调用 首先在工程引入MediaPlayer.framework #import <MediaPlayer/MediaPlayer.h> 1. 获取系统音量 // 获取系统音量 MPVolumeView *volumeView [[MPVolumeView alloc] init];UISlider *volumeViewSlider nil;for (UIView *view in [volumeView subviews]){if …

h5关于选择器以及class的小加强

1、querySelector和querySelectorAll 这两个方法类似于jquery的选择器 document.querySelector(.box) document.querySelectorAll(.box)前者只能选择一组中的第一个&#xff0c;后者选择一组元素。 2、getElementsByClassName document.getElementsByClassName(box) 选择的结…

1 睡眠唤醒_一劳永逸解决WIN10所有睡眠问题

1.初级阶段&#xff0c;解决因硬件的唤醒事件powercfg -lastwake查看上次唤醒电脑的设备哪些硬件能唤醒电脑&#xff1f;powercfg /devicequery wake_armed列出现在可以唤醒电脑的所有硬件设备&#xff0c;可以看到现在键盘能唤醒powercfg /devicequery wake_programmable列出全…

[转]Device Context 设备环境 设备上下文 理解

http://blog.csdn.net/p424671075/article/details/7235601转载于:https://www.cnblogs.com/qrlozte/p/4582594.html

生成路径 vs 设置_Simulink代码生成之模型配置

欢迎关注我的微信公众号【新能源动力电池与BMS】&#xff0c;头条号&#xff1a;【阿Q在江湖】&#xff1b;所有文章资料会在公众号首发。本文已同步录制视频讲解&#xff1a;Simulink代码生成之模型配置_视频教程 - 知乎。PS&#xff1a;前段时间&#xff0c;传出美国禁用一些…