Apache Pulsar,云原生时代的消息平台 - 翟佳
Apache Pulsar 云原⽣时代的消息平台 翟佳 streamnative.io ⾃我介绍 • 开源项⽬爱好者: • Apache Pulsar PMC成员 • Apache BookKeeper PMC成员 • EMC -> StreamNative • 华中科⼤ -> 中科院计算所 • Pulsar 的根本不同 • Apache Pulsar 简介 • Pulsar 要解决的问题 • 企业需求和数据规模 • 多租户 - 百万Topics - 低延时 - 持久化 - 跨地域复制 • 解除存储计算耦合 • 运维痛点:替换机器、服务扩容、数据 rebalance • 减少⽂件系统依赖 • 性能难保障: 持久化(fsync)、⼀致性(ack: all)、多Topic • IO不隔离:消费者读Backlog的时候会影响其他⽣产者和消费者 streamnative.io Apache0 码力 | 39 页 | 12.71 MB | 5 月前0.03CurveFs 用户权限系统调研
1 of 33 CurveFs 用户权限系统调研(已实现)© XXX Page 2 of 33 一、Curvefs测试 1. 启动curvefs 问题1:root用户无法访问挂载目录 测试 allow_root 测试allow_other 参考文献 问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access Control Lists)的管理 ACL Access Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 Inode 相关联 如何存储和获取ACL信息 Inode权限校验 chmod、chown、setfacl、getfacl接口文件系统自己如何实现 结论: 参考文献: 一、Curvefs测试 Page 4 of 33 查阅资料发现这是fuse的一种安全策略,默认是只有filesystem owner拥有该文件系统的访问权限,如果想要其他用户有权访问,需要在挂载参数中指定‘-o allow-root’ 或'-o allow-other'以允许相应用户有权访问该文件系统,如果挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配0 码力 | 33 页 | 732.13 KB | 5 月前3Curve文件系统元数据管理
© XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 hardlink:生成一个hardlink /B/E,指向文件/A/C 6、curve文件系统的多文件系统的设计 1、设计一个分布式文件系统需要考虑的点: 文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 stl unordered_map moose,使用c实现 4、curve文件系统的元数据内存组织 curve文件系统元数据主要有3个类型,inode, dentry, 。 extent 4.1 inode定义: inode定义见:curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 5 of 24 typedef uint64_t0 码力 | 24 页 | 204.67 KB | 5 月前3Curve文件系统空间分配方案
Curve文件系统空间分配方案(基于块的方案,已实现)© XXX Page 2 of 11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块进 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑 。 局部性 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录的extent数量很多,导致文件系统元数据量很大。© XXX Page 3 of 11 假如文件系统大小为1PiB,空间分配粒度为1MiB,inode中存储的e0 码力 | 11 页 | 159.17 KB | 5 月前3Curve文件系统元数据Proto(接口定义)
XXX Page 1 of 15 curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 2 of 15 1、代码结构和代码目录 curve文件系统是相对于curve块设备比较独立的一块,在当前curve项目的目录下,增加一个一级目录curvefs,curvefs下有自己独立的proto\src\test。 2、文件系统proto定义 2.1 mds.proto0 码力 | 15 页 | 80.33 KB | 5 月前3Curve文件系统元数据持久化方案设计
0 码力 | 12 页 | 384.47 KB | 5 月前3使用Chaos Mesh来保障云原生系统的健壮性-周强
云原生社区Meetup 第三期·杭州站 使用 Chaos Mesh 来保障云原生系统的健壮性 演讲人:周强 GitHub 地址:https://github.com/zhouqiang-cl PingCAP 工程效率负责人,ChaosMesh 负责人 云原生社区Meetup 第三期·杭州站 The incident in the production environment0 码力 | 28 页 | 986.42 KB | 5 月前3深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统
深入 Kubernetes 的“无人区” —— 蚂蚁金服双十一的调度系统 曹寅2/19 一、蚂蚁金服的Kubernetes现状 二、双十一Kubernetes实践 三、展望未来迎接挑战 目 录 contents 目录3/19 一、蚂蚁金服的Kubernetes现状 Part 1:4/19 发展历程与落地规模 Part 1:蚂蚁金服的Kubernetes现状 平台研发 灰度验证 灰度验证 云化落地 规模化落地 2018年下半年开始投 入 Kubernetes 及其配 套系统研发 2019年初于生产环境 开始灰度验证,对部分 应用做平台迁移 2019年4月完成云化环境 适配,蚂蚁金服云上基础 设施全部采用 Kubernetes 支撑618 2019年7月到双十一前完成 全站 Kubernetes 落地,超过 90% 的资源通过 Kubernetes 分配,核心链路100%落地支撑0 码力 | 19 页 | 2.18 MB | 5 月前324-云原生中间件之道-高磊
和降低成本 默认安全策略,可以天然的规避大部分 安全问题,使得人员配置和沟通工作大 量减少,提高了整体效率! 安全右移是为了恰到好处的安全,一些非严 重安全问题,没有必要堵塞主研发流程,可 以交于线上安全防御系统。提高了整体实施 效率! 安全编排自动化和响应作为连接各个环 节的桥梁,安全管理人员或者部分由 AIOps组件可以从全局视角观察,动态 调整策略,解决新问题并及时隔离或者 解决! DevSecOps 术手段 可以自动化的对非预计风险进行识别和风险隔离 对系统性能有一定影响 可信计算 核心目标是保证系统和应用的完整性,从而保证系统按照设计预期所规 定的安全状态。尤其是像边缘计算BOX这种安全防护,根据唯一Hash值验 证,可以实现极为简单的边云接入操作,运行态并不会影响性能。 可信根一般是一个硬件,比如CPU或者TPM,将从 它开始构建系统所有组件启动的可信启动链,比 如UEFI、loader、OS、应用等,可以确保在被入侵 Oracle 云原生 数据一体机 存储架构 存算一体: 调整困难、只能满 足一定的吞吐量要 求 存算分离: 自动调整、拓展能 力强,满足更大吞 吐量 存储自动扩缩容 手工填加机器, 手工同步 完全自动化 高性能 存在性能瓶颈 类似日志方式的顺 序写,性能高 易用程度 封闭体系,集成各 类优秀能力较差 集成能力强,多模 态接口,兼容各类 协议 可用性、稳定性 需要强大的旁路运 维能力 简化运维、自动化 容量和故障转移0 码力 | 22 页 | 4.39 MB | 5 月前3Raft在Curve存储中的工程实践
陈威Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化项目背景 Curve是一个 高性能、更稳定、易运维 的 云原生 分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 对接OpenStack平台为云主机提供高性能块 存储服务 • 对接Kubernetes为其提供RWO、RWX等类 型的持久化存储卷 • 对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 系统开源社区 社区运营 社区运营 生态共建 开源共建 源码兜底 技术领先 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 什么是raft • raft 是一种新型易于理解的分布式一致性复制协议,由斯坦福大学的Diego0 码力 | 29 页 | 2.20 MB | 5 月前3
共 81 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9