
DistributedSystem
文章平均质量分 80
OshynSong
百度云计算事业部研发工程师
展开
-
Erasure Coding
1. 介绍Erasure Code可以认为是RAID的通式,任何RAID都可以转换为特定的erasure code。在传统的RAID中,仅支持少量的磁盘分布,当系统中存在多个分发点和多节点时,RAID将无法满足需求。比如RAID5只支持一个盘失效,即使是RAID6也仅支持两个盘失效,所以支持多个盘失效的算法也就是erasure code是解决这一问题的办法。(Erasure Code作为可有效提升存原创 2017-08-10 12:56:07 · 1210 阅读 · 0 评论 -
Raft协议整理
复制状态机是当前分布式系统中最核心最基础的组件,提供命令在多个节点之间有序复制和执行,当多个节点初始状态一致的时候,保证节点之间状态一致。系统只要多数节点存活就可以正常处理,它允许消息的延迟、丢弃和乱序,但是不允许消息的篡改。Raft将一致性问题分解成了如下三个子问题Leader electionLog replicationSafetyLeader Election三种角色:原创 2017-12-13 19:44:03 · 674 阅读 · 0 评论 -
Ceph单机引擎FileStore简介
Ceph作为一个高可用和强一致性的软件定义存储实现,去使用它非常重要的就是了解其内部的IO路径和存储实现。这篇文章主要介绍在IO路径中最底层的ObjectStore的实现之一FileStore。ObjectStoreObjectStore是Ceph OSD中最重要的概念之一,它封装了所有对底层存储的IO操作。从上图中可以看到所有IO请求在Clieng端发出,在Message层统一解析后会被OSD层...原创 2018-03-15 18:58:43 · 3027 阅读 · 0 评论 -
Ceph的FileStore代码阅读问题整理
1.bufferlist中的_memcopy_count作用是什么?bufferlist提供了一个rebuild函数,用来将整个buffterptr链表的所有bufferraw都copy到一个新建的bufferptr中,然后清空链表并将新建的这个bufferptr插入到链表中。_memcopy_count成员记录了在进行拷贝过程中每个bufferraw的长度之和。这个值用来在进行内存对齐时需要重新...原创 2018-03-15 19:05:04 · 1403 阅读 · 0 评论 -
Ceph的BlueStore总体介绍
整体架构bluestore的诞生是为了解决filestore自身维护一套journal并同时还需要基于系统文件系统的写放大问题,并且filestore本身没有对SSD进行优化,因此bluestore相比于filestore主要做了两方面的核心工作:去掉journal,直接管理裸设备针对SSD进行单独优化bluestore的整体架构如下图所示:通过Allocator实现对裸设备的管理,直接将数据保存...原创 2018-03-15 19:35:10 · 11066 阅读 · 0 评论 -
gossip协议介绍
背景gossip 协议(gossip protocol)又称 epidemic 协议(epidemic protocol),是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用 gossip 协议来确保网络中所有节点的数据一样。Gossip protocol 最早是在 1987 年发表在 ACM 上的论文 《Epidemic Algorithms...原创 2019-06-14 12:51:53 · 2441 阅读 · 0 评论 -
ceph的 cache tier实现分析
1 基本介绍1.1 设计思想数据的存储可划分为active和inactive两大类,active数据是小部分,会频繁访问,使用更高性能的底层存储介质进行存储;inactive的数据是全集,使用廉价的存储介质存储。这种分冷热的思想与CPU的多级缓存、操作系统的cache、各类软件系统的软件缓存是相通的,但ceph通过软件层面的配合,充分利用不同的硬件介质和软件存储模式,为上层用户提供透明统一...原创 2019-06-14 13:08:03 · 3778 阅读 · 1 评论