Curve质量监控与运维 - 网易数帆监控——直观地展示Curve运行状态; 运维——保障Curve始终稳定高效运行。 质量 ✓ 质量管理体系(设计、开发、review、CI) ✓ 测试方法论(单元测试、集成测试、系统测试) 监控 ✓ 监控架构 ✓ 指标采集、后端处理、可视化展示 运维 ✓ 运维特性 (易部署、易升级、自治) ✓ 运维工具(部署工具、管理工具) 4/33背景 01 02 03 04 Curve质量控制 Curve监控体系 bvar数据 定时获取图表 并发送邮件 获取集群拓扑信息 Curve利用brpc内置的bvar组件生成监控指标,并 使用部署在docker的三个组件进行监控指标的处 理与展示: Prometheus——面向云原生应用程序的开源 的监控&报警工具,curve利用它进行监控指标 的采集与存储。 Daily reporter——python脚本,定时从 Grafana获取指定集群的图表,生成集群监控 curve利用它进行数据可视化展示。 20/33监控指标(metric)的生成 Curve使用brpc内置的bvar计数器类库,来生成监控指标,其特点是: thread local存储,减少了cache bouncing,性能开销极小; 支持在 brpc server 服务的端口上以web portal的方式导出和查询监控指标: 常用的bvar数据类型: bvar::Adder0 码力 | 33 页 | 2.64 MB | 6 月前3
MySQL 兼容性可以做到什么程度阿里云数据库解决方案架构师为什么要兼容 MySQL 01 The longer you look back, the farther you can look forward.也从阿里巴巴的“去IOE”运动说起 业务驱动下的分布式技术实践之路 5月17日,支付宝最后一台小型 机下线标志去IOE落下帷幕 首次双十一大考卡顿半分钟后稳 定度过 7月,TDDL+AliSQL首次验证支 持核心库 无法弹性扩展 成本高 02 If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck.业务系统 上游 Single Source of Truth 问题背景 数据孤岛怎么办? 下游MySQL 怎么做 Binlog Maxwell DebeziumPolarDB-X 完全兼容 MySQL Debezium • Streamsets • mysql-binlog-connector-java • Flink CDC 性能指标 • 25w rps • 8GB 大事务 • 5s 延迟* 下一步 • 验证更多工具 • GTID • 多流业务系统 上游 Single Source of Truth 问题背景 已有系统迁移怎么办? 下游Demo for ReplicationPolarDB-X0 码力 | 18 页 | 3.02 MB | 6 月前3
新一代云原生分布式存储大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 易运维 运维场景 Curve Ceph 加盘 对IO无影响 秒级io影响 服务端升级 对IO无影响 重启管控面IO无影响,重启osd io秒级影响 客户端升级 热升级,秒级抖动 不支持热升级,需要业务停服 集群监控 丰富的metric metric类型较少主要亮点 — 更稳定 异常场景 Curve Ceph 坏盘 基本无抖动 无明显抖动 慢盘 io持续抖动,但util未100% io持续抖动,util持续100% link Curve 85.4% 89% curve Ceph 37.1% 43.3% ceph应用情况 Curve 在网易集团内有大规模的生产应用 为核心业务提供稳定的存储服务,单集群存数万个卷,储容量PB级别 网易集团内部业务: • 网易严选,网易云音乐 网易有道,网易游戏 网易Lofter,云信 在集团外有联合开发用户和测试用户0 码力 | 29 页 | 2.46 MB | 6 月前3
Curve文件系统元数据管理fsid+parentId+name , value : struct dentry; 分别从不同场景上进行分析,curve文件系统的元数据应该有以下的操作: 1、系统加载的时候,元数据从持久化介质加载。 2、业务运行过程中,元数据的增删改查。 3、系统退出的时候,元数据持久化。© XXX Page 7 of 24 场景一:系统加载的时候,元数据从持久化介质中加载。 元数据进行恢复的时候,有两种情况。 我们的文件系统定位是一个高性能的通用文件系统,元数据的缓存倾向于全缓存。 系统加载的时候从持久化介质中进行加载,需要把一条条持久化的记录加载到内存里。实现把string转化为inode结构体,再插入内存结构中。 场景二:业务运行过程中,元数据的增删改查。 如果采用raft的方式对元数据持久化进行保证,所有元数据的处理都是先写WAL,再修改内存结构。那么任何对元数据的增删改查,对应着一条记录,根据记录去修改内存数据。 。 场景三:系统退出的时候,元数据的持久化 如果采用raft的方式对元数据持久化,任务数据的修改都先持久化再修改内存。那么就不存在的系统推出的时候对元数据持久化。 对业务逻辑进行进一步抽象,忽略业务细节,会发现,元数据的内存管理需要提供这些功能。收到一条record,解析record,然后根据不同的opcode在内存对元数据进行处理。 伪码如下:© XXX Page 8 of 240 码力 | 24 页 | 204.67 KB | 6 月前3
Raft在Curve存储中的工程实践2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 • 稳定性挑战 • 算力平台kubernetes的迅速发展 • AI/大数据业务的快速增长 • 存储使用Ceph文件存储/HDFS • 成本/性能挑战 Curve块存储和文件存储均采用raft协议整体架构 • 对接OpenStack平台为云主机提供高性能块 存储服务 ft,tikv等。 • braft是raft的一个实现,实现了raft的一致性协议和复制状态机,而且提供了一种通用的基础库。基 于braft,可以基于自己的业务逻辑构建自己的分布式系统。 • braft本身不提供server功能,需要业务自己实现状态机。 Node(一个raft实例) int init(const NodeOptions& options); void apply(const0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve核心组件之chunkserver步完成克隆chunk的数据补全。关于克 隆相关的内容将会在快照克隆相关介 绍文档中详细介绍。 ChunkServer架构Metric统计模块使用brpc中的bvar计数 器,统计一些IO层面和copyset层面的 一些指标,方便监控和跟踪。 ChunkServer架构并发控制层,负责对chunkserver的IO 请求进行并发控制,对上层的读写请 求安照chunk粒度进行Hash,使得不同 chunk的请求可以并发执行。0 码力 | 29 页 | 1.61 MB | 6 月前3
Curve 分布式存储设计抖动Curve文件存储 1. 元数据服务 2. 高性能 3. 可扩展易运维 4. 云原生 设计目标Curve文件存储 1. 兼顾性能与容量的机器学习 场景 2. 快速跨云弹性发布的业务 3. 低成本大容量需求的业务 4. 中间件冷热数据自动分离 5. S3和POSIX统一访问需求 主要挑战和支持场景Curve Roadmap 1. 架构 1. 文件存储支持分布式缓存、完善冷热数据分层存储能力0 码力 | 20 页 | 4.13 MB | 6 月前3
CurveFS方案设计blk=4k, 需要bitmap的大小为640MB blk=64k, 需要bitmap的大小为40MB 在设计过程中,对于每个文件系统,blk应该是可以根据业务形态来配置的 bitmap重建时间? 如果通过获取所有inode,重建出当前的空间分配情况,我们常见的业务形态有以下两种: ① 在AI训练等场景,文件的目录层级较少,文件数量较多,文件较小。这种情况inode比较聚集,一般分布在几个复制组上。inode数量多。0 码力 | 14 页 | 619.32 KB | 6 月前3
Curve设计要点leader copyset scatter-width • 无需人工干预 • 对io影响几乎无影响易运维 • 升级秒级影响 • 客户端采用CS架构 • NEBD Client: 对接上层业务 • NEBD Server: 接受请求 调用Curve Client处理 • 升级只需重启Server 秒级影响易运维 • 丰富的metric体系 • prometheus + grafana0 码力 | 35 页 | 2.03 MB | 6 月前3
Curve核心组件之Client - 网易数帆U进 程进行重启。NEBD 整体介绍 在QEMU和Curve Client中间加入热升级模块,避 免直接依赖 热升级模块是CS结构: NEBD Client(part1):只包含轻量的业务逻辑, 以链接库的形式提供给QEMU使用 NEBD Server(part2):将NEBD Client的请求转 发到Curve Client 升级过程只需要重启NEBD Server即可,IO可在0 码力 | 27 页 | 1.57 MB | 6 月前3
共 11 条
- 1
- 2













