Page 25 - 《软件学报》2021年第10期
P. 25
乔嘉林 等:基于着色 Petri 网的 HDFS 数据一致性建模与分析 2997
2 数据结构建模
本文首先介绍 HDFS 基本架构,并对 HDFS 中的一些数据结构进行建模,数据结构建模的任务是将 HDFS
的数据结构代码进行抽象,以着色 Petri 网模型的语言进行表达.本节我们不给出具体建模代码,仅使用文字描述
建模对象内容.
2.1 HDFS基本架构
HDFS 作为分布式文件系统,由多个不同组件协同完成系统功能.了解系统架构,是建模和分析的基础 [26] .
HDFS 采用主从模式的系统架构,如图 2 所示,它由 3 种不同的组件构成,即名字节点、数据节点和客户端,其主
要功能简单介绍如下.
名字节点(namenode)是 HDFS 的核心组件和主节点,每个 HDFS 集群只有唯一的名字节点.该节点集中
管理文件系统结构、文件源信息、文件与文件块的对应信息、文件块分布信息以及活动数据节点信
息等.名字节点的主要功能包括:处理客户端对文件元数据的读写请求,维护文件系统树状结构;管理数
据节点,提供数据节点的注册、注销等功能;维护文件块的分布信息,在处理读写请求时提供文件块的
具体位置信息;
数据节点(datanode)是 HDFS 的从节点,每个 HDFS 集群通常有多个数据节点.数据节点是实际存储文
件数据的地方,以文件块(block)为单位进行数据的存取.数据节点的主要功能包括:处理来自于客户端
或其他数据节点的写操作请求,将文件块存储到本地文件系统中;处理来自于客户端或其他数据节点
的读操作请求,将存储到本地的文件块读出并返回;在名字节点处注册,保持活动状态,并定时上传本地
存储的文件块信息;
客户端(client)是部署在应用端的组件,提供对 HDFS 文件系统的访问接口,允许同时有多个客户端与
系统进行连接.客户端的主要功能包括:处理来自上层应用的文件元数据操作,与名字节点交互完成元
数据的管理操作;处理来自用户的读写文件请求,与名字节点交互更改或读取文件元数据,与数据节点
交互提交或读取文件块,并将操作结果返回给上层应用.
Metadata ops Namenode
Client
Block ops
Read
Datanodes Datanodes
Replication
Blocks
Rack 1 Write Rack 2
Client
Fig.2 System architecture of HDFS
图 2 HDFS 系统架构
2.2 颜色集
着色 Petri 网用令牌(token)表示对象,用令牌的颜色来区分对象的类型.对 HDFS 的数据结构进行建模,就是
使用 ML 语言对颜色集进行定义,并用颜色集与 HDFS 的数据结构建立对应的关系.CPN Tools 中的颜色集分为
两种,即简单颜色集和复合颜色集:简单颜色集是系统预先定义的几种基本颜色集,包括布尔颜色集、整数颜色
集、索引颜色集、枚举颜色集等;复合颜色集是由其他颜色集组合派生出来的颜色集,包括列表颜色集、乘积
[7]
颜色集、记录颜色集、并颜色集等 .