NJSD eBPF 技术文档 - 0924版本
采⽤eBPF加速云原⽣环境中 Curve⽂件系统性能 ⽹易数帆科技 向东提纲 • 什么是Curve • Curve的应⽤场景及挑战 • Curve客户端⾯临问题及分析 • 什么是ebpf • 基于epbf的Curve Cache设计 • Curve社区介绍Curve是什么? • Curve云原⽣软件定义存储 • Curve分布式块存储 • Curve分布式⽂件存储 共享data cache的映射 • GETATTR流程 • ⽂件读取流程 • 相关⼯作 • extFUSE • google android12 passthrough什么是eBPF • ebpf是不同环境下内核配置, 调试,监控⼯具 • map映射 • 验证器 • Hook • Helper api配置TCP Initial RTO • 场景 内核4.12之前 Curve⽂件系统采⽤cache来提升性能,对象存储来降低成本 • ⽬前⾯临Curve⽂件系统客户端延迟较⼤的问题 • 解决延迟有ld_preload以及ebpf的⽅式,各有优缺点 • 使⽤ebpf可以在内核中直接读取cache数据,并返回,降低了延迟。 • 介绍了ebpf基于FUSE的cache设计THANKS0 码力 | 20 页 | 7.40 MB | 5 月前3腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明
TKE使用eBPF优化 k8s service Jianmingfan 腾讯云 目录 01 Service的现状及问题 优化的方法 02 和业界方法的比较 性能测试 03 04 解决的BUG 未来的工作 05 06 01 Service的现状及问题 什么是k8s Service • 应用通过固定的VIP访问一组pod,应用对Pod ip变化 无感知 • 本质是一个负载均衡器 兼顾产品的稳定性,功能足够丰富 弯路 • 为什么DPDK不行? • 独占cpu,不适合分布式的lb • 为什么纯粹的eBPF方法不行 • 不够成熟 eBPF 简介 • 编写eBPF程序 • 编译成eBPF中间代码 • 注入内核 • 挂载到network traffic control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT 绕过conntrack 技术创新点二 • 在linux traffic control上挂一段eBPF 代码,在网卡出报文之前做SNAT • 尽量将大部分代码放在eBPF中,方便升级和维护。 • eBPF loader 创建eBPF map时,将map的id 传给IPVS内核模块 • 在ip_vs_new_conn 时,插入eBPF map • (protocol, clientip:cport -> targetip:dport)0 码力 | 27 页 | 1.19 MB | 9 月前325-云原生应用可观测性实践-向阳
complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 解决团队耦合的问题 —— “演进”的思路 https://ebpf.io/ simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved 50亿$ 200亿$ 500亿$ 问题:依赖于eBPF,仅支持Kernel 4.15+ simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 业界动向 —— 云厂商监控 阿里云ARMS 问题:依赖于eBPF,仅支持Kernel 4.15+、仅阿里云(K8s需托管) complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 业界动向 —— 开源APM Skywalking 问题:eBPF的内核依赖问题 simplify the growing complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights0 码力 | 39 页 | 8.44 MB | 5 月前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
一,比如云端Mesh和边缘Mesh由于API的统一,可以使用统一的控制面(配置下发管 理)来实现统一管理和统一服务化抽象,并向应用角度抽象,降低用户使用成本。 iptable iptable eBPF eBPF ServiceMesh-2 上文提到了ServiceMesh的原理,并说它向应用方向抽象为研发简化使用网格的方式,思路就在基础设施即代码上 Spring Cloud • Spring-Cloud-Netfix0 码力 | 42 页 | 11.17 MB | 5 月前3七牛容器云ServiceMesh实践
Kubernetes + Docker + 生态链七牛容器云产品未来发展 • 更多功能 • 故障熔断 • 故障注入 • 业务配置动态分发 • 优化升级 • 性能优化: • DPDK + eBPF • 系统优化 • 根据需求裁剪Istio。解耦Envoy和其他组件 • 裁剪Istio相关CRD,简化系统结构ServiceMesher公众号 SOFAStack公众号 http://www0 码力 | 15 页 | 3.86 MB | 5 月前3SOFAMesh的通用协议扩展
自己做控制平面KUBERNETES NATIVE 微服务 • 使用 Kubernetes 作为注册中心 • Service • Endpoint • Pod • 使用 DNS 寻址 • 使用 iptables/ebpf 透明地路由所有网络流量 • 服务治理规则,服务,实例和配置都是 Kubernetes 资源 • 使用 Controller Pattern 通过 CRD 扩展新的能力 • …MESH 落地碰到的问题0 码力 | 28 页 | 4.73 MB | 5 月前3SOFAMOSN持续演进路径及实践分享
Rzone内不 存在B服务, 尝试在本机 房内部查找 3. 若当前机 房内不存在 B服务,路 由到Gzone 机房UC落地 - XProtocol DNS方案规划 & 展望MOSNG 待开源MOSN-X eBPF 加速卡 DPDK MOSN SSL Offload User Protocol Stack K8S Ingress Microservice Frontend & Gateway0 码力 | 29 页 | 7.03 MB | 5 月前3蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘
倍 ØGolang 对 SHA, MD 等 HASH 算法都有汇编优化 Ø除 p384,RSA 外,其他算法 golang 原生性能好于boring SSL golang性能优化规划 15 eBPF Keyless Center 加速卡 DPDK MOSN 用户态 内核态 加速设备 1. SSL handshake 2. Offload decrypt Offload encrypt/decrypt50 码力 | 44 页 | 4.51 MB | 5 月前3sealos 以 kubernetes 为内核的云操作系统
Cilium + BPF 实现流量统计 Slide source credit to: How to Make Linux Microservice-Aware with Cilium and eBPF (InfoQ, 2019) 集群生命周期管理 创建集群 装其它应用 增删集群节点 离线交付 sealos build 轻量级负载均衡器 完全取代 Haproxy Keepalived0 码力 | 29 页 | 7.64 MB | 9 月前3严选 ServiceMesh 实践
策略执行的替代品, Istio 的 RBAC 也是可以满足一部分功能的,比如服务白名 单我们就是通过 RBAC 来实现21/24 规划与展望 /0422/24 性能优化方向 • 方案1: 采用 eBPF/xDP(sockops),优化路径为 SVC <-> Envoy,延迟性能提升10-20%。 Envoy 部署方式 per-pod,跟社区方向一致,也是目前严选采用的部署方案。 • 方案2:0 码力 | 25 页 | 2.07 MB | 5 月前3
共 12 条
- 1
- 2