- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
设计云文件系统和日志归档场景中Apache DolphinScheduler的实践
展开查看详情
1 .如何设计一个云文件系统 与 Ngnix 和 DS 中日志归档的实践 https://github.com/juicedata/juicefs 苏锐,Juicedata 合伙人
2 .目录 CONTENT 01 文件存储的历史与发展 02 云上的痛点与挑战 03 JuiceFS 的设计哲学 04 使用场景与实践
3 .文件存储的历史与发展 云原生分布式 文件系统 对象存储 JuiceFS S3 … 第一代软件 OSS 定义分布式 CephRGW 文件系统 MinIO 软硬件一体 … GlusterFS NAS CephFS HDFS NetApp … … 局域网时代 互联网时代 移动互联网时代 云原生时代 1995 - 2005 2005 - 2015 2010 - 2020 2015 - NOW
4 .云上文件存储痛点与挑战 软硬件一体NAS 专有硬件 不易扩展 缺少高可用 TCO 高 POSIX 局域网时代 互联网时代 移动互联网时代 云原生时代
5 .云上文件存储痛点与挑战 软硬件一体NAS 第一代软件定义 分布式文件系 统 专有硬件 标准硬件 不易扩展 不易扩展 缺少高可用 缺少高可用 TCO 高 运维挑战高 POSIX TCO 低 POSIX & HDFS 局域网时代 互联网时代 移动互联网时代 云原生时代
6 .云上文件存储痛点与挑战 软硬件一体NAS 第一代软件定义 对象存储 云原生分布式文件系 统 分布式文件系 统 专有硬件 标准硬件 易扩展 不易扩展 不易扩展 高可用 缺少高可用 缺少高可用 TCO 低 TCO 高 运维挑战高 服务化,免运维 POSIX TCO 低 海量对象管理 POSIX & HDFS 访问接口功能少 元数据操作性能差 最终一致性 局域网时代 互联网时代 移动互联网时代 云原生时代
7 .云上文件存储痛点与挑战 软硬件一体NAS 第一代软件定义 对象存储 云原生分布式文件系 统 分布式文件系 统 专有硬件 标准硬件 易扩展 不易扩展 不易扩展 高可用 缺少高可用 缺少高可用 TCO 低 TCO 高 运维挑战高 服务化,免运维 POSIX TCO 低 海量对象管理 POSIX & HDFS 访问接口功能少 元数据操作性能差 搬到云上并不低 最终一致性 再看看这几项的影响 局域网时代 互联网时代 移动互联网时代 云原生时代
8 . 对象存储与文件系统的区别 访问与编程方式 S3FS,Goofys 可以把 S3 bucket 挂载到系统 中以 POSIX 方式访问,但无法提供: POSIX HDFS S3 文件系统标准 Append-only 文件系统 Only RESTful API - 强一致性保证; 30 年积累的应用生态 大数据生态标准 - 高性能 Listing; - 原子的 rename; - 文件的随机写;
9 . 对象存储与文件系统的区别 访问与编程方式 S3FS,Goofys 可以把 S3 bucket 挂载到系统 中以 POSIX 方式访问,但无法提供: POSIX HDFS S3 文件系统标准 Append-only 文件系统 Only RESTful API - 强一致性保证; 30 年积累的应用生态 大数据生态标准 - 高性能 Listing; - 原子的 rename; - 文件的随机写; S3 API 没有 Rename API, 那要怎么办?
10 .对象存储与文件系统的区别 如何实现 Rename ? > mv /foo /bar
11 .对象存储与文件系统的区别 如何实现 Rename ? > mv /foo /bar
12 .对象存储与文件系统的区别 如何实现 Rename ? > mv /foo /bar
13 .对象存储与文件系统的区别 如何实现 Rename ? > mv /foo /bar Rename 过程没有事务保证 最终一致性
14 .云时代,文件存储的痛点与挑战 软硬件一体NAS 第一代软件定义 对象存储 云原生分布式文件系 统 分布式文件系 统 专有硬件 标准硬件 易扩展 不易扩展 不易扩展 高可用 缺少高可用 TCO 高 缺少高可用 运维挑战高 TCO 低 服务化,免运维 ? POSIX TCO 低 海量对象管理 POSIX & HDFS 访问接口功能少 元数据操作性能差 最终一致性 局域网时代 互联网时代 移动互联网时代 云原生时代
15 .JuiceFS 的设计目标 多维度,多场景 规模 扩展性 可用性 性能 多机访问 成本
16 .JuiceFS 的设计目标 多维度,多场景 架构的设计 规模 为云环境设计 扩展性 元数据与数据分离 可用性 插件式引擎 性能 多访问协议 多机访问 Simple is better 成本
17 .JuiceFS 的设计目标 多维度,多场景 架构的设计 关键能力 规模 为云环境设计 高可用 扩展性 元数据与数据分离 高性能 可用性 插件式引擎 强一致性 性能 多访问协议 POSIX,HDFS,S3 API 多机访问 Simple is better 弹性伸缩 成本 服务化,免运维 多云、跨云支持 海量小文件管理 缓存加速 TCO 低
18 .JuiceFS 的架构设计
19 .JuiceFS 的架构设计
20 .JuiceFS 的架构设计
21 .JuiceFS 的架构设计
22 .JuiceFS 的架构设计
23 .JuiceFS 的使用场景与实践 - DevOps - 日志归档; - 备份 - Kubernetes Persistent Volume - 支持 CSI 标准,为容器平台提供共享文件存 储能力; - Big Data - HDFS 兼容,支持各种 Hadoop 2.x & 3.x 和各种发行版; - 存储计算分离,简化运维,提升资源利用率,通 过缓存加速获得高性能; - 数据库 Data Tiering,支持 Clickhouse、Elasticsearch、MatrixDB、TDengine 等; - AI, MLOps - POSIX, HDFS, S3 API 支持 Data Pipeline 每个环节的需求; - 缓存加速,在 ETL、Training、Inference 等环节效果明显; - 海量小文件管理,在人 脸识别、自动驾驶 等领域是刚需; - 支持 Fluid;
24 .JuiceFS 的使用场景与实践 # logrotate configuration /var/log/nginx/*.log { 豆瓣使用 JuiceFS 做日志归档 daily # 每天滚动一次 compress dateext # 把日期添加到文件名中 sharedscripts 收益: postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat ● 稳定支撑数十万并发的写日志场景; /var/run/nginx.pid` # 重新加载日志文件 ● 存储弹性扩容,提升效率,节省成本; endscript lastaction ● 查询方便,兼容所有 Linux 命令行工具; # 把压缩好的日志同步到 JuiceFS ● 对用户完全透明的跨云访问和跨云数据迁移。 rsync -au *.gz /jfs/nginx-logs/`hostname -s`/ endscript } Producer Consumer Producer Scribe Consumer JuiceFS Producer Consumer https://juicefs.com/blog/cn/posts/backup-nginx-logs-on-juicefs/
25 .JuiceFS 的使用场景与实践 DolphinScheduler 日志归档 ● Since Web (UI) and Worker are not always on the same machine, to view the log cannot be like querying a local file. There are two options: # The third option ● Put logs on the ES search engine. - 通过 logrotate 定时转存日志到 JuiceFS 目录; ● Obtain remote log information through netty - 直接写到 JuiceFS 目录。 communication. # The fourth option ● We use the customized FileAppender and Filter - ES 可以设置 TTL 将温冷数据 转存到 JuiceFS。 - https://juicefs.com/blog/cn/posts/gaoding-with-juicefs/ functions from Logback to implement each task instance generates one log file. ● Generate logs in the form of /process definition id /process instance id /task instance id.log https://dolphinscheduler.apache.org/en-us/docs/latest/user_doc/architecture/design.html
26 .Recap - JuiceFS 为云环境设计 - POSIX, HDFS 和 S3 兼容互通 - 适合归档 DolphinScheduler 日志 - 也适用于 K8s, Big Data, AI 和云上 NAS 需求 - 开源 github.com/juicedata/juicefs