Curve质量监控与运维 - 网易数帆例: Given —— 测试上下文 When —— 执行一系列操作 Then —— 得到一系列可观察的后果,即需要检测的断言·异常自动化测试实践 Robotframework 支持python关键字,灵活定义测试 完善的测试报告 完美兼容Jenkins ci 丰富的第三方库(ssh, paramiko, request等) 用例设计原则 无需绑定特定环境,“随意拉起” 使用部署在docker的三个组件进行监控指标的处 理与展示: Prometheus——面向云原生应用程序的开源 的监控&报警工具,curve利用它进行监控指标 的采集与存储。 Daily reporter——python脚本,定时从 Grafana获取指定集群的图表,生成集群监控 日报,并通过邮件发送。 Grafana——开源的度量分析和可视化工具, curve利用它进行数据可视化展示。 20/33监控指标(metric)的生成0 码力 | 33 页 | 2.64 MB | 6 月前3
副本如何用CLup管理PolarDB网易研究院开发专家,从事过阿里巴巴Greenplum、 PostgreSQL、 MySQL数据库的架构设计和运维。 既熟悉数据库的,是最早的Oracle 9i的OCP,又懂开 发,精通C、python。 唐成(网名osdba)-3- @ 专业的PostgreSQL数据库管理平台 CLup介绍CLup产品介绍 网络 clup-agent 数据库主机1 clup-agent 数据库主机20 码力 | 34 页 | 3.59 MB | 6 月前3
Curve核心组件之Client - 网易数帆 MDSClient:负责与MDS交互,挂卸载卷、获取元数据信息 CLIENT整体架构QEMU: 实现了QEMU block与Client的对接层 向cinder/glance提供了Python API https://github.com/opencurve/curve-qemu-block-driver NBD: 实现了Curve-NBD,与内核NBD模块进行交互 可以作为容器的数据存储0 码力 | 27 页 | 1.57 MB | 6 月前3
CurveFS对接S3方案设计4M/1G(待定),chunk内部会划分为多个block,每个block最大4M,每个block对应s3上一个object。 s3上对象已chunkid_indexblock_version进行命名,元数据则已S3ChunkInfo(见数据结构)的方式存储在inode中。对于文件顺序写场景,文件0~4M的s3对象必然为chunkid_0_0,4M~8M为chunkid_1_0,以此类推, 还有一种情况是文件先写了0~2M,然后在写2M~4M,这里会采用append到同一个对象的方式进行写,而不是额外upload到一个新的对象;元数据则为{2,0,0,8M}。对于覆盖写,为了区分新老数据,则会对version进 行++,比如覆盖写了0~4M,则数据会写到chunkid_0_1的对象,则元数据包含了2个S3Chunkinfo{2,0,0,8M}和{2,1,0,4M}。 接口和关键数据结构 common of 11 // inodes3chunk message S3ChunkInfo { required uint64 chunkId = 1; required uint64 version = 2; required uint64 offset = 3; required uint64 len = 4; // file logic length required0 码力 | 11 页 | 145.77 KB | 6 月前3
CurveFs 用户权限系统调研This is the first request sent by the kernel to the daemon. It is used to negotiate the protocol version and other filesystem parameters. struct fuse_init_in { uint32_t major; uint32_t minor; uint32_t file operations and as a parameter to the * destroy() method. * * Introduced in version 2.3 * Changed in version 2.6 */ void *(*init) (struct fuse_conn_info *conn); // libfuse include/fuse_common // unsigned want; struct fuse_conn_info { /** * Major version of the protocol (read-only) */ unsigned proto_major; /** * Minor version of the protocol (read-only) */ unsigned proto_minor;0 码力 | 33 页 | 732.13 KB | 6 月前3
CurveFS S3数据整理(合并碎片、清理冗余)[s3chunkinfo(s)] s3chunkinfo { chunkid version // write always 0, compact will increase it offset len } s3 object命名: chunkid_version_index (index为obj在chunk内的index) 执行步骤 数据整理作为一个后台服务(线程池) ,compaction+1,chunkid为上一步获取的chunkid,为需要新增的obj - 老的obj为全部需要删除的部分 应用变更 - 先读写新增的s3 objects列表, 由于新增了version字段, 不会涉及到覆盖老的对象 - 加锁, 增量的更新inode的s3chunkinfolist, 保证原子更新, 更新失败回退新增数据 - 等待N秒, 保证mds已经告知client缓存失效,0 码力 | 3 页 | 101.58 KB | 6 月前3
Curve文件系统元数据Proto(接口定义)proto mds.proto /* * Copyright (c) 2020 NetEase Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You metaserver.proto /* * Copyright (c) 2020 NetEase Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You proto space.proto /* * Copyright (c) 2020 NetEase Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You0 码力 | 15 页 | 80.33 KB | 6 月前3
Curve for CNCF MainSupport Operator capability level 5 (in Plan) • now support helmCurrent Status • Release 2 major version on CurveBS • v1.2 supporting QOS, Discard, data silent check • v1.3 some performance optimization capability level 2: automated application provisioning and configuration management and patch and minor version upgrads supported • File meta data preallocate • RAFT optimization • ParallelRaft for write0 码力 | 21 页 | 4.56 MB | 6 月前3
Curve核心组件之snapshotcloneSnapFile的命名方式为“chunk_” + ChunkId + “_snap_”+ seqNum的形式,以区别于 ChunkFile。CHUNKSERVER端快照实现-SNAPFILE 字段 类型 说明 version uint8_t 文件格式协议 版本号 demaged bool 损坏标记 sn uint64_t 快照版本号 bits uint32_t 位图的位数 bitmap char[] 位图 安装元数据时即分配好chunk。 无额外接口: 无需Flatten接口。 适用场景: 适用于从云主机或快照创建镜像CHUNKSERVER端克隆实现-CHUNKFILE 字段 类型 说明 version uint8_t 文件格式协议版本号 sn uint64_t chunk文件的版本号 correntSn uint64_t chunk的修正版本号 locationSi ze size_t0 码力 | 23 页 | 1.32 MB | 6 月前3
Curve文件系统元数据持久化方案设计12 Raft Snapshot +---------+---------+------+-----------------+-----+-----------+ | CURVEFS | version | size | key_value_pairs | EOF | check_sum | +---------+---------+------+-----------------+-----+-----------+ ---------+ 持久化文件 字段 字节数 说明 CURVEFS 7 magic number(常量字符 "CURVEFS"),用于标识该文件为 curvefs 元数据持久化文件 version 4 文件版本号(当文件格式变化时,可以 100% 向后兼容加载旧版持久化文件) size 8 键值对数量 key_value_pairs / 键值对(当 size 为 0 时,该字段为空)0 码力 | 12 页 | 384.47 KB | 6 月前3
共 14 条
- 1
- 2













