------------------------------------重要说明------------------------------------

以下部分内容来网络,部分自华为存储官方教材

具体教材内容请移步华为存储官网进行教材下载

    网络引用内容无法找到原创,如有侵权请通知

------------------------------------重要说明------------------------------------

① 统一命名空间

图片.png

DFS分布式文件系采用全对称结构, 将所有节点的命名空间整合为统一命名空间, 将整个系统的所有节点的存储容量组成一个大的虚拟存储池, 元数据和数据保存在每个节点上, 每个节点都是元数据服务器同时也是数据服务器, 访问文件数据时DFS文件系统首先定位到文件所归属的元数据服务器, 然后通过元数据服务器获取文件的数据分布, 即获取文件分布在哪些节点上以及在节点上的具体位置, 再去访问这些节点完成数据读写操作。

支持最大60PB全局命名空间, 用户不用管理多个命名空间, 从而减轻管理复杂度。 消除多个命名空间, 也消除了多个命名空间带来的数据孤岛。

图片.png

传统数据存储方式是将磁盘映射成分块, 文件系统管理分块, 并使用元数据来标记分块使用情况。 对象存储访问不关注分块, 看到的是一个个的对象, 上层使用对象名来访问。 这种对象系统通常是扁平化的, 区别于文件系统。

虚拟化借鉴了两种优势, 一方面把底层以对象方式管理, 简化了管理方式和元数据开销;另一方面, 上层在虚拟出的对象基础上仍然构建成文件系统树形结构。

② 文件系统的功能和组织

图片.png
 

③ 元数据 

图片.png
 

元数据,描述数据的数据。由Dentry(目录项)和Inode(索引节点)组成。Dentry记录着文件名,上级目录等信息,形成了树状结构;而有关该对象的组织和管理信息主要存放Inode里面,记录着对象的KeyID和对象在存储介质上的位置与信息。

④ 元数据对象数据对象

图片.png
 

数据对象是由一组stripe(分条)组成,而分条有Erasure Code矩阵运算生成。

对象(Object)是对象存储系统的基础单元,包含文件数据以及相关的属性信息,具有唯一的KeyID,可进行自我管理。由于对象规模仅受KeyID的位数限制,因此拥有着接近无限的扩展能力。

⑤ 元数据的存储与访问

图片.png

使用动态子树方式组织元数据。

将命名空间中的所有元数据按照名字子树的方式划分, 每棵名字子树划分给一个MDS处理。 一个MDS可以管理若干棵子树。

正常处理流程: CA将报文发给任意一个MDS, 该MDS查询本地动态子树表, 如果属于本地MDS处理范围, 则直接处理; 如果不属于则将该请求转交给负责该名字子树的MDS( 如果无法直接找到, 则转给最可能负责该名字子树的MDS) 。

故障迁移:一台MDS故障后, 其他MDS将分担故障MDS负责管理的名字子树。

负载均衡:当MDS数组增减或某个MDS负责的名字子树访问过冷/过热时, 会采用负载均衡策略, 将过热节点上的名字子树部分迁移到较冷节点管理。

注意:这里讲的是元数据的缓存, 与元数据实际存放的位置不同。 元数据实际按M+2存放在各节点的硬盘中, 与系统运行时缓存的位置可能并不相同