CN111522514A - 集群文件***、数据处理方法、计算机设备及存储介质 - Google Patents

集群文件***、数据处理方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN111522514A
CN111522514A CN202010343972.6A CN202010343972A CN111522514A CN 111522514 A CN111522514 A CN 111522514A CN 202010343972 A CN202010343972 A CN 202010343972A CN 111522514 A CN111522514 A CN 111522514A
Authority
CN
China
Prior art keywords
instruction
virtual block
data
metadata
block device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010343972.6A
Other languages
English (en)
Other versions
CN111522514B (zh
Inventor
张和泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202010343972.6A priority Critical patent/CN111522514B/zh
Publication of CN111522514A publication Critical patent/CN111522514A/zh
Application granted granted Critical
Publication of CN111522514B publication Critical patent/CN111522514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种集群文件***、数据处理方法、计算机设备及存储介质,其中,集群文件***包括:对象存储服务器、多个对象存储设备、以及多个第一虚拟块设备;其中,对象存储服务器与多个对象存储设备连接;每个对象存储设备连接至少一个第一虚拟块设备;对象存储服务器,用于接收客户端发送的第一输入输出IO指令,并基于第一IO指令,通过对象存储设备访问第一虚拟块设备;第一虚拟块设备中存储有目标数据;其中,目标数据在第一虚拟块设备中存储为至少三个数据副本。

Description

集群文件***、数据处理方法、计算机设备及存储介质
技术领域
本公开涉及计算机存储技术领域,具体而言,涉及一种集群文件***、数据处理方法、计算机设备及存储介质。
背景技术
集群文件***是指运行在多台计算机之上,之间通过某种方式相互通信将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件***。
数据的可靠性是衡量一个集群文件***稳定性的重要指标;作为集群文件***一种,Lustre为了防止数据丢失,通常采用动态文件***(Zettabyte File System,ZFS)和硬件冗余的方式来保证数据可靠性。其中,ZFS是一种内核文件***,将多块磁盘组成一个软磁盘阵列(Redundant Arrays of Independent Disks,RAID)为Lustre集群提供数据存储盘。
这种数据存储方式存在可扩展性差的问题。
发明内容
本公开实施例至少提供一种集群文件***、数据处理方法、计算机设备及存储介质。
第一方面,本公开实施例提供了一种集群文件***,包括:对象存储服务器、多个对象存储设备、以及多个第一虚拟块设备;其中,所述对象存储服务器与多个所述对象存储设备连接;每个所述对象存储设备连接至少一个所述第一虚拟块设备;所述对象存储服务器,用于接收客户端发送的第一输入输出IO指令,并基于所述第一IO指令,通过所述对象存储设备访问所述第一虚拟块设备;所述第一虚拟块设备中存储有目标数据;其中,所述目标数据在所述第一虚拟块设备中存储为至少三个数据副本。
这样,第一虚拟块设备能够将多个物理磁盘Disk聚合到一起,形成一个大容量的虚拟设备,因而具有更强的可扩展性。同时,目标数据在第一虚拟块设备中能够被存储为至少三个副本,可以大大提高数据的可靠性。
一种可能的实施方式中,还包括:元数据服务器、多个元数据存储设备、以及多个第二虚拟块设备;其中,所述元数据服务器与多个所述元数据存储设备连接;每个所述元数据存储设备连接至少一个所述第二虚拟块设备;所述元数据服务器,用于接收所述客户端发送的第二IO指令,并基于所述第二IO指令,通过所述元数据存储设备访问所述第二虚拟块设备;所述第二虚拟块设备中存储有与所述目标数据对应的元数据;其中,所述元数据在所述第二虚拟块设备中存储为至少三个元数据副本。
这样,这样,由于第二虚拟块设备能够将多个物理磁盘Disk聚合到一起,形成一个大容量的虚拟设备,而第二虚拟块设备中所包含的Disk数量则较大,因而具有更强的可扩展性。
同时,第二虚拟块设备的存储容量更大,因为元数据在第一虚拟块设备中能够被存储为至少三个副本,可以大大提高数据的可靠性。
一种可能的实施方式中,所述目标数据包括:由多个文件聚合成的数据块;与所述数据块对应的元数据包括各个所述文件在所述数据块中的位置信息。
这样,由于目标数据包括了有多个文件聚合成的数据块;对于元数据服务器而言,其需要维护的文件目录规模会显著下降,进而本公开实施例提供的集群文件***能够适用于海量小文件应用。
一种可能的实施方式中,所述第一虚拟块设备,还用于按照预设的第一读取顺序,从与所述第一IO指令对应的至少三个数据副本中确定并向所述对象存储设备返回目标数据副本。
这样,保证了目标数据的顺利读取。
第二方面,本公开实施例提供一种数据处理方法,包括:接收客户端发送的输入输出IO指令;基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据;其中,所述数据在所述虚拟块设备中存储为至少三个数据副本。
一种可能的实施方式中,所述存储设备包括:对象存储设备;所述虚拟块设备包括:第一虚拟块设备;所述IO指令包括:第一IO指令;所述数据包括目标数据;所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:基于第一IO指令,控制所述对象存储设备将与所述第一IO指令对应的目标数据写入所述第一虚拟块设备中,或者从所述第一虚拟块设备中读取与所述第一IO指令对应的目标数据。
一种可能的实施方式中,所述存储设备包括:元数据存储设备;所述虚拟块设备包括:第二虚拟块设备;所述IO指令包括:第二IO指令;所述数据包括元数据;所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:基于第二IO指令,控制所述元数据存储设备将与所述第二IO指令对应的元数据数据写入所述第二虚拟块设备中,或者从所述第二虚拟块设备中读取与所述第二IO指令对应的元数据。
一种可能的实施方式中,所述从所述虚拟块设备中读取与所述IO指令对应的数据,包括:将所述IO指令发送至所述虚拟块设备,以使所述虚拟块设备按照预设的读取顺序,从与所述IO指令对应的至少三个数据副本中确定并向所述对象存储设备返回目标数据副本。
第三方面,本公开实施例还提供一种计算机设备,包括:相互连接的处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述机器可读指令被所述处理器执行以实现上述第二方面,或第二方面中任一种可能的实施方式中的数据处理方法的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的数据处理方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种集群文件***的示意图;
图2示出了本公开实施例所提供的集群文件系中,数据读取过程的示意图;
图3示出了本公开实施例所提供的集群文件系中,OST从VBD中读取目标数据的过程示意图;
图4示出了本公开实施例所提供的一种数据处理方法的流程图;
图5示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,集群文件***Lustre中,通常采用磁盘(Disk)阵列来存储数据。而对象存储设备能够安装的Disk数量有限,想要扩充Lustre的存储容量,就要相应增加对象存储设备的数量;但物理设备成本较高,进而导致Lustre的可扩展性差。
同时,由于对象存储设备能够安装的Disk数量有限,这就导致了当前Lustre只能提供最高两副本级别的数据冗余,造成数据可靠性差的问题。
另外,Lustre的集群和并行架构,更适合众多客户端并发进行发文件读写的场合;但对于小文件应用并不适用;尤其是海量小文件应用,元数据服务器和对象存储服务器都需要维护庞大的文件目录,造成Lustre响应速度下降的问题。
基于上述研究,本公开提供了一种集群文件***、及数据处理方法,包括对象存储服务器、多个对象存储设备、以及多个第一虚拟块设备;其中,所述对象存储服务器与多个所述对象存储设备连接;每个所述对象存储设备连接至少一个所述第一虚拟块设备;所述对象存储服务器,用于接收客户端发送的第一输入输出(Input/Output,IO)指令,并基于第一IO指令,通过所述对象存储设备访问第一虚拟块设备;第一虚拟块设备中存储有目标数据;第一虚拟块设备(Virtual Block Disk,VBD)能够将多个物理磁盘Disk聚合到一起,形成一个大容量的虚拟设备,因而具有更强的可扩展性。同时,目标数据在第一虚拟块设备中能够被存储为至少三个副本,可以大大提高数据的可靠性。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种集群文件***进行详细介绍。
Luster集群中包括:元数据服务器(Meta Data Server,MDS)、以及对象存储服务器(Object Storage Server,OSS);MDS连接有多个元数据存储设备(Meta Data Target,MDT),OSS连接有多个对象存储设备(Object Storage Target,OST)。每个MDT和每个OST都连接有物理存储(Disk),通过Disk为MDT和SOT提供数据存储服务。
其中,MDS负责为集群提供元数据服务,同时管理整个集群的命名空间;多个MDS之间共享访问一个MDT;每个MDT保存文件元数据对象,如文件名称、目录结构和访问权限等;客户端(Client)通过MDS读取保存于MDT上的元数据。
OSS负责Client和Disk之间的交互及数据的存储,并为Client提供数据的输入/输出(Input/Output,I/O)接口;每个OSS管理一个或者多个OST,每个OST用于存储文件数据对象。
参见图1所示,为本公开实施例提供的集群文件***的结构示意图,所述集群文件***包括:
对象存储服务器11、多个对象存储设备12、以及多个第一虚拟块设备13;
其中,所述对象存储服务器11与多个所述对象存储设备12连接;每个所述对象存储设备12连接至少一个所述第一虚拟块设备13;
所述对象存储服务器11,用于接收客户端发送的第一输入输出IO指令,并基于所述第一IO指令,通过所述对象存储设备12访问所述第一虚拟块设备13;
所述第一虚拟块设备13中存储有目标数据;
其中,所述目标数据在所述第一虚拟块设备中存储为至少三个数据副本。
在具体实施中,对象存储服务器(Object Storage Server,OSS)11,在接收到客户端发送的第一IO指令后,在第一IO指令为数据写入指令的情况下,第一IO指令还携带有与第一IO指令对应的要写入的目标数据。对象存储服务器11根据该第一IO指令,从多个对象存储设备(Object Storage Target,OST)12中确定一目标对象存储设备,并将第一IO指令传递给该目标对象存储设备;该目标对象存储设备连接有第一虚拟块设备(Virtual BlockDisk,VBD)13,目标对象存储设备将第一IO指令中携带的目标数据传递给与其相连的第一虚拟块设备13;第一虚拟块设备13将目标数据存储为至少三个数据副本。
在第一IO指令为读数据指令的情况下,第一IO指令中携带有要读取的目标数据的元数据;对象存储服务器11根据该第一IO指令,从多个对象存储设备12中,确定存储有与元数据对应的目标数据的目标对象存储设备,然后将第一IO指令传递给该目标对象存储设备;该目标对象存储设备根据第一IO指令,从与之连接的第一虚拟块设备13中读取与第一IO指令中携带的元数据对应的目标数据;这里,第一虚拟块设备13在向目标对象存储设备返回目标数据时,按照预先设定的第一读取顺序,从保存的至少三个数据副本中读取目标数据副本;具体地,若无法找到读取顺序中第一个数据副本,则按照读取顺序读取对应的第二个数据副本;若第二个数据副本也无法找到,则按照读取顺序读取对应的第三个数据副本。目标对象存储设备在从与之连接的第一虚拟块设备中读取了目标数据后,将目标数据返回给对象存储服务器11,并由对象存储服务器再返回给客户端。
本公开另一实施例所提供的集群文件***中,还包括:元数据服务器14、多个元数据存储设备15、以及多个第二虚拟块设备16;
其中,所述元数据服务器14与多个所述元数据存储设备15连接;每个所述元数据存储设备15连接至少一个所述第二虚拟块设备16;
所述元数据服务器14,用于接收所述客户端发送的第二IO指令,并基于所述第二IO指令,通过所述元数据存储设备15访问所述第二虚拟块设备16;
所述第二虚拟块设备16中存储有与所述目标数据对应的元数据;
其中,所述元数据在所述第二虚拟块设备16中存储为至少三个元数据副本。
在具体实施中,元数据服务器(Meta Data Server,MDS)14在接收到客户端发送的第二IO指令后,在该第二IO指令为数据写入指令的情况下,在第二IO指令中还携带有与第二IO指令对应的要写入的元数据。元数据服务器14根据该第二IO指令,从多个元数据存储设备(Meta Data Target,MDT)15中确定一目标元数据存储设备,并将第二IO指令传递给确定的目标元数据存储设备;目标元数据存储设备连接有第二虚拟块设备16,目标元数据存储设备将第二IO指令中携带的元数据传递给第二虚拟块设备16;第二虚拟块设备16将元数据存储为至少三个元数据副本。
在第二IO指令为读数据指令的情况下,第二IO指令中携带有要读取的元数据的相关信息,例如文件名等;元数据服务器14根据该元数据的相关信息,从与之连接的多个元数据存储设备15中确定一目标元数据存储设备,并将第二IO指令传递给该目标元数据存储设备;目标元数据存储设备根据第二IO指令,根据第二IO指令中携带的元数据的相关信息,从与之连接的第二虚拟块设备16中读取与第二IO指令对应的元数据。这里,第二虚拟块设备16在向目标元数据存储设备返回元数据时,按照预先设定的第二读取顺序,从保存的至少三个元数据副本中读取目标元数据副本;具体地,若无法找到读取顺序中的第一个元数据副本,则按照读取顺序读取对应的第二个元数据副本;若第二个元数据副本也无法找到,则按照读取顺序读取对应的第三个元数据副本……,直至找到元数据副本为止;若元数据副本都无法找到,则向目标元数据存储设备返回读取失败的信息。目标元数据存储设备在从与之连接的第二虚拟块设备中读取了元数据后,将元数据返回给元数据服务器14;元数据服务器将元数据返回给客户端,以使客户端能够根据获取的元数据,向对象存储服务器发起第一IO指令,以读取与获取的元数据对应的目标数据。
在上述过程中,客户端每发起一次数据读取过程,首先要访问元数据服务器,获取要读取文件的元数据,然后根据要读取文件的元数据,访问对象存储服务器,以读取文件的目标数据。
类似的,客户端每发起一次数据写入过程,首先要访问元数据服务器,元数据服务器生成元数据后,再通过访问对象存储服务器,将与元数据对应的目标数据存储至于对象存储设备连接的第一虚拟块设备中。
在一种可能的实施方式中,元数据包括:目标数据的文件名称、目录结构和访问权限等。
在另一种可能的实施方式中,目标数据包括:由多个文件聚合成的数据块;
与所述数据块对应的元数据包括各个所述文件在所述数据块中的位置信息。
这样,可以通过将多个文件聚合成数据块;客户端在访问数据块中的某个文件时,能够基于该位置信息来确定要访问文件在第二虚拟块设备中的存储位置。
如图2所示,本公开实施例提供一种读取数据的完整流程,包括:
客户端Client向元数据服务器MDS请求元数据;MDS基于Client的请求,向具体的元数据存储设备MDT发起数据读取;MDT从第二虚拟块设备VBD2中读取元数据,并将元数据返回至MDT;MDT将元数据返回给MDS;MDS将元数据返回给Client。
Client根据获取到的元数据信息找到对应的对象存储服务器OSS获取目标数据;OSS将IO请求转交给具体的对象存储设备OST;OST从与之连接的第一虚拟块设备VBD1中获取目标数据,并将获取的目标数据返回给OST;OST将目标数据返回给OSS;OSS将目标数据返回给Client。
通过上述过程,完成一次数据读取。
参见图3所示,本公开实施例还提供一种第一虚拟块设备13为OST提供数据存储服务的具体数据处理过程,其中,第一虚拟块设备13为将至少一个物理磁盘Disk进行虚拟化后,得到的虚拟存储设备;与对象存储设备12中部署有虚拟块设备(Virtual Block Disk,VBD)服务;另外,VBD服务也可以单独设置在另外一台具体设备中,称VBD服务器。
OST向VBD服务请求次级的元数据,VBD服务基于该请求,从VBD集群中的管理者节点Monitor中获取具体的次级的元数据。
这里,元数据包括了目标数据的文件名称、在虚拟块设备中的目录结构和访问权限等。
次级的元数据,则包括了目标数据的文件名称、目标数据在构成虚拟块设备中的至少一个物理磁盘中的目录结构和访问权限等。
Monitor将次级的元数据返回给VBD服务;VBD服务将次级的元数据返回至OSD;OSD根据次级的元数据,从具体的物理磁盘Disk中获取与次级的元数据对应的目标数据副本。
这里,需要的注意的是,不同的目标数据副本,例如部署在构成第一虚拟块设备的不同Disk中;在该示例中构成第一虚拟快设备的Disk包括:Disk1、Disk2和Disk3;且每个Disk存储有目标数据的一个目标数据副本;预设的第一读取顺序为:Disk1→Disk2→Disk3;当OSD根据预先设置的第一读取顺序,从Disk1中无法读取到目标数据副本后,再从Disk2中读取目标数据副本;从Disk2中无法读取到目标数据副本后,再从Disk3中读取目标数据副本。
构成虚拟块设备的三个Disk同时将目标数据副本丢失的可能性极低,进而保证了数据的可靠性。
另外,在数据写入的时候,OST也会向VBD服务发送写请求;VBD服务将写请求发送至Monitor,生成次级的元数据;且VBD服务将对应的目标数据写入构成VBD的不同Disk,以在多个Disk中存储为不同的目标数据副本。
本公开实施例提供的集群文件***,包括对象存储服务器、多个对象存储设备、以及多个第一虚拟块设备;其中,所述对象存储服务器与多个所述对象存储设备连接;每个所述对象存储设备连接至少一个所述第一虚拟块设备;所述对象存储服务器,用于接收客户端发送的第一输入输出(Input/Output,IO)指令,并基于第一IO指令,通过所述对象存储设备访问第一虚拟块设备;第一虚拟块设备中存储有目标数据;第一虚拟块设备能够将多个物理磁盘Disk聚合到一起,形成一个大容量的虚拟设备,因而具有更强的可扩展性。
同时,目标数据在第一虚拟块设备中能够被存储为至少三个副本,可以大大提高数据的可靠性
另外,本公开实施例的目标数据包括了有多个文件聚合成的数据块;对于元数据服务器而言,其需要维护的文件目录规模会显著下降,进而本公开实施例提供的集群文件***能够适用于海量小文件应用。
参见图4所示,本公开实施例还提供一种数据处理方法,包括:
S401:接收客户端发送的输入输出IO指令。
S402:基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据。
其中,所述数据在所述虚拟块设备中存储为至少三个数据副本。
在一种可能的实施方式中,所述存储设备包括:对象存储设备;所述虚拟块设备包括:第一虚拟块设备;所述IO指令包括:第一IO指令;所述数据包括目标数据;
所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:
基于第一IO指令,控制所述对象存储设备将与所述第一IO指令对应的目标数据写入所述第一虚拟块设备中,或者从所述第一虚拟块设备中读取与所述第一IO指令对应的目标数据。
此处,具体的目标数据的数据读取方式数据写入方式可参见上述图1对应的实施例,这里不再赘述。
在另一种可能的实施方式中,所述存储设备包括:元数据存储设备;所述虚拟块设备包括:第二虚拟块设备;所述IO指令包括:第二IO指令;所述数据包括元数据;
所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:
基于第二IO指令,控制所述元数据存储设备将与所述第二IO指令对应的元数据数据写入所述第二虚拟块设备中,或者从所述第二虚拟块设备中读取与所述第二IO指令对应的元数据。
此处,具体的元数据的读取和写入方式可参见上述图1对应的实施例,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
本公开实施例还提供了一种计算机设备10,如图5所示,为本公开实施例提供的计算机设备10结构示意图,包括:
相互连接的处理器11和存储器12,所述存储器12存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述机器可读指令被所述处理器11执行以实现下述步骤:。
接收客户端发送的输入输出IO指令;
基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据;
其中,所述数据在所述虚拟块设备中存储为至少三个数据副本。
上述指令的具体执行过程可以参考本公开实施例中所述的数据处理方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的数据处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种集群文件***,其特征在于,包括:对象存储服务器、多个对象存储设备、以及多个第一虚拟块设备;
其中,所述对象存储服务器与多个所述对象存储设备连接;每个所述对象存储设备连接至少一个所述第一虚拟块设备;
所述对象存储服务器,用于接收客户端发送的第一输入输出IO指令,并基于所述第一IO指令,通过所述对象存储设备访问所述第一虚拟块设备;
所述第一虚拟块设备中存储有目标数据;
其中,所述目标数据在所述第一虚拟块设备中存储为至少三个数据副本。
2.根据权利要求1所述的集群文件***,其特征在于,还包括:元数据服务器、多个元数据存储设备、以及多个第二虚拟块设备;
其中,所述元数据服务器与多个所述元数据存储设备连接;每个所述元数据存储设备连接至少一个所述第二虚拟块设备;
所述元数据服务器,用于接收所述客户端发送的第二IO指令,并基于所述第二IO指令,通过所述元数据存储设备访问所述第二虚拟块设备;
所述第二虚拟块设备中存储有与所述目标数据对应的元数据;
其中,所述元数据在所述第二虚拟块设备中存储为至少三个元数据副本。
3.根据权利要求2所述的集群文件***,其特征在于,所述目标数据包括:由多个文件聚合成的数据块;
与所述数据块对应的元数据包括各个所述文件在所述数据块中的位置信息。
4.根据权利要求1-3任一项所述的集群文件***,其特征在于,所述第一虚拟块设备,还用于按照预设的第一读取顺序,从与所述第一IO指令对应的至少三个数据副本中确定并向所述对象存储设备返回目标数据副本。
5.一种数据处理方法,其特征在于,包括:
接收客户端发送的输入输出IO指令;
基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据;
其中,所述数据在所述虚拟块设备中存储为至少三个数据副本。
6.根据权利要求5所述的数据处理方法,其特征在于,所述存储设备包括:对象存储设备;所述虚拟块设备包括:第一虚拟块设备;所述IO指令包括:第一IO指令;所述数据包括目标数据;
所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:
基于第一IO指令,控制所述对象存储设备将与所述第一IO指令对应的目标数据写入所述第一虚拟块设备中,或者从所述第一虚拟块设备中读取与所述第一IO指令对应的目标数据。
7.根据权利要求5或6所述的数据处理方法,其特征在于,所述存储设备包括:元数据存储设备;所述虚拟块设备包括:第二虚拟块设备;所述IO指令包括:第二IO指令;所述数据包括元数据;
所述基于所述IO指令,控制存储设备将与所述IO指令对应的数据写入所述虚拟块设备中,或者从所述虚拟块设备中读取与所述IO指令对应的数据,包括:
基于第二IO指令,控制所述元数据存储设备将与所述第二IO指令对应的元数据数据写入所述第二虚拟块设备中,或者从所述第二虚拟块设备中读取与所述第二IO指令对应的元数据。
8.根据权利要求5-8任一项所述的数据处理方法,其特征在于,所述从所述虚拟块设备中读取与所述IO指令对应的数据,包括:
将所述IO指令发送至所述虚拟块设备,以使所述虚拟块设备按照预设的读取顺序,从与所述IO指令对应的至少三个数据副本中确定并向所述对象存储设备返回目标数据副本。
9.一种电子设备,其特征在于,包括:相互连接的处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述机器可读指令被所述处理器执行以实现如权利要求5-8任一所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求5-8任一所述的数据处理方法。
CN202010343972.6A 2020-04-27 2020-04-27 集群文件***、数据处理方法、计算机设备及存储介质 Active CN111522514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010343972.6A CN111522514B (zh) 2020-04-27 2020-04-27 集群文件***、数据处理方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010343972.6A CN111522514B (zh) 2020-04-27 2020-04-27 集群文件***、数据处理方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111522514A true CN111522514A (zh) 2020-08-11
CN111522514B CN111522514B (zh) 2023-11-03

Family

ID=71906212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010343972.6A Active CN111522514B (zh) 2020-04-27 2020-04-27 集群文件***、数据处理方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111522514B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590309A (zh) * 2021-06-30 2021-11-02 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN114079659A (zh) * 2020-08-13 2022-02-22 支付宝(杭州)信息技术有限公司 分布式存储***的服务器、分布式存储***、数据存储及数据访问的方法和***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160026672A1 (en) * 2014-07-23 2016-01-28 Netapp. Inc. Data and metadata consistency in object storage systems
CN105446794A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种基于虚拟机的磁盘操作方法、装置及***
CN105468296A (zh) * 2015-11-18 2016-04-06 南京格睿信息技术有限公司 基于虚拟化平台的无共享存储管理方法
US9558208B1 (en) * 2013-12-19 2017-01-31 EMC IP Holding Company LLC Cluster file system comprising virtual file system having corresponding metadata server
CN107203639A (zh) * 2017-06-09 2017-09-26 联泰集群(北京)科技有限责任公司 基于高性能计算技术的并行文件***
CN107807794A (zh) * 2017-10-31 2018-03-16 新华三技术有限公司 一种数据存储方法和装置
CN109347896A (zh) * 2018-08-14 2019-02-15 联想(北京)有限公司 一种信息处理方法、设备和计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558208B1 (en) * 2013-12-19 2017-01-31 EMC IP Holding Company LLC Cluster file system comprising virtual file system having corresponding metadata server
US20160026672A1 (en) * 2014-07-23 2016-01-28 Netapp. Inc. Data and metadata consistency in object storage systems
CN105446794A (zh) * 2014-09-30 2016-03-30 北京金山云网络技术有限公司 一种基于虚拟机的磁盘操作方法、装置及***
CN105468296A (zh) * 2015-11-18 2016-04-06 南京格睿信息技术有限公司 基于虚拟化平台的无共享存储管理方法
CN107203639A (zh) * 2017-06-09 2017-09-26 联泰集群(北京)科技有限责任公司 基于高性能计算技术的并行文件***
CN107807794A (zh) * 2017-10-31 2018-03-16 新华三技术有限公司 一种数据存储方法和装置
CN109347896A (zh) * 2018-08-14 2019-02-15 联想(北京)有限公司 一种信息处理方法、设备和计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KRISTAL T. POLLACK: "Quota enforcement for high-performance distributed storage systems", 《IEEE XPLORE》 *
刘仲, 章文嵩, 王召福, 周兴铭: "基于对象存储的集群存储***设计", 计算机工程与科学, no. 02 *
罗圣美: "一种结合SSD特征的分布式文件***元数据优化技术", 《小型微型计算机***》, no. 5 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114079659A (zh) * 2020-08-13 2022-02-22 支付宝(杭州)信息技术有限公司 分布式存储***的服务器、分布式存储***、数据存储及数据访问的方法和***
CN113590309A (zh) * 2021-06-30 2021-11-02 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质
CN113590309B (zh) * 2021-06-30 2024-01-23 郑州云海信息技术有限公司 一种数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111522514B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
JP5276218B2 (ja) リアルタイムでlunをファイルに、またはファイルをlunに変換すること
US10303649B2 (en) Storage media abstraction for uniform data storage
Tantisiriroj et al. On the duality of data-intensive file system design: reconciling HDFS and PVFS
US11093148B1 (en) Accelerated volumes
US8473462B1 (en) Change tracking for shared disks
EP4139781B1 (en) Persistent memory architecture
US10242011B1 (en) Managing truncation of files of file systems
CN103501319A (zh) 一种低延迟的面向小文件的分布式存储***
CN111522514A (zh) 集群文件***、数据处理方法、计算机设备及存储介质
Selvaganesan et al. An insight about GlusterFS and its enforcement techniques
Li et al. An efficient and performance-aware big data storage system
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
Xu et al. YuruBackup: a space-efficient and highly scalable incremental backup system in the cloud
US11461281B2 (en) Freeing pages within persistent memory
CN109558082B (zh) 分布式文件***
US11989159B2 (en) Hybrid snapshot of a global namespace
EP3367259B1 (en) Method and device for reading and writing video data in nas device
US9529812B1 (en) Timestamp handling for partitioned directories
WO2008029146A1 (en) A distributed file system operable with a plurality of different operating systems
CN109508255B (zh) 一种数据处理的方法及装置
US11121981B1 (en) Optimistically granting permission to host computing resources
US8356016B1 (en) Forwarding filesystem-level information to a storage management system
US10685046B2 (en) Data processing system and data processing method
CN113973138B (zh) 用于使用数据访问网关优化对数据集群的数据节点的访问的方法和***
Lackschewitz et al. Performance Evaluation of Object Storages (NHR2022)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant