分布式存储漫游指南

分布式存储技术探索之旅 by SPtuan

分布式存储漫游指南

GitHub Stars GitHub Blog Email

本漫游指南从现代数据中心硬件、单机 IO 性能出发,逐步探索分布式的存储产品的现状和技术点。

在笔者入门时,阅读了众多开发者的博客文章和技术讨论,受益匪浅。

始终困顿于没有一本系统的 “技能书”,让学习者能够在起步之初,即能快速厘清整个技术栈的脉络和思想,从而放心大胆地打怪升级。故笔者逐步以开源形式编纂本书。

本书内容多为笔者自己曾有的疑惑,结合一手的工程见闻和调研,尽全力保证内容的新鲜度和实用性。

本书不妄图成为最权威、最深入的分布式存储教程,但求成为最有趣、最接地气、最具备工程实践意义的一本《漫游指南》,权作抛砖引玉,聊备各阶段读者研习之需。

谨以此书献给我爱的家人们,以及屏幕前热爱分布式技术的你。

漫游地图

*手工绘制不断更新中,您可以在此链接获取高清电子版。

适合读者

  • 分布式系统开发者 - 存储系统架构设计与实现
  • 存储系统工程师 - 深入理解存储技术栈
  • 学生和研究者 - 对存储技术感兴趣的学习者
  • 技术人员 - 希望了解分布式存储架构

文章索引(持续更新)

标题 tags 复杂度
1. 硬件篇 硬件, 性能基准 ⭐️
2.1 同步 I/O (Sync I/O) Sync I/O, POSIX ⭐️⭐️
2.2 直接 I/O (Direct I/O) Direct I/O, Page Cache ⭐️⭐️
2.3 内存映射 I/O (mmap) mmap ⭐️⭐️
2.4 线程池模式 (Thread Pool) 线程池, 并发 IO ⭐️⭐️⭐️
2.5 小结 Sync I/O 小结 ⭐️
3.2 Linux AIO 异步 IO, libaio ⭐️⭐️⭐️
3.3 Linux io_uring io_uring, 高性能 IO ⭐️⭐️⭐️⭐️
3.4 Go 的磁盘 IO Go, GMP, 磁盘 IO ⭐️⭐️
3.5 小结 Async I/O 小结 ⭐️
4.1 混沌的分布式环境 分布式谬误, 失效建模 ⭐️⭐️
4.2 时钟!! 顺序!! 逻辑时钟, 因果顺序 ⭐️⭐️⭐️
4.3 CAP 定理 CAP ⭐️⭐️
4.4 中登必备之复制与分区 复制, 分区 ⭐️⭐️⭐️
4.5 分布式存储形态与组件 对象/块/文件存储, 组件 ⭐️⭐️⭐️
4.6 动手做!你专属的分布式存储设计 CheckList 技术选型, CheckList ⭐️⭐️
5.1 复制策略设计 复制组, 编码 ⭐️⭐️⭐️
5.2 分区策略设计 分区 ⭐️⭐️⭐️
5.3 性能-成本-可靠性之不可能三角 成本, 可靠性, 故障域 ⭐️⭐️⭐️

复杂度:⭐️ 入门 → ⭐️⭐️⭐️⭐️⭐️ 较难。

论文观点和翻译

标题 tags 复杂度
FAST'26 | LESS: 纠删码存储中 I/O 高效修复 FAST, EC, RS, LESS ⭐️⭐️⭐️⭐️
FAST'26 | ACOS: 苹果 EB 级全球分布式对象存储 FAST, 对象存储, 地理复制, LRC ⭐️⭐️⭐️⭐️
基于磁带的成本高效归档云存储 (TapeOBS) FAST, 磁带, 归档存储 ⭐️⭐️⭐️⭐️
RocksDB 存算分离: Disaggregating RocksDB RocksDB, 存算分离, LSM ⭐️⭐️⭐️⭐️

即将推出

更多章节正在策划撰写中,部分章节略有改动,以左侧目录为准。

贡献与反馈

ℹ️

📖 本书源代码托管在 GitHub Repo,欢迎 star 和催更!

✍️ 文中的谬误、遗漏信息,欢迎 issue 补充讨论!

如何贡献

关于作者

SPtuan | 团子云技术 - 一名普通的工程师,最大的愿望是度过平静的时光。

  • GitHub
  • Blog
  • Email: sptuan#steinslab.io (# 替换为 @)

读者交流闲聊群

WeChat WeChat

世界很大,圈子很小! 让世界更热闹一些吧 (球球了)! 所有的读者都大大大欢迎! 您的反馈是我前进的动力! WeChat: dangotech