提供分布式文件存储服务的方法、装置和系统与流程

    专利2026-05-07  3


    本发明涉及通信及存储,尤其涉及一种提供分布式文件存储服务的方法、装置和系统。


    背景技术:

    1、hdfs(hadoop distributed file system,hadoop分布式文件系统)是一个具有高容错性的分布式文件系统,适合部署在廉价的机器上。hdfs能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

    2、hdfs采用分而治之的设计思想,将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。在大数据生态系统系统中为各类分布式运算框架(如:mapreduce,spark,tez等)提供数据存储服务。

    3、hdfs非常适合大文件的存储,hdfs采用分块存储方式,将大文件分块存储存储到不同节点上,读取文件时可同时从多个节点取不同区块的文件,具有很高的读取效率。

    4、hdfs中包括名称节点、数据节点、管理节点等。名称节点namenode负责文件和目录的创建、删除和重命名等,同时管理数据节点与文件块的映射关系。数据节点datanode负责数据的存储和读取。hdfs客户端读数据会先访问名称节点,获取数据块对应数据节点的位置,进而读取数据。写入数据也会由名称节点分配存储位置,再向对应数据节点写入数据。hdfs中的文件按块存储,每个块默认大小是128m,远远大于普通文件系统,这样可以减少寻址开销。

    5、ceph是一个支持对象(object)存储的分布式存储系统,它能够把每一个待管理的数据流(文件等数据)切分为一到多个固定大小的数据块(默认4兆)以对象方式存储,并以对象为原子单元完成数据的读写。对象数据的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为rados(reliable automatic distributed object store)集群,即可靠的、自动化的、分布式的对象存储集群。librados是rados存储集群的api,支持多种编程语言的客户端。

    6、一个ceph集群的组成部分通常包括若干运行对象存储守护进程(object storagedaemon,osd)的对象存储设备、至少需要3个monitors监视器(简称mon)、两个或以上的managers管理器(简称mgr),在提供文件系统功能时还会包括元数据服务(metadataserver,简称mds)。osd用于处理ceph集群数据复制、恢复、重新平衡,并通过检查其他cephosd守护程序的心跳来向ceph监视器和管理器提供一些监视信息。mgr负责跟踪运行时指标和ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载等。mon用于维护集群状态映射,比如ceph集群中有多少存储池、每个存储池有多个pg以及存储池和pg的映射关系等,这些映射是ceph守护程序相互协调所需的关键群集状态。mds元数据服务代表ceph文件系统(nfs/cifs)存储元数据。ceph块设备和ceph对象存储不使用元数据服务。ceph对象存储的元数据是通过元数据池来管理,其中包括关于用户对象和写时重定向row对象之间的映射关系,并且这些元数据是由ceph存储集群中的多个osd承载和管理的。

    7、ceph存储系统支持对象存储(radosgw)、块存储(rdb)、文件系统(cephfs),这三种存储功能都是基于librados协议之上封装实现的,然而在当前大数据处理分析场景中,通常使用很多基于hadoop生态的大数据平台组件,例如hive/spark/hbase等,而hive几乎成了企业大数据建仓的标准。基于hadoop生态的数据存储是基于hadoop的hdfs服务的,其采用的是hdfs协议,在面对第三方对象存储系统中的数据进行处理分析时,往往需要把数据迁移到hadoop的存储服务hdfs中,数据迁移的成本很高,在折中情况下采用hadoop生态提供的hadoop-aws插件则不用迁移数据,然而却存在着诸多的问题,例如依赖第三方的存储系统管理元数据、数据网络传输链路长、hadoop生态组件兼容性不好存在使用限制等。


    技术实现思路

    1、有鉴于此,本发明提供一种提供分布式文件存储服务的方法、装置和系统,用于解决分布式对象存储系统不能高效提供分布式文件存储服务的技术问题。

    2、基于本发明实施例的一方面,本发明提供了一种提供分布式文件存储服务的方法,该方法应用于分布式对象存储系统(ceph)当中,该方法包括:

    3、通过部署于分布式对象存储系统(ceph)中的元数据节点(namenode)为客户端提供基于分布式文件系统(hdfs)协议的元数据服务;

    4、通过部署于分布式对象存储系统(ceph)中的扩展数据节点(datanode)为客户端提供基于分布式文件系统(hdfs)协议的数据服务,所述扩展数据节点负责将分布式文件系统(hdfs)协议的数据块读/写转换为对分布式对象存储系统(ceph)存储池中对象的读/写。

    5、进一步地,所述扩展扩展数据节点(datanode)基于分布式文件系统(hdfs)底层文件系统接口(fsvolumespi)扩展实现分布式对象存储系统(ceph)的存储池访问接口(radosvolumeimpl);

    6、所述存储池访问接口(radosvolumeimpl)通过读取扩展数据节点(datanode)中配置的分布式对象存储系统(ceph)中可靠自动分布式对象存储集群即rados集群的连接信息实现对rados集群的连接。

    7、进一步地,所述存储池访问接口(radosvolumeimpl)从所述扩展数据节点(datanode)的服务数据目录配置中获取要连接的存储池名称,创建用于操作所连接的存储池中对象的i/o上下文控制接口(ioctx);

    8、所述存储池访问接口(radosvolumeimpl)根据文件系统i/o的输入流和输出流的标准抽象类(inputstream和outputstream)分别实现操作rados集群对象i/o的输入字节流和输出字节流类(radosinputstream和radosoutputstream类),通过输入字节流和输出字节流类封装所述i/o上下文控制接口(ioctx)读/写对象数据的细节。

    9、进一步地,基于分布式文件系统(hdfs)数据集接口(fsdatasetspi)扩展实现操作rados集群中存储池的数据集工厂类(radosdatasetfactory)和具体实现操作rados集群中存储池的数据集执行类(radosdatasetimpl)类;

    10、所述数据集执行类(radosdatasetimpl)实例内部初始化时会根据所述扩展数据节点(datanode)服务数据目录配置的存储池创建对应的ceph存储池访问接口(radosvolumeimpl)实例,所述存储池访问接口实例与配置的rados集群存储池一一对应。

    11、进一步地,所述元数据节点(namenode)部署于分布式对象存储系统(ceph)中的管理节点(mgr)或监控节点(mon)中;

    12、所述扩展数据节点(datanode)部署于分布式对象存储系统(ceph)中的对象存储设备(osd)所在主机中。

    13、基于本发明实施例的另一方面,本发明还提供一种提供分布式文件存储服务的装置,该装置应用于分布式对象存储系统(ceph)当中,该装置包括:

    14、元数据节点(namenode),用于为客户端提供基于分布式文件系统(hdfs)协议的元数据服务;

    15、扩展数据节点(datanode),用于为客户端提供基于分布式文件系统(hdfs)协议的数据服务,所述扩展数据节点负责将分布式文件系统(hdfs)协议的数据块读/写转换为对分布式对象存储系统(ceph)存储池中对象的读/写。

    16、进一步地,所述扩展数据节点基于分布式文件系统底层文件系统接口扩展实现分布式对象存储系统的存储池访问接口,通过存储池访问接口读取配置的分布式对象存储系统中可靠自动分布式对象存储集群即rados集群的连接信息实现对rados集群的连接。

    17、进一步地,所述扩展数据节点通过所述存储池访问接口从服务数据目录配置中获取要连接的存储池名称,创建用于操作所连接的存储池中对象的i/o上下文控制接口;

    18、所述存储池访问接口根据文件系统i/o的输入流和输出流的标准抽象类分别实现操作rados集群对象i/o的输入字节流和输出字节流类,通过输入字节流和输出字节流类封装所述i/o上下文控制接口读/写对象数据的细节。

    19、进一步地,所述扩展数据节点存储池访问接口由数据集执行类实例在内部初始化时根据服务数据目录配置的存储池创建,所述存储池访问接口实例与配置的rados集群存储池一一对应;

    20、具体实现操作rados集群中存储池的数据集执行类由所述基于分布式文件系统数据集接口扩展实现的操作rados集群中存储池的数据集工厂类创建。

    21、进一步地,所述元数据节点部署于分布式对象存储系统中的管理节点或监控节点中;所述扩展数据节点部署于分布式对象存储系统中的对象存储设备所在主机中。

    22、基于本发明实施例的另一方面,本发明还提供一种提供分布式文件存储服务的系统,该系统包括:

    23、分布式对象存储系统(ceph),用于基于可靠自动分布式对象存储集群即rados集群提供分布式对象存储能力;

    24、元数据节点(namenode),部署于所述分布式对象存储系统(ceph)中的管理节点或监控节点中,用于为客户端提供基于分布式文件系统(hdfs)协议的元数据服务;

    25、扩展数据节点(datanode),部署于所述分布式对象存储系统(ceph)中的对象存储设备(osd)所在主机中,用于为客户端提供基于分布式文件系统(hdfs)协议的数据服务,所述扩展数据节点负责将分布式文件系统(hdfs)协议的数据块读/写转换为对分布式对象存储系统(ceph)存储池中对象的读/写。

    26、进一步地,所述扩展数据节点基于分布式文件系统底层文件系统接口扩展实现分布式对象存储系统的存储池访问接口,通过存储池访问接口读取配置的分布式对象存储系统中rados集群的连接信息实现对rados集群的连接。

    27、基于本发明实施例的另一方面,本发明还提供一种电子设备,该电子设备包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;

    28、存储介质,用于存放计算机程序;

    29、处理器,用于执行存储介质上所存放的计算机程序时,实施本发明实施例提供的提供分布式文件存储服务的方法中的一个或多个方法步骤。

    30、本发明提供的装置可以以软件、硬件或软硬结合的方式实现。当以软件模块方式实现时,该软件模块的程序代码被加载到设备的存储介质中,由处理器读取存储介质中的程序代码并执行。

    31、本发明在分布式对象存储系统中部署分布式文件系统的元数据节点和扩展数据节点,扩展数据节点支持读/写rados集群中的存储池,将分布式文件系统的数据块读/写转换为基于librados协议读/写rados存储集群中的存储池的对象。通过本发明能够使分布式对象存储系统直接提供分布式文件存储能力,有效地解决上层大数据计算框架组件使用分布式对象存储系统进行数据处理和分析时,效率低、性能和稳定性较差的技术问题。


    技术特征:

    1.一种提供分布式文件存储服务的方法,其特征在于,该方法应用于分布式对象存储系统当中,该方法包括:

    2.根据权利要求1所述的方法,其特征在于,

    3.根据权利要求2所述的方法,其特征在于,

    4.根据权利要求3所述的方法,其特征在于,

    5.根据权利要求1所述的方法,其特征在于,

    6.一种提供分布式文件存储服务的装置,其特征在于,该装置应用于分布式对象存储系统当中,该装置包括:

    7.根据权利要求6所述的装置,其特征在于,

    8.根据权利要求7所述的装置,其特征在于,

    9.根据权利要求7所述的装置,其特征在于,

    10.根据权利要求6所述的装置,其特征在于,

    11.一种提供分布式文件存储服务的系统,其特征在于,该系统包括:

    12.根据权利要求11所述的系统,其特征在于,

    13.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;


    技术总结
    本发明提供一种提供分布式文件存储服务的方法、装置和系统,用于解决分布式对象存储系统不能高效提供分布式文件存储服务的技术问题。本发明在分布式对象存储系统中部署分布式文件系统的元数据节点和扩展数据节点,扩展数据节点支持读/写Rados集群中的存储池,将分布式文件系统的数据块读/写转换为基于Librados协议读/写Rados存储集群中的存储池的对象。通过本发明能够使分布式对象存储系统直接提供分布式文件存储能力,有效地解决上层大数据计算框架组件使用分布式对象存储系统进行数据处理和分析时,效率低、性能和稳定性较差的技术问题。

    技术研发人员:于胜强,汪卫国
    受保护的技术使用者:新华三大数据技术有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-96787.html

    最新回复(0)