听小董谝存储 三

目录
序章
第一章 的功能
第二章 资源管理
2.1 上下架
2.2 上架
2.3 上架与mover
第三章 业务管理
第四章 路由管理
4.1 data shard的数据结构
4.2 data shard的生命周期
4.3怎么知道路由变更了
4.4变更了之后,怎么做
4.5 保证各个路由一致
序章
前面两章基本上只是告诉了大家一个存储系统最顶层的模块与路由是什么样子的,但是具体各个模块都是怎么工作的我们依然一无所知,从这一章开始,我们就依次深入了解一下,,都是怎么工作的 。
这一节 我们先了解一下
第一章 的功能
图一 整体框架
图二 路由样式
老鸟:小菜,图一图二就是前面两章的总结 。咱们这一节说的是模块的功能 。那么第一步,咱们就得先总结出都有哪些功能 。你先谈谈你的看法吧 。
小菜:首先从图一来看,管理了全局各个模块,那么首先应该有资源管理的功能 。换句话说,,的增加与删除都应该由管理 。然后,业务管理 。也就是说为某个用户新增一个业务/删除一个业务,也需要通过 。既然有业务管理,那么那个业务的路由管理肯定也是的职责了 。我大概就能想到这么多了 。
老鸟:嗯基本也就这3个功能了 。咱们开始吧 。
第二章 资源管理
老鸟:说到资源管理,那咱们就先明确一下什么叫资源 。看图一来说,整个集群里除了外,所有的模块都是资源,都归管 。
OK,咱们再明确一下整个集群里各个模块的功能 。
:统一管理集群内的资源,业务与路由 。
:做用户请求的转发 。
:具体的存储数据 。
:探测集群内是否需要数据搬迁合并分裂的场景,如果有,把任务分配给Mover 。
Mover:根据分配的任务,执行具体的数据搬迁分裂合并工作 。
2.1 上下架
老鸟:首先前文已经说了,为了保证数据安全性,咱们的一组是按照一主两副部署的 。所以每次上架机器的时候也都是3台服务器一起部署的 。对来说,并没有对外暴露上下架的功能,反而是化整为零,把这一组机器划分成n个(卷)每个卷都是一个固定的大小,然后循环调用上下架卷的功能 。
小菜:你说化整为零,为什么不能直接上架整机呢?
老鸟:作为具体存储数据的模块,咱们的是可以采用多种机型的 。有的机器是12个磁盘,每个磁盘300G;有的机器是4个磁盘每个磁盘3000G 。如果按整机上下架,那么那边就得区分不同的机型,但是反过来如果按照卷来计算,就屏蔽了存储机型差异对的影响 。对来说,数据是存储在一个一个卷上面的,每个卷都有他自己的编号 。(如下图三,两种机型,有不同的卷数)
图三 不同的机型 提供不同数量的卷
小菜:把层次的整机打散成一个个的卷,那么一个个卷下面还有没有别的层次?
老鸟:有的 。还记得之前说的data shard么 。对来说,不同的机型提供不同数量的卷,每个卷的大小都是一样的 。同时每个卷又能提供固定数量的data shard 。Data shard,卷,,整个集群的概念可以类比真实世界里的仓库 。
就是仓库的厂长 。就是一个个厂房 。一个仓库可以有多个厂房,厂房的面积有大有小,每个厂房里面可以摆放不同数量的货架,这个货架就是data shard 。所有的货架的容量都是相同的 。每个货架上都摆着相同数量的货篮 。货篮是厂长进行数据管理的最小单位,而这每一个最小单位都是由(货架编号,货篮编号)这个二元组来唯一标识的 。
小菜:层级关系我懂了,那么每个货篮是怎么存放货物的呢?