Curve核心组件之snapshotclone快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器 • 快照 • 克隆快照和克隆的特点 • 快照的定义 通过调用etcdclient,与etcd存储交互,存取etcd中的快照和克隆 元数据。 SnapshotCloneMetaStore: • CurveClient封装了Client接口,负责与MDS和ChunkServer交互。 CurveClient: • 负责管理快照和克隆源卷的引用计数。 SnapshotRef & CloneRef:快照总体流程 • 1.用户发起快照,生成快照任务,并持久化到 根据快照元数据信息,转储快照数据块 dataObject。 • 5.调用mds接口,移除curve内部的快照。 • 6.mds调用chunkserver接口,删除内部快照 数据 快照流程: chunk chunk chunk chunkserver meta object data object data object S3 Snap Task etcd mds client0 码力 | 23 页 | 1.32 MB | 6 月前3
Raft在Curve存储中的工程实践• 支持RDMA和SPDK Curve块存储架构 • client:接受用户请求。 • mds:保存元数据,包括topo信息、块设备信息、 数据分布信息等,持久化到etcd中。 • chunkserver:采用raft协议3副本的方式保存块 设备上的数据。 • snapshotCloneServer:卷的快照克隆服务,持久 化到S3中。Curve块存储RAFT应用 数据分布 • 每个r t是个逻辑 概念。写入chunk的数据,由copyset对应的raft完成 3副本的写入。 • multi-raft:copyset和chunkserver是多对多的关系 • 每个copyset由3个chunkserver组成 • 每个chunkserver可以服务多个copyset raft复制组 • disk -> segment -> chunk • chunk -> copyset 请求处理流程 以写请求为例: 1. Client 发送写请求给 Leader ChunkServer。 2. ChunkServer 收到请求,将请求封装成一个 log entry,提交给 raft。 3. raft模块在本地持久化 entry 的同时发送 entry 给其 他副本(ChunkServer)。 4. 本地持久化 log entry 成功,且另一个副本也写入 log entry0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve 分布式存储设计server表示物理服务器 4. chunkserver物理服务器上 的服务实例 拓扑结构Curve块存储 1. Curve块存储将虚拟块设备 映射到文件 2. 每个文件包含的chunk分散 在集群的存储节点 3. chunkserver按照故障域分组 4. copyset中的节点属于不同的 故障域 数据组织Curve块存储 IO流程Curve块存储 1. chunkserver负责数据的存储 chunkserver负责数据的存储 2. RAFT协议保持数据的一致 性 3. chunkfile pool降低元数据开 销 Chunkserver服务Curve块存储 性能设计Curve块存储 在线升级设计 1. 客户端分成NebdClient与 NebdServer两部分 2. NebdClient只做简单的转发 3. NebdServer实现大部分的客 户端逻辑Curve块存储 故障对I/O抖动延迟的影响0 码力 | 20 页 | 4.13 MB | 6 月前3
CurveFS Copyset与FS对应关系文档在这 ),curvefs的元数据分片仍然按照的copyset的方式去管理。 curve块存储的topo信息由PhysicalPool、LogicalPool、Zone、Server、ChunkServer、CopySetInfo组成。curvefs可以照搬curve块存储的topo设计,只是保存的内容从数据变成了元数据。 curvefs的topo信息设计可以由PhysicalPool、Lo 配少数copyset。随着fs使用和新建,动态的新建copyset。 4、curvefs的topo信息 curvefs的topo信息可以照搬curvef块设备的topo的实现,只需要把chunkserver改成metaserver。 curvefs的topo信息的层级最终是这样: →pool :存储池(curve的physical pool和logic pool这里合并,只保留一个pool)0 码力 | 19 页 | 383.29 KB | 6 月前3
Curve Detail Introduction for CNCFArchitecture • CurveBS Topology • CurveBS Data Organization • MetaData Server (MDS) • ChunkServer • Client • CurveBS IO processing flow • CurveBS Performance considerations • Cloud NativeAgenda0 码力 | 23 页 | 6.53 MB | 6 月前3
OID CND Asia Slide: CurveFSmachine resources Zone is the basic unit of fault isolation Server Indicates a physical server Chunkserver is a service instance on a physical serverCurve metadata organization Curve maps virtual block0 码力 | 24 页 | 3.47 MB | 6 月前3
TiDB: HBase分布式事务与SQL实现Percolator ● Three components ○ Percolator worker ○ BigTable tablet server ○ GFS chunkserver Percolator ● Transactions ○ ACID semantics ○ Snapshot-Isolation (too weak for0 码力 | 34 页 | 526.15 KB | 1 年前3
新一代云原生分布式存储答疑架构简介 — 总体架构 支持块存储、文件存储(多种存储后端)架构简介 — 概念介绍 Segment: 空间分配的基本单元 Chunk: 数据分片 Copyset: 复制组 ChunkServer: 管理一个磁盘进程架构简介 — 数据放置 Copyset的放置 Chunk的分配 • 由中心节点MDS以Scatter-width 均衡为目标进行创建 • 由中心节点MDS在各Copyset中0 码力 | 29 页 | 2.46 MB | 6 月前3
CurveFs 用户权限系统调研dumpe2fs 1.43.4 (31-Jan-2017) Filesystem volume name:Last mounted on: /data/chunkserver16 Filesystem UUID: 5ba783e9-44bd-49ce-b8bc-b7ba0ef33531 Filesystem magic number: 0xEF53 0 码力 | 33 页 | 732.13 KB | 6 月前3
共 9 条
- 1













