存储全栈核心技术深度剖析:NVMe/SPDK/io_uring/FUSE/RocksDB/Ceph/TiDB实战精讲
资源概述本课程是一门从硬件层到应用层全面覆盖的存储全栈实战课程,系统讲解NVMe协议、SPDK用户态驱动、io_uring异步I/O、FUSE用户态文件系统、RocksDB存储引擎、Ceph分布式存储、TiDB NewSQL数据库等核心技术。课程采用“自下而上”的构建方式,通过亲手实现简易文件系统(zerofs)、KV存储引擎、FastDFS文件系统等实战项目,帮助学习者打破存储系统的“黑盒”,全面掌握底层原理与工程实践能力。适用人群
[*]存储系统开发者:希望深入理解存储栈底层原理,从硬件驱动到分布式系统实现完整知识体系的工程师。
[*]后端架构师与性能优化工程师:需要应对I/O性能瓶颈、数据一致性等挑战,掌握io_uring、SPDK等高性能I/O技术的专业人士。
[*]数据库与分布式系统爱好者:对RocksDB、TiDB、Ceph等开源存储系统有深入研究需求的技术人员。
[*]云计算与基础设施工程师:希望掌握分布式存储、文件系统设计、高性能I/O框架实战经验的人群。
核心学习收获
[*]构建完整的存储全栈知识体系:从NVMe硬件协议、块设备读写,到用户态驱动、异步I/O,再到分布式文件系统与NewSQL数据库,实现“自下而上”的全面覆盖。
[*]亲手实现一个完整的文件系统(zerofs):通过mkfs.zvvfs实现分区布局设计、NVMe LBA管理、block_device读写等关键模块,掌握文件系统核心实现逻辑。
[*]掌握io_uring与SPDK高性能I/O框架:深入理解io_uring与epoll的对比及其使用场景,剖析SPDK用户态驱动的工作原理,并实现基于SPDK的文件系统POSIX API及性能测试。
[*]开发分布式KV存储引擎:从Set/Get/Mod/Del接口设计,到bdev/blob选择、pagechunk管理、数据结构选型(B树/哈希/基数树/RB树)、slab分配器及配置管理,完整实现一个KV存储系统。
[*]深度解析主流开源存储系统:掌握FastDFS的架构、集群部署与同步机制、Ceph分布式存储的内核级支持与高可用部署、RocksDB的使用场景、TiDB存储引擎与集群复制原理。
内容体系
一、课程导览与核心技术概览
[*]存储课程技术点介绍:系统梳理本课程覆盖的核心技术栈,包括NVMe协议、SPDK、io_uring、FUSE、RocksDB、Ceph、TiDB等,明确各模块的学习路径与实战目标。
二、文件系统实战:zerofs设计与实现
[*]文件系统需求分析与mkfs.zvvfs实现:分析文件系统的核心需求,讲解mkfs.zvvfs的两种实现方式,奠定zerofs的基础。
[*]NVMe的LBA与nblocks管理:深入理解NVMe逻辑块地址(LBA)与块数量(nblocks)在文件系统中的作用与计算方法。
[*]block_device对NVMe的读写与sector大小实现:实现块设备层的读写接口,处理扇区大小与对齐逻辑。
[*]partition layout设计与实现:设计文件系统的分区布局结构,确定超级块、inode区、数据区等关键区域的分布。
[*]mkfs.zvvfs分区布局的5步曲:通过格式化工具逐步完成分区布局的实现,包括superblock初始化、inode表创建、数据块位图构建等。
[*]mkfs.zvvfs分区布局完善与NVMe读写集成:完善格式化流程,并实现文件系统与NVMe设备的实际读写交互。
三、高性能异步I/O:io_uring深入剖析
[*]io_uring与epoll的对比:分析io_uring相比epoll在性能、编程模型和适用场景上的优势与差异。
[*]io_uring的实现原理与使用场景:详解io_uring的提交队列(SQ)、完成队列(CQ)及内核态处理机制,并通过实际场景演示其应用。
四、用户态文件系统:FUSE与SPDK
[*]FUSE协同事件与用户态文件系统实现:讲解FUSE框架的事件驱动机制,实现一个用户态文件系统,并处理文件操作的回调逻辑。
[*]SPDK工作原理与文件系统架构分析:剖析SPDK用户态驱动框架的核心设计,分析其与传统内核态驱动的性能差异及架构优势。
[*]基于SPDK的文件系统POSIX API实现:在SPDK框架上实现标准的POSIX文件操作接口,包含打开、关闭、读写、同步等核心功能。
[*]文件系统性能测试:设计并执行针对SPDK文件系统的性能测试方案,分析吞吐量、延迟、IOPS等关键指标。
五、分布式KV存储引擎实战
[*]KV存储核心接口与拆解:定义Set、Get、Mod、Del等基础操作接口,并设计KV存储的整体架构。
[*]bdev与blob在KV存储中的选型:分析块设备抽象层(bdev)与Blob存储层在KV存储中的适用场景与选择依据。
[*]KV service接口实现:实现Set/Get/Modify/Delete等KV服务接口,构建完整的操作链。
[*]pagechunk的Get与Put操作:设计并实现PageChunk层的页面管理机制,处理数据的分配、读写与回收。
[*]数据结构选型分析:比较B树、哈希表、基数树、红黑树等结构在KV存储中的应用,分析其优缺点及选择策略。
[*]slab分配器设计与实现:实现slot分配与释放机制,优化内存管理与对象复用。
[*]配置管理支持:为KV存储系统添加配置文件支持,实现参数动态加载与系统初始化。
[*]测试用例与性能测试:设计完整的单元测试与集成测试用例,执行性能测试并分析结果。
六、分布式文件系统:FastDFS深度解析
[*]FastDFS架构分析与配置:解析FastDFS的核心组件(Tracker、Storage)及其协同工作原理。
[*]FastDFS集群部署与同步机制:讲解集群部署方案、数据同步策略及故障恢复机制。
[*]FastDFS存储原理:深入分析文件分块存储、元数据管理及负载均衡机制。
[*]高负载场景下的Nginx与FastCGI集成:介绍如何使用Nginx与FastCGI实现高并发文件访问,提升系统吞吐能力。
[*]文件传输与接口设计:设计文件上传、下载、删除、查询等接口,实现高效的文件传输协议。
[*]产品上云与公网发布测试:将FastDFS部署至云端环境,设计公网测试用例,验证系统稳定性与性能。
七、分布式存储系统:Ceph内核级支持
[*]内核级支持的分布式存储Ceph:讲解Ceph的架构设计,包括RADOS、RGW、RBD、CephFS等核心组件及内核集成特性。
[*]Docker安装Ceph分布式存储系统(高可用):使用Docker容器化方式部署高可用的Ceph集群,实现快速的搭建与验证。
[*]分布式Ceph存储集群部署:详细介绍Ceph集群的多节点部署流程,包括MON、OSD、MGR等节点的配置与管理。
八、主流存储引擎与数据库剖析
[*]RocksDB的应用场景:分析RocksDB在LSM-Tree架构下的读写性能特点、适用场景及与传统KV存储的差异。
[*]TiDB存储引擎原理:深入剖析TiDB的存储引擎架构,包括TiKV、PD、TiDB Server的协作机制及数据分片策略。
[*]TiDB集群方案与Replication原理:讲解TiDB的多副本复制机制、Raft一致性协议在TiDB中的应用及集群容灾方案。
配套资源与说明
[*]课程形式:视频教学课程,共计 39个独立教学视频,涵盖存储全栈核心技术模块。
[*]文件格式:MP4视频格式。
[*]语言:中文讲解。
[*]播放要求:主流视频播放器均可正常播放(如PotPlayer、VLC、Windows Media Player等)。
[*]学习建议:
[*]建议按照课程编号顺序依次学习,从存储技术点概览开始,再逐步深入zerofs文件系统实现、io_uring、FUSE/SPDK、KV项目、FastDFS、Ceph、RocksDB及TiDB,形成完整的学习闭环。
[*]本课程包含大量实战代码实现,建议学习者在观看视频的同时跟随敲写代码,加深理解。
[*]对于分布式存储部分(FastDFS、Ceph、TiDB),建议在学习前准备好相应的实验环境(如Docker或多台虚拟机)。
[*]注意事项:
[*]本课程为技术实战类资源,不包含代码库或项目源码的直接提供,学习者需根据视频讲解自行编写或下载相关代码。
[*]课程中的项目实现(如zerofs、KV存储等)基于特定的硬件或操作系统环境(如Linux),部分代码可能需要适配不同环境。
[*]建议学习者具备基础的C/C++编程能力、Linux操作系统使用经验及对存储系统的基本认知,以便更好地理解课程内容。
页:
[1]