一种分布式文件系统的磁盘管理方法

文档序号:9523924阅读:459来源:国知局
一种分布式文件系统的磁盘管理方法
【技术领域】
[0001]本申请涉及计算机网络以及存储技术领域,尤其涉及一种分布式文件系统的磁盘管理方法。
【背景技术】
[0002]分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
[0003]传统计算机通过文件系统管理、存储位于本地磁盘上的数据。随着移动设备、社交网络、物联网等多种应用的蓬勃发展,人类社会产生的数据呈爆炸式增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。
[0004]当分布式文件系统的节点到达一定数目以后,对该系统物理机器的维护尤其是对磁盘的维护的可操作性就变得尤为突出。

【发明内容】

[0005]本申请提供了一种分布式文件系统的磁盘管理方法,能够实现分布式文件系统的高可靠性的维护。
[0006]本申请实施例提供的一种分布式文件系统的磁盘管理方法,包括:
[0007]A、当一块磁盘加入分布式文件系统时,该磁盘所在的数据存储节点向元数据节点发送增加磁盘的通知消息;
[0008]B、元数据管理节点接收到通知消息后,为该磁盘分配一个磁盘管理标识符;将该管理标识保存在元数据管理节点的数据库中;
[0009]C、基于所述磁盘管理标识符对磁盘进行操作。
[0010]可选地,该方法进一步包括:当磁盘的管理信息发生变化时,数据存储节点将该磁盘的磁盘管理标识和磁盘管理信息通知元数据管理节点,元数据管理节点基于所述磁盘管理标识符在数据库检索到相应的磁盘管理信息,并更新所述磁盘管理信息。
[0011 ] 可选地,所述磁盘管理信息包括:磁盘大小、可用空间、群组标识、磁盘格式化时生成的通用唯一识别码UUID。
[0012]可选地,步骤C所述对磁盘进行操作包括:数据读写、数据迀移、数据平衡、踢盘、掉盘。
[0013]可选地,该方法进一步包括:
[0014]磁盘在离线后重新加入分布式文件系统时,该磁盘所在的数据存储节点更新本地的磁盘管理信息;
[0015]所述数据存储节点将本地维护的磁盘管理信息发送至元数据管理节点;
[0016]元数据节点接收到磁盘管理信息后,对该磁盘进行校验,校验内容包括:该磁盘群组标识是否与当前集群匹配,若是,判断该磁盘的磁盘管理标识符是否存在于数据库,若是,进一步检验UUID和数据库是否一致,如果校验通过,元数据节点根据接收的磁盘管理信息更新数据库中的磁盘管理信息,并向所述数据存储节点返回校验成功消息。否则元数据节点向数据存储节点返回校验失败消息。
[0017]可选地,步骤C包括:
[0018]若某一个数据存储节点上的某一个磁盘被拔出或者突然掉线,该数据存储节点获得该磁盘掉线状态,则更新本地维护的磁盘管理信息;
[0019]该数据存储节点向元数据管理节点发送携带该磁盘的磁盘管理标识符的磁盘掉线通知消息;
[0020]元数据管理节点接收到磁盘掉线通知消息,将数据库中所述磁盘管理标识符对应的磁盘管理信息设置为无效。
[0021]可选地,所述将数据库中所述磁盘管理标识对应ID的磁盘管理信息设置为无效之后进一步包括:
[0022]元数据管理节点通过从其他数据存储节点读取信息,构建出所述磁盘管理标识符对应的磁盘上存储的数据,并将这些数据写入到分布式文件系统的其他磁盘上。
[0023]可选地,步骤C包括:
[0024]元数据管理节点根据与数据存储节点之间的心跳消息确定是否有数据存储节点离线,若是,元数据管理节点确定所述数据存储节点包含的磁盘管理标识符,将数据库中所述磁盘管理标识符对应的磁盘管理信息设置为无效;
[0025]元数据管理节点通过从其他数据存储节点读取信息,构建出所述磁盘管理标识符对应的磁盘上存储的数据,并将这些数据写入到分布式文件系统的其他磁盘上。
[0026]可选地,步骤C包括:
[0027]步骤601:客户端通过代理模块向元数据管理节点发送数据写入请求;
[0028]步骤602:元数据管理节点检索数据库中的磁盘管理信息,找到存储空间可以满足所述写入请求的磁盘,将所述磁盘的磁盘管理标识符以及位置信息发送到代理模块;
[0029]步骤603:代理模块根据所述管理标识以及位置信息将写入请求路由到相应的磁盘进行数据写入;
[0030]步骤604:判断是否写入成功,若是,结束本流程,否则执行步骤605 ;
[0031]步骤605:所述磁盘所在的数据存储节点向元数据管理节点返回写入失败消息。返回步骤602。
[0032]可选地,步骤C包括:
[0033]步骤701:客户端通过代理模块向元数据管理节点发送数据读请求;
[0034]步骤702:元数据管理节点检索数据库中的磁盘管理信息,找到所述读请求对应的磁盘,将所述磁盘的磁盘管理标识符以及位置信息发送到代理模块;
[0035]步骤703:代理模块根据所述磁盘管理标识符以及位置信息将读请求路由到相应的磁盘读取数据;
[0036]步骤704:判断是否读成功,若是,结束本流程,否则执行步骤705 ;
[0037]步骤705:判断读次数是否超过预设阈值,若是,结束本流程,否则执行步骤706 ;
[0038]步骤706:所述磁盘所在的数据存储节点向元数据管理节点返回读失败消息。返回步骤702。
[0039]从以上技术方案可以看出,每一个磁盘在该分布式文件系统中具有全局唯一的磁盘管理标识符,在使用时基于该标识对磁盘进行数据分配、读写等操作;磁盘是独立于数据节点的,并且在该磁盘在加入了分布式文件系统以后,当该磁盘从一台数据存储节点迀移到另一台数据存储节点时,位于该盘上的数据无需迀移或者修改。根据本申请方案,磁盘独立于数据存储节点,基于磁盘的管理标识符对磁盘进行维护,简化了集群阵列维护工作,并对所有硬盘进行合理组织,且提供相应的错误处理及恢复机制。
【附图说明】
[0040]图1为本申请实施例提供的分布式文件系统的结构示意图;
[0041]图2为本申请实施例提供的分布式文件系统的磁盘管理方法的实现流程示意图;
[0042]图3为本申请实施例提供的对于磁盘离线后重新上线的管理流程示意图;
[0043]图4为本申请实施例提供的磁盘掉线的处理流程示意图;
[0044]图5为本申请一个实施例提供的数据存储节点离线的处理流程示意图;
[0045]图6为本申请另一实施例提供的写数据异常时的处理流程示意图;
[0046]图7为本申请另一实施例提供的读数据异常时的处理流程示意图。
【具体实施方式】
[0047]本申请提供的用于分布式文件系统的磁盘管理方法,其基本设计思想是:每一个磁盘在该分布式文件系统中具有全局唯一的标识符,在使用时基于该标识对磁盘进行数据分配、读写等操作;磁盘是独立于数据节点的,并且在该磁盘在加入了分布式文件系统以后,当该磁盘从一台数据存储节点迀移到另一台数据存储节点时,位于该盘上的数据无需迀移或者修改。
[0048]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0049]图1为本申请实施例提供的分布式文件系统的结构示意图。该分布式文件系统包括代理节点101、元数据管理节点102以及多个数据存储节点103。其中每个数据存储节点上有至少一个磁盘。每一个磁盘具有全局唯一的管理标识符。元数据管理节点102中的数据库用于存储并管理这些管理标识符以及其他必要的磁盘管理信息。
[0050]所述代理节点101作为分布式文件系统与客户端之间的通信接口,用于接收来自客户端的各种请求,并将请求发送到相应的节点。
[0051]数据存储节点103是用于存储文件数据的功能单元。每一个数据存储节点103会维护与本数据存储节点相关的磁盘管理信息,当本地元数据需要更新时,向元数据管理节点102发送数据更新请求,元数据管理节点102对该请求进行校验,校验完成后更新数据库中的磁盘管理信息。
[0052]本申请实施例提供的分布式文件系统的磁盘管理方法的实现流程如图2所示,包括如下步骤:
[0053]步骤201:当一块磁盘加入分布式文件系统时,该磁盘所在的数据存储节点向元数据节点发送增加磁盘的通知消息。
[0054]步骤202:元数据管理节点接收到通知消息后,为该盘分配一个全局唯一的标识(以下称该标识为管理标识符),
[0055]步骤203:将该管理标识保存ID在元数据管理节点的数据库中。
[0056]步骤204:基于所述磁盘管理对磁盘进行操作。
[0057]后续对该盘的所有操作都基于该管理标识进行。所述操作包括但不限于:数据读写、数据迀移、数据平衡、踢盘、掉盘等。
[0058]当磁盘的管理信息发生变化时,数据存储节点将该磁盘的磁盘管理标识和管理信息通知元数据管理节点,元数据管理节点基于所述磁盘管理标识在数据库检索到相应的磁盘管理信息,并更新所述磁盘管理信息。所述磁盘管理信息包括但不限于标识符磁盘大小、可用空间、群组标识、磁盘格式化时生成的通用唯一识别码(UUID,Universally UniqueIdentifier)。
[0059]如果是某个数据存储节点添加了新的磁盘或者删除磁盘,则由该数据存储节点通知元数据管理节点。如果是分布式文件系统重启,该系统中的所有数据存储节点都要通知元数据管理节点。
[0060]对于数据读写,其过程为:客户端通过代理模块发送写入请求,元数据管理节点检索数据库找到一个有可用空间的磁盘,返回给代理模块该磁盘的管理标识符以及位置信息
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1