目录
摘要:
记录阅读linux开源协议栈的思考
<linux开源存储全栈>其书:
该书简略了论述了linux的存储相关的一些概念和知识, 我个人认为该书作为入门书是非常合适的。
首先,该书对相关概念都有涉及, 并且能将这些概念串起来。
其次,其中对相关的技术,做了起到好处的抽象。
这点见仁见智,我倒是觉得一开始并不能过多的深入细节,主要是因为人的精力是有限的,如果在还没见到全貌的时候,直接深入某一模块的细节,很快会因为过分耗费精力,导致精力衰竭无法进行下一步。
所以我建议一开始一定要有一个恰到好处的抽象的整体的讲解,这并不是说越简单越好,而是要以能辅助理解为主, 过浅和过深的书,如果不能辅助增进对该技术的理解, 那么都不能说是合适的。
阅读存储相关的个人感悟:
由于对于存储这块做的时间并不久, 还不能说一些过于深入的见解,但是考虑到其实也不是一无所知,此前在做云原生redis的时候,是绕不开存储这一块的。可以互相辅助理解。
如果说数据库可以理解成主要是增加了ACID事务特性的特殊的文件系统,为写入和查询做了特殊的优化,那么数据库从广义上,可以看着是一种存储系统。
理解了这一点,对加快理解分布式存储的一些概念和设计,是很有帮助的。虽然存储在很大程度上包含了硬件。
以下特性是都需要考虑的:
- 数据安全, 如何不丢失数据
- 分布式存储的情况下,如何保证数据的一致性,以及动态扩容和缩容
- 不同层次的抽象架构下的设计
- 由于存储系统众多,接口各异,如何有效的组织这些底层接口是一个挑战,例如linux的VFS, ceph的对象存储接口层等
- 将一个复杂的系统分割成不同的细分模块,是解决一个复杂系统的通常做法, 利用分治的做法,逐步拆解成不同的小的领域,在最小的点上逐个击破。换句话说,如果一个复杂系统的各个子系统都是稳定的,那么通过接口组合起来的整体系统也是稳定的。
个人编写的文件系统:
GitHub - adofsauron/fs-mini-aufs: fs mini aufs
这是一个最小的文件系统,准备开始长期维护下去,以作为对存储的理解的具体体现。在功能增强的过程中,目标是做一个真正成熟的文件系统,具备一个可以使用的文件系统该有的功能。