Raft在Curve存储中的工程实践
+ new),一旦共同一 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 日志压缩 • 日志会不断增长,占用空间 • 采用快照的方式压缩日志 • 在某个时间点,整个系统的状态都以快照的形式写入 到稳定的持久化存储中 • 完成一次快照之后,删除时间点之前的所有日志和快 照。BRAFT简介 • raft协议提出之后,涌现出了非常多的实现,比如etcd,braft,tikv等。 mds:保存元数据,包括topo信息、块设备信息、 数据分布信息等,持久化到etcd中。 • chunkserver:采用raft协议3副本的方式保存块 设备上的数据。 • snapshotCloneServer:卷的快照克隆服务,持久 化到S3中。Curve块存储RAFT应用 数据分布 • 每个raft实例用一个copyset管理,copyset是个逻辑 概念。写入chunk的数据,由copyset对应的raft完成 具有幂 等性。 • 对chunk打快照不需要把chunk重新换个地方复制一遍, 只需要记录下chunk文件的list。 • follower从快照恢复,只需要leader把最近一次快照 涉及到chunk数据给到follower,follower再从上次快 照后的日志重放即可。 • chunkserver服务重启,只需要加载快照,然后对 chunk重放快照之后日志即可。 raft snapshot0 码力 | 29 页 | 2.20 MB | 5 月前3Curve核心组件之snapshotclone
04 快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器 • 快照 • 克隆快照和克隆的特点 克隆快照和克隆的特点 • 快照的定义 快照是云盘数据在某个时刻完整的只读拷贝,是一种便捷高效的数据容灾手段, 常用于数据备份、制作自定义镜像、应用容灾等。 • 快照的特点 • 转储到s3对象存储 • 异步转储快照,底层使用copy-on-write技术,读写不影响转储 • 增量转储,第一次全量转储s3之后,后续只需转储增量部分 • 高可用,快照任务中断自动拉起继续转储快照和克隆的特点 • 克隆的定义 克隆的定义 • 克隆是指从卷复制出卷的功能,提供快速的复制卷的能力。 • 这里的克隆还包括从快照回滚的功能 • 克隆的特点 • 支持Lazy和非Lazy两种模式克隆 • 支持从快照克隆和从镜像(卷)克隆 • 支持从快照回滚 • 高可用,克隆任务中断自动拉起继续克隆快照克隆服务器架构 • 基于brpc提供restful API的对外http接口 HttpService: • Serivc0 码力 | 23 页 | 1.32 MB | 5 月前3CurveFS方案设计
初稿(背景,调研,架构设计) 2021-03-30 李小翠 增加快照部分 2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 调研 开源fs 性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 1. 2. 2. 1. 2. 1. 2. 一个卷对应一个文件系统 文件系统中文件数据和chunk是一对多的关系。 底层 chunk 固定大小,一个 chunk 可以分为多个固定大小的 extent 大文件可以包含多个 chunk, 小文件可以共用 chunk 文件的目录数结构有单独的元数据节点存储 元数据包含两层映射,dentry,inode inode 指向同一个inode 文件系统快照 方案一:文件/目录级别快照 快照是文件系统或卷的只读副本,快照要求可以即时创建。类似 moosefs,curvefs 可以计划支持目录及文件级别的快照,目录级别和文件级别的快照可以认为就是cp的实现。 对于文件/目录级别的快照: 检查目的节点的父节点中是否有同名文件存在: 存在 若源节点类型为TYPE_DIRECTORY则对源节点目录下的所有子文件进行快照 若源节点类0 码力 | 14 页 | 619.32 KB | 5 月前3CloudExplorer 3.0 用户手册v1.2
..........54 杭州飞致云信息科技有限公司 3 4.5 制作云磁盘快照.................................................................................................... 55 4.6 删除云磁盘快照......................................... 超融合基础架构(Hyper Converged Infrastructure,或简称 “HCI”)是指在同一套单元设备中不仅仅具备计算、网络、存 储和服务器虚拟化等资源和技术,而且还包括备份软件、快照技 术、重复数据删除、在线数据压缩等元素,而多套单元设备可以 通过网络聚合起来,实现模块化的无缝横向扩展(scale-out), 形成统一的资源池。比较知名常见的超融合平台有 Nutanix、戴 工作空间用户登录后,选择进入【虚拟机服务】门户,在左边菜单中选择【虚拟机】 打开【虚拟机列表】页面。 (2) 在【虚拟机列表】页面中的虚拟机列表中,找到要变更配置的虚拟机,在其【操作】 下拉菜单中,选择【配置/网络/快照】下【变更规格】打开【虚拟机配置变更】页 面,如图 3-15 所示。 (3) 在【虚拟机配置变更】页面,选择要变更的 CPU、内存配置,如图 3-16 所示, 选择完后点击【提交】,等待管理员审批和系统自动操作变更。0 码力 | 102 页 | 0 Bytes | 1 年前3鸟哥的 Linux 私房菜:基础学习篇 第四版
文件系统阶段 14.3.3 放大 LV 容量: xfs_growfs 14.3.4 使用 LVM thin Volume 让 LVM 动态自动调整磁盘使用率 14.3.5 LVM 的磁盘快照: 创建传统快照, 以快照还原,用于测试环境 14.3.6 LVM 相关指令汇整与 LVM 的关闭 14.4 重点回顾 14.5 本章习题 14.6 参考资料与延伸阅读 第十五章 例行性工作调度 (crontab) 理论上对于每一个纪录单位而言, 它只认识 0 与 1 而已。0/1 这个二进制的的单位我们称为 bit。 但 bit 实在太小了,所以在储 存数据时每份简单的数据都会使用到 8 个 bits 的大小来记录,因此定义出 Byte 这个单位,他 们的关系为: 1 Byte = 8 bits 不过同样的,Byte 还是太小了,在较大的容量情况下,使用 Byte 相当不容易判断数据的大 小,举例来说,1000000 1024K 1024M 1024G 1024T 1024P 1024E 十进制 1000 1000K 1000M 1000G 1000T 1000P 1000E 一般来说,文件大小使用的是二进制的方式,所以 1GBytes 的文件大小实际上为: 1024x1024x1024Bytes 这么大! 速度单位则常使用十进制,例如 1GHz 就是 1000x1000x1000Hz 的意思。 Tips 那么0 码力 | 1158 页 | 13.73 MB | 1 年前3鸟哥的Linux私房菜:基础学习篇 第四版
这个二进制的的单位我们称为 bit。 但 bit 实在太小了,所以在储存数据时每份简单的数据都 会使用到 8 个 bits 的大小来记录,因此定义出 Byte 这个单位,他们的关系为: 1 Byte = 8 bits 不过同样的,Byte 还是太小了,在较大的容量情况下,使用 Byte 相当不容易判断数据的大小,举例来说, 1000000 Bytes 这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单位表达式,例如 1024K 1024M 1024G 1024T 1024P 1024E 十进制 1000 1000K 1000M 1000G 1000T 1000P 1000E 一般来说,文件大小使用的是二进制的方式,所以 1GBytes 的文件大小实际上为:1024x1024x1024Bytes 这么 0.1.6 电脑上面常用的计算单位 (容量、速度等) 2.1. 0.1 电脑:辅助人脑的好工具 - 26 - 本文档使用 于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即是每秒多少 Mbit。举例来说,大家常听到的 20M/5M 光世代传输速度,如果转成文件大小的 Byte 时,其实理论最大传 输值为:每秒 2.5MByte/ 每秒625KByte的下载/上传速度喔! 例题:假设你今天购买了500GB的硬盘一颗,但是格式化完毕后却只剩下460GB左右的容量,这是什么原因?答:因0 码力 | 1057 页 | 14.60 MB | 1 年前3Linux就该这么学 第2版
.................................................................................... 183 7.2.4 逻辑卷快照 .................................................................................................. 用途就是进行数字鉴识和渗透测试,内置有 600 多款网站及系统的渗透测试软件,包 括大名鼎鼎的 Nmap、Wireshark、sqlmap 等。Kali Linux 能够被安装到个人电脑、公 司服务器,甚至手掌大小的树莓派(一款微型电脑)上,可以让人有一种随身携带了 一个武器库的感觉,有机会真应该单独写本书聊聊它。 前 言 26 ➢ Gentoo:Gentoo 翻译为中文是“巴布亚企鹅”。终于找到一个跟 效果,以便进一步满足生产环境对硬盘设备的 I/O 读写速度和数据冗余备份机制的需求。 同时,考虑到用户可能会动态调整存储资源,本章还将介绍 LVM(Logical Volume Manager,逻辑卷管理器)的部署、扩容、缩小、快照以及卸载删除的相关知识。 35 ➢ 8 iptables firewalld :本章讲解了 RHEL 7 中新增的 firewalld 防火墙与先前版本中 iptables0 码力 | 552 页 | 22.25 MB | 1 年前3Curve设计要点
Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查基本架构 • 快照克隆服务器 独立于核心服务 储到支持S3接口的 对象存储,不限制数量 异步快照、增量快照 从快照/镜像克隆 ( lazy/非lazy ) 从快照回滚数据组织形式 • 底层 可用性 / 可靠性 扩展性 / 负载均衡 向上提供无差别文件流 • Application : N chunk有先后关系 • 创建时指定大小,lazy分配chunk • 提供4kb随机读写能力数据组织形式 • PageFile • 地址空间到—>chunk: 1 : N chunk有先后关系 • 创建时指定大小,lazy分配chunk • 提供4kb随机读写能力 • 支撑块设备应用场景 块设备层面的快照功能 即为文件层面快照数据组织形式 • AppendFile • 4K随机写 4K随机读 61.12 % 67.8% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景 高性能高性能 • quorum机制:raft • 轻量级快照 • io路径上的优化 • filepool落盘零放大 • 轻量级线性一致性读 • io路径上用户空间零拷贝 10卷4K随机读写IOPS 294k 185k 330k 565k 4K随机写0 码力 | 35 页 | 2.03 MB | 5 月前3Curve核心组件之chunkserver
管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器CURVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化Curve ChunkServer是数据节点, CliService。成员变更相关操作 • CopySetService。创建copyset等操 作 • RaftService。Braft内置的service, 完成raft成员之间的选举,日志复制, 安装快照等操作。 ChunkServer架构CopysetNode封装了braft的Node,并 实现了braft的状态机,完成与raft的交 互。详细交互流程后面展开。 CopysetNodeManager负责管理 apply后再执行后面的操作。 ChunkServer架构CloneManager主要负责克隆相关的功 能,内部是一个线程池,主要负责异 步完成克隆chunk的数据补全。关于克 隆相关的内容将会在快照克隆相关介 绍文档中详细介绍。 ChunkServer架构Metric统计模块使用brpc中的bvar计数 器,统计一些IO层面和copyset层面的 一些指标,方便监控和跟踪。 Chun0 码力 | 29 页 | 1.61 MB | 5 月前3Debian 参考手册(版本 2.109)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 9.17 报告的内存大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 些人可能觉得这看起来有 点可笑,这里故意保留这种风格是为了让文档看起来尽可能的简单。这些名词短语在短命令描述约定里并不会采用首 字母大写的方式。 注意 无论专有名词和命令名位于何处,保持其英文字母大小写不变。 在文本段落中引用的命令片断由双引号括起来的打印机字体进行标记,就像”aptitude safe-upgrade”。 在文本段落中引用的来自配置文件的文本数据由双引号括起来的打印机字体进行标记,就像”deb-src”。 的系统有效 的禁用了“投票(vote)”功能。 软件包大小 软件包的大小数据同样表明了对每个包的客观衡量。它基于“apt-cache show”或“aptitude show”命令(目 前在 amd64 架构的不稳定版)报告的“安装大小”。报告的大小单位是 KiB(Kibibyte= 表示 1024 Bytes 的单位)。 注意 包大小是一个小数值的包可能显示了这个在“不稳定”版的包是一个虚拟包,它包含关于依赖关系的重要内容,会0 码力 | 261 页 | 1.39 MB | 1 年前3
共 74 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8