**存储底层的系统化补强**

这门课解决的核心问题,是后端开发者在面对高并发、低延迟场景时,往往只知其然不知其所以然。多数业务开发停留在应用层调用接口,一旦遇到性能瓶颈或数据一致性难题,极易陷入盲调参数的困境。课程从最底层的 NVMe 硬件特性讲起,逐步向上延伸至内核级 I/O 模型 io_uring、用户态文件系统 FUSE 与 SPDK,再到分布式存储集群 Ceph、FastDFS 以及数据库 TiDB 和键值存储 RocksDB。它不适合初学者从零开始学编程,而是专为具备 3 年以上 Linux 基础、熟悉 C/C++ 或 Go 语言、并有一定数据库或运维经验的工程师设计。如果你是刚入行的应届生,直接看这部分容易跟不上,建议先补足操作系统原理和网络基础。

**从硬件到分布式的关键路径**

建议的学习路径需紧扣“自下而上”的逻辑链条。首先必须扎实理解 NVMe 协议与 LBA 映射,这是后续理解 SPDK 绕过内核驱动直连硬件的前提。接着深入 io_uring 机制,明白异步 I/O 如何避免上下文切换开销,这对优化高吞吐服务至关重要。在掌握了内核旁路技术后,再进入 FUSE 和 SPDK 项目实战,动手实现一个简易的文件系统,体验 POSIX API 在用户态的重构过程。最后过渡到分布式层面,Ceph 和 FastDFS 部分侧重高可用架构部署与同步机制分析,TiDB 则重点解析集群方案与复制原理。不要孤立地看每个模块,要始终带着“数据是如何从磁盘块流向应用内存”的视角去串联这些技术点。

**独立实战与资料配合**

学完这套课程,你不再只是调用存储接口,而是能够独立设计并实现一个支持高并发读写的键值存储引擎。你可以从零搭建 KV 项目,涵盖 B+ 树与哈希表的数据结构选择、Slab 分配器管理、Page Chunk 的存取逻辑,直至最终的配置管理与性能测试用例编写。资料包中的视频需配合源码阅读,特别是 SPDK 文件系统和 KV 存储项目部分,建议准备两台虚拟机模拟分布式环境,手动部署 Ceph 集群并观察故障转移过程。不要只听课,必须动手复现课程中的 partition layout 设计、NVMe 读写代码以及 io_uring 事件循环,唯有通过实际的代码调试与性能对比,才能将底层的存储原理内化为解决生产环境复杂问题的能力,从而在架构评审中具备话语权。

课程目录

📁 视频 039.【TiDB2】TiDB集群方案与Replication原理_.mp4
 [238.5 MB] 038.【TiDB1】TiDB存储引擎的原理_.mp4
 [237.8 MB] 037.【RockDB】不一样的kv存储RocksDB的使用场景_.mp4
 [262.3 MB] 035.【ceph2】 docker安装ceph分布式存储系统(高可用)_.mp4
 [235.6 MB] 036.【ceph3】分布式ceph存储集群部署_.mp4
 [165.1 MB] 034.【ceph1】 内核级支持的分布式存储ceph_.mp4
 [309.2 MB] 033.【fastdfs6】 产品上云公网发布测试用例_.mp4
 [342.3 MB] 032.【fastdfs5】文件传输和接口设计_.mp4
 [385.1 MB] 031.【fastdfs4】高负载nginxfastcgi_.mp4
 [381.9 MB] 030.【fastdfs3】 fastdfs存储原理_.mp4
 [353.3 MB] 028.【fastdfs1】fastdfs架构分析和配置_.mp4
 [331.5 MB] 027.【KV项目-8】-kv存储测试用例与性能测试_.mp4
 [190.2 MB] 029.【fastdfs2】FastDFS集群部署和同步机制分析_.mp4
 [359.7 MB] 026.【KV项目-7】-为kv存储加上conf文件_.mp4
 [232.4 MB] 024.【KV项目-5】btreehashmapradixtreerbtree之间的选择_.mp4
 [272.8 MB] 025.【KV项目-6】-slab分配slot与释放slot_.mp4
 [192.4 MB] 023.【KV项目-4】pagechunk的get与put_.mp4
 [161.7 MB] 020.【KV项目-1】KV存储拆解 Set,Get,Mod,Del_.mp4
 [284.0 MB] 022.【KV项目-3】kv service接口 set_get_modify_delete_.mp4
 [192.7 MB] 021.【KV项目-2】bdev与blob对于kv存储的选择_.mp4
 [264.3 MB] 019.【SPDK项目6】文件系统的性能测试(2)_.mp4
 [195.2 MB] 018.【SPDK项目5】文件系统的性能测试(1)_.mp4
 [148.0 MB] 017.【SPDK项目4】文件系统的posix api实现(2)_.mp4
 [229.1 MB] 016.【SPDK项目3】文件系统的posix api实现(1)_.mp4
 [175.9 MB] 015.【SPDK项目2】SPDK的工作原理与文件系统架构分析(2)_.mp4
 [173.7 MB] 013.【fuse2】fuse协同事件 用户态文件系统(2)_.mp4
 [289.8 MB] 014.【SPDK项目1】 SPDK的工作原理与文件系统架构分析(1)_.mp4
 [155.7 MB] 011.【io_uring4】 io_uring的使用场景(2)_.mp4
 [262.4 MB] 012.【fuse1】fuse协同事件 用户态文件系统(1)_.mp4
 [203.1 MB] 010.【io_uring3】io_uring的使用场景(1)_.mp4
 [153.3 MB] 009.【io_uring2】与epoll媲美的io_uring(2)_.mp4
 [225.6 MB] 008.【io_uring1】与epoll媲美的io_uring(1)_.mp4
 [161.8 MB] 007.【zerofs6】mkfs.zvvfs的partition layout完善与nvme读写_.mp4
 [203.4 MB] 006.【zerofs5】mkfs.zvvfs实现partition layout的5步曲_.mp4
 [185.5 MB] 005.【zerofs4】 文件系统partition layout设计与实现_.mp4
 [167.2 MB] 004.【zerofs3】block_device对nvme的读写与sector大小代码实现_.mp4
 [197.5 MB] 002.【zerofs1】文件系统需求分析与mkfs.zvvfs的两种实现方式_.mp4
 [153.7 MB] 003.【zerofs2】nvme的lba与nblocks的重要性_.mp4
 [151.1 MB] 001.存储课程技术点介绍视频_.mp4
 [93.9 MB] 下载说明.txt [424.0 B]