CN111737221B - 集群文件***的数据读写方法、装置及设备和存储介质 - Google Patents

集群文件***的数据读写方法、装置及设备和存储介质 Download PDF

Info

Publication number
CN111737221B
CN111737221B CN202010567622.8A CN202010567622A CN111737221B CN 111737221 B CN111737221 B CN 111737221B CN 202010567622 A CN202010567622 A CN 202010567622A CN 111737221 B CN111737221 B CN 111737221B
Authority
CN
China
Prior art keywords
data
reading
writing
length
request
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.)
Active
Application number
CN202010567622.8A
Other languages
English (en)
Other versions
CN111737221A (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.)
Inspur Electronic Information Industry Co Ltd
Guangdong Inspur Smart Computing Technology Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202010567622.8A priority Critical patent/CN111737221B/zh
Publication of CN111737221A publication Critical patent/CN111737221A/zh
Application granted granted Critical
Publication of CN111737221B publication Critical patent/CN111737221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种集群文件***的数据读写方法、装置及设备和介质,该方法包括:获取数据写入请求,得到写入起始位置和写入数据长度;根据写入起始位置,写入数据长度和数据块的大小,确定数据写入请求对应的写入方式是否为对齐写;如果否,则根据写入起始位置、写入数据长度对数据块中的第一目标数据区域进行标记,数据块预先划分为预设数量的数据区域;从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在完成后将待写入数据写入第一目标数据区域中。本申请预先将数据块划分为预设数量的数据区域,针对小于数据块大小的数据变动,可以较小的数据区域为单位进行读写,避免浪费不必要的资源,提升了数据读写性能。

Description

集群文件***的数据读写方法、装置及设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种集群文件***的数据读写方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
OCFS2是一种集群文件***,它广泛应用于云计算、虚拟化***中。该文件***常用于FC-SAN及IP-SAN组网的环境中,基于共享磁盘创建文件***,让集群中所有节点都可以对磁盘数据读写。
Reflink是一种文件***快速构建数据拷贝的方法,它区别于传统的文件软链接、硬链接的实现。软链接是对于链接文件的目录项增加一个指向源文件的目录项索引,硬链接是对于链接文件的目录项增加指向源文件元数据的索引。而Reflink的实现是对于链接文件创建一个新的元数据,将其数据区域和源文件的数据区域共享。
Reflink文件的读写使用CoW(copy on write,写时复制)的方式,即在对Reflink文件写时,发现较源文件有变化,会将源文件数据拷贝一份,然后将数据写入相应的数据区域。而Reflink的拷贝数据块大小默认1M,对于小于1M的数据变动,也会导致较多的数据拷贝,造成不必要的资源浪费。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种集群文件***的数据读写方法、装置及一种电子设备和一种计算机可读存储介质,避免浪费不必要的资源,提升了数据读写性能。
为实现上述目的,本申请提供了一种集群文件***的数据读写方法,包括:
获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;
如果否,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
可选的,所述根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,包括:
若所述写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;
根据所述写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;
对所述第一目标数据块和所述目标区域对应的位图数据进行标记;
若所述写入数据长度小于文件***中数据块的大小,则根据所述写入数据长度确定所需第一目标数据区域的数量,并对所述第一目标数据区域对应的位图数据进行标记。
可选的,所述确定所述数据写入请求对应的写入方式是否为对齐写之后,还包括:
若当前所述数据写入请求对应的写入方式为对齐写,则根据所述写入起始位置,所述写入数据长度确定所需的第一目标数据块;
对所述第一目标数据块对应的位图数据进行标记,根据标记将所述第一目标数据块的数据转存至引用计数树中对应的数据区域;
根据所述写入起始位置将所述待写入数据写入所述第一目标数据块中。
可选的,还包括:
接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;
如果是,则直接从当前Reflink文件中读取对应的数据;
如果否,则在共享数据区域中进行数据读取。
可选的,所述根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读之后,还包括:
若所述数据读取请求对应的读取方式为非对齐读,且所述读取长度大于文件***中数据块的大小,则根据所述读取起始位置和所述读取长度确定需要进行读取的第二目标数据块和第二目标数据区域;
根据所述第二目标数据块和所述第二目标数据区域的位图数据标记,确定对应的读取位置;
分别从各个读取位置进行数据读取,在读取完成后拼接得到完整的数据内容并返回至所述数据读取请求的发起方。
为实现上述目的,本申请提供了一种集群文件***的数据读写装置,包括:
请求获取模块,用于获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
对齐确定模块,用于根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;
区域标记模块,用于如果所述数据写入请求对应的写入方式为非对齐写,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
数据写入模块,用于从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
可选的,所述区域标记模块,包括:
第一确定单元,用于若所述写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;
第二确定单元,用于根据所述写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;
第一标记单元,用于对所述第一目标数据块和所述目标区域对应的位图数据进行标记;
第二标记单元,用于若所述写入数据长度小于文件***中数据块的大小,则根据所述写入数据长度确定所需第一目标数据区域的数量,并对所述第一目标数据区域对应的位图数据进行标记。
可选的,还包括:
请求接收模块,用于接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
读取确定模块,用于根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
标记判断模块,用于若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;
数据读取模块,用于如果已经被标记,则直接从当前Reflink文件中读取对应的数据;如果未被标记,则在共享数据区域中进行数据读取。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种集群文件***的数据读写方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种集群文件***的数据读写方法的步骤。
通过以上方案可知,本申请提供的一种集群文件***的数据读写方法,包括:获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;如果否,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。由上可知,本申请预先将数据块划分为预设数量的数据区域,数据区域可作为最小的数据读写单元,在进行数据写入时,可根据当前写入请求对应的写入起始位置和写入数据长度对需要写入的数据区域进行标记,进而可将标记的数据区域的原始数据读出,并写入待写入的数据,也即,本申请针对小于数据块大小的数据变动,可以较小的数据区域为单位进行读写,避免浪费不必要的资源,提升了数据读写性能。
本申请还公开了一种集群文件***的数据读写装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种集群文件***的数据读写方法的流程图;
图2为本申请实施例公开的一种具体的数据块划分示意图;
图3为本申请实施例公开的一种具体的数据组织方式示意图;
图4为本申请实施例公开的另一种集群文件***的数据读写方法的流程图;
图5为本申请实施例公开的一种集群文件***的数据读写装置的结构图;
图6为本申请实施例公开的一种电子设备的结构图;
图7为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统技术中,Reflink的拷贝数据块大小默认1M,在对Reflink文件写时,发现较源文件有变化,会将源文件数据拷贝一份,然后将数据写入相应的数据区域。对于小于1M的数据变动,也会导致较多的数据拷贝,造成不必要的资源浪费。
因此,本申请实施例公开了一种集群文件***的数据读写方法,避免浪费不必要的资源,提升了数据读写性能。
参见图1所示,本申请实施例公开的一种集群文件***的数据读写方法包括:
S101:获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
本申请实施例中,可获取客户端发起的数据写入请求,通过对其进行解析,确定当前数据写入请求对应的写入起始位置以及写入数据长度。
S102:根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;如果否,则进入步骤S103;
可以理解的是,本步骤可以根据上述写入起始位置、写入数据长度以及当前集群文件***中数据块的大小确定当前数据写入请求对应的写入方式是否为对齐写。具体地,可以判断写入起始位置和写入数据长度是否为数据块大小的整数倍。如果均是,则表征当前写入方式为对齐写;如果任一不满足,则表征当前写入方式为非对齐写。
S103:根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
如果当前写入方式为非对齐写,则需要根据写入起始位置和写入数据长度确定数据需要写入的第一目标数据区域。需要指出的是,本申请实施例预先将集群文件***中原本固定的数据块划分为预设数量的数据区域,可以更加精细化数据读写单位。例如,原始的数据块大小默认为1M,如图2所示,本申请实施例以4K为单位再次将其划分为256个,并使用bitmap的数据结构进行存储。其中,按照4K为单位进行划分是由于Linux***中的PageCache大小为4K,也即,可以使用默认的PageCache大小作为最小的数据区域。在具体实施中,可以根据实际情况进行设定,本实施例并不对具体的数据区域大小进行限定。
在确定数据需要写入的第一目标数据区域之后,可以进一步对第一目标数据区域进行标记。例如,各个数据块对应的bitmap区域默认全为0。当向某个1M区间内某4K数据区域写入数据时,将4K数据区间相对应的位图标记修改为1。小于4K的数据区域被写时,同样标记为1。若写入长度大于4K小于8K,则对两个数据区域对应的位图标记进行修改。
具体地,上述根据写入起始位置和写入数据长度对数据块中的第一目标数据区域进行标记的过程可以据图包括:若写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;根据写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;对第一目标数据块和目标区域对应的位图数据进行标记;若写入数据长度小于文件***中数据块的大小,则根据写入数据长度确定所需第一目标数据区域的数量,并对第一目标数据区域对应的位图数据进行标记。
S104:从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
本步骤中,在对目标数据区域进行标记之后,将从标记过的数据区域中读出原始数据保存至引用计数树中对应的数据区域,进而可根据写入起始位置进行数据的写入。
需要指出的是,如图3所示,Reflink的数据区域采用Refcount Tree(引用计数树)的数据组织方式解决两个文件同一个数据块的引用问题。具有Reflink关系的文件共享同一个Refcount Tree,不同的Reflink文件拥有独立的Refcount Tree。其中,Cpos表示数据区域的位置,clusters为数据区域大小,一个clusters可以包括多个cluster,cluster的默认数据块大小为1M,refcount表示被多少reflink文件引用。
可以理解的是,若当前数据写入请求对应的写入方式为对齐写,则可以根据写入起始位置和写入数据长度确定所需的第一目标数据块,并直接对第一目标数据块对应的位图数据进行全部标记,进而可根据标记将第一目标数据块的数据转存至引用计数树中对应的数据区域。在读取完成后,根据写入起始位置将待写入数据写入第一目标数据块中。
本申请预先将数据块划分为预设数量的数据区域,数据区域可作为最小的数据读写单元,在进行数据写入时,可根据当前写入请求对应的写入起始位置和写入数据长度对需要写入的数据区域进行标记,进而可将标记的数据区域的原始数据读出,并写入待写入的数据,也即,本申请针对小于数据块大小的数据变动,可以较小的数据区域为单位进行读写,避免浪费不必要的资源,提升了数据读写性能。
本申请实施例公开了另一种集群文件***的数据读写方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图4所示,具体的:
S201:接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
S202:根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
本申请实施例中,可根据读取起始位置、读取长度和集群文件***中数据块的大小,判断当前数据读取请求对应的读取方式是否为对齐读。具体地,可判断读取起始位置、读取长度是否为数据块大小的整数倍。如果均是,则表征当前读取方式为对齐读;如果任一不满足,则表征当前读取方式为非对齐读。
S203:若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;如果是,则进入步骤S204;如果否,则进入步骤S205;
S204:直接从当前Reflink文件中读取对应的数据;
S205:在共享数据区域中进行数据读取。
可以理解的是,若当前数据读取请求为对齐读,则可确定当前数据读取请求对应的数据块,并判断该数据块的位图标记是否已经被标记。如果是,则直接从当前Reflink文件中读取请求所需的数据;如果否,则可在共享数据区域中读取相应的数据。
若当前数据读取请求为非对齐读,则判断读取长度是否大于文件***中数据块的大小。如果小于数据块的大小,则可参考对齐读的流程。如果大于数据块的大小,则可根据读取起始位置和读取长度确定需要进行读取的第二目标数据块和第二目标数据区域,并根据第二目标数据块和第二目标数据区域的位图数据标记,确定对应的读取位置。也即,针对有标识的可直接从Reflink文件中读取,无标识的则从共享数据区域中读取。在分别读取完成后可以拼接得到完整的数据内容,将读取结果返回至数据读取请求的发起方。
下面对本申请实施例提供的一种集群文件***的数据读写装置进行介绍,下文描述的一种集群文件***的数据读写装置与上文描述的一种集群文件***的数据读写方法可以相互参照。
参见图5所示,本申请实施例提供的一种集群文件***的数据读写装置包括:
请求获取模块301,用于获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
对齐确定模块302,用于根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;
区域标记模块303,用于如果所述数据写入请求对应的写入方式为非对齐写,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
数据写入模块304,用于从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
关于上述模块301至304的具体实施过程可参考前述实施例提供的相应内容,在此不再进行赘述。
在上述实施例的基础上,作为一种优选实施方式,上述区域标记模块可以具体包括:
第一确定单元,用于若所述写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;
第二确定单元,用于根据所述写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;
第一标记单元,用于对所述第一目标数据块和所述目标区域对应的位图数据进行标记;
第二标记单元,用于若所述写入数据长度小于文件***中数据块的大小,则根据所述写入数据长度确定所需第一目标数据区域的数量,并对所述第一目标数据区域对应的位图数据进行标记。
在上述实施例的基础上,作为一种优选实施方式,上述数据读写装置还可以进一步包括:
请求接收模块,用于接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
读取确定模块,用于根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
标记判断模块,用于若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;
数据读取模块,用于如果已经被标记,则直接从当前Reflink文件中读取对应的数据;如果未被标记,则在共享数据区域中进行数据读取。
本申请还提供了一种电子设备,参见图6所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机可读指令,该内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述实施例公开的任一种集群文件***的数据读写方法的步骤。
在上述实施例的基础上,作为优选实施方式,参见图7所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图7仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例公开的任一种集群文件***的数据读写方法的步骤。
本申请针对小于数据块大小的数据变动,可以较小的数据区域为单位进行读写,避免浪费不必要的资源,提升了数据读写性能。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种集群文件***的数据读写方法,其特征在于,包括:
获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;
如果否,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
2.根据权利要求1所述的数据读写方法,其特征在于,所述根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,包括:
若所述写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;
根据所述写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;
对所述第一目标数据块和所述第一目标数据区域对应的位图数据进行标记;
若所述写入数据长度小于文件***中数据块的大小,则根据所述写入数据长度确定所需第一目标数据区域的数量,并对所述第一目标数据区域对应的位图数据进行标记。
3.根据权利要求1所述的数据读写方法,其特征在于,所述确定所述数据写入请求对应的写入方式是否为对齐写之后,还包括:
若当前所述数据写入请求对应的写入方式为对齐写,则根据所述写入起始位置,所述写入数据长度确定所需的第一目标数据块;
对所述第一目标数据块对应的位图数据进行标记,根据标记将所述第一目标数据块的数据转存至引用计数树中对应的数据区域;
根据所述写入起始位置将所述待写入数据写入所述第一目标数据块中。
4.根据权利要求1至3任一项所述的数据读写方法,其特征在于,还包括:
接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;
如果是,则直接从当前Reflink文件中读取对应的数据;
如果否,则在共享数据区域中进行数据读取。
5.根据权利要求4所述的数据读写方法,其特征在于,所述根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读之后,还包括:
若所述数据读取请求对应的读取方式为非对齐读,且所述读取长度大于文件***中数据块的大小,则根据所述读取起始位置和所述读取长度确定需要进行读取的第二目标数据块和第二目标数据区域;
根据所述第二目标数据块和所述第二目标数据区域的位图数据标记,确定对应的读取位置;
分别从各个读取位置进行数据读取,在读取完成后拼接得到完整的数据内容并返回至所述数据读取请求的发起方。
6.一种集群文件***的数据读写装置,其特征在于,包括:
请求获取模块,用于获取数据写入请求,通过解析所述数据写入请求得到写入起始位置和写入数据长度;
对齐确定模块,用于根据所述写入起始位置,所述写入数据长度和文件***中数据块的大小,确定所述数据写入请求对应的写入方式是否为对齐写;
区域标记模块,用于如果所述数据写入请求对应的写入方式为非对齐写,则根据所述写入起始位置、所述写入数据长度对数据块中的第一目标数据区域进行标记,所述数据块预先划分为预设数量的数据区域;
数据写入模块,用于从添加标记的第一目标数据区域中读取原始数据保存至引用计数树中对应的数据区域,并在读取完成后将待写入数据写入所述第一目标数据区域中。
7.根据权利要求6所述的数据读写装置,其特征在于,所述区域标记模块,包括:
第一确定单元,用于若所述写入数据长度大于文件***中数据块的大小,则确定所需的第一目标数据块;
第二确定单元,用于根据所述写入数据长度超出数据块大小整数倍的部分确定所需第一目标数据区域的数量;
第一标记单元,用于对所述第一目标数据块和所述第一目标数据区域对应的位图数据进行标记;
第二标记单元,用于若所述写入数据长度小于文件***中数据块的大小,则根据所述写入数据长度确定所需第一目标数据区域的数量,并对所述第一目标数据区域对应的位图数据进行标记。
8.根据权利要求6所述的数据读写装置,其特征在于,还包括:
请求接收模块,用于接收数据读取请求,并对所述数据读取请求解析得到读取起始位置和读取长度;
读取确定模块,用于根据所述读取起始位置、所述读取长度和文件***中数据块的大小,确定所述数据读取请求对应的读取方式是否为对齐读;
标记判断模块,用于若所述数据读取请求对应的读取方式为对齐读,则判断对应的数据块是否已经被标记;
数据读取模块,用于如果已经被标记,则直接从当前Reflink文件中读取对应的数据;如果未被标记,则在共享数据区域中进行数据读取。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述集群文件***的数据读写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述集群文件***的数据读写方法的步骤。
CN202010567622.8A 2020-06-19 2020-06-19 集群文件***的数据读写方法、装置及设备和存储介质 Active CN111737221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010567622.8A CN111737221B (zh) 2020-06-19 2020-06-19 集群文件***的数据读写方法、装置及设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010567622.8A CN111737221B (zh) 2020-06-19 2020-06-19 集群文件***的数据读写方法、装置及设备和存储介质

Publications (2)

Publication Number Publication Date
CN111737221A CN111737221A (zh) 2020-10-02
CN111737221B true CN111737221B (zh) 2022-04-22

Family

ID=72651801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010567622.8A Active CN111737221B (zh) 2020-06-19 2020-06-19 集群文件***的数据读写方法、装置及设备和存储介质

Country Status (1)

Country Link
CN (1) CN111737221B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108765341B (zh) * 2018-05-29 2022-06-21 郑州云海信息技术有限公司 一种图像处理的方法及其装置
CN113703673B (zh) * 2021-07-30 2023-09-22 郑州云海信息技术有限公司 一种单机数据存储方法及相关装置
CN113821485A (zh) * 2021-09-27 2021-12-21 深信服科技股份有限公司 一种数据变更方法、装置、设备及计算机可读存储介质
CN115826878B (zh) * 2023-02-14 2023-05-16 浪潮电子信息产业股份有限公司 一种写时拷贝方法、装置、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021333A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 随机读写数据的***、装置及方法
CN109062512A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种分布式存储集群、数据读写方法、***及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193882B (zh) * 2010-03-15 2014-09-10 京瓷办公信息***株式会社 数据处理装置以及数据处理方法
CN108984312B (zh) * 2017-06-02 2022-03-25 伊姆西Ip控股有限责任公司 数据读写的方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021333A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 随机读写数据的***、装置及方法
CN109062512A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种分布式存储集群、数据读写方法、***及相关装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"REACT: Read/Write Error Rate Aware Coding Technique for Emerging STT-MRAM Caches";Ensieh Aliagha等;《IEEE Transactions on Magnetics ( Volume: 55, Issue: 5, May 2019)》;20190404;第1-8页 *
"一种基于区域的动态分块图象检索方法";李学龙等;《电路与***学报》;20040108;第1-5页 *

Also Published As

Publication number Publication date
CN111737221A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN111737221B (zh) 集群文件***的数据读写方法、装置及设备和存储介质
CN109062512B (zh) 一种分布式存储集群、数据读写方法、***及相关装置
CN107870728B (zh) 用于移动数据的方法和设备
US11003625B2 (en) Method and apparatus for operating on file
EP3252592A1 (en) Method and device for storing and reading data
WO2017020647A1 (zh) 基于新型存储器的嵌入式文件***及其实现方法
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
CN107835986B (zh) 一种电子设备的数据操作方法及电子设备
CN111177113B (zh) 数据迁移方法、装置、计算机设备和存储介质
CN111880744B (zh) 一种数据迁移方法、装置、电子设备和介质
CN110555073A (zh) 一种数据处理方法、装置及电子设备和存储介质
CN111124280A (zh) 一种数据追加写入方法、装置及电子设备和存储介质
CN112269659A (zh) 一种资源管理方法、***及电子设备和存储介质
CN110222046B (zh) 列表数据的处理方法、装置、服务器和存储介质
KR20120037381A (ko) 소프트웨어 컴포넌트 상태에 대한 접근 제어
CN111241071A (zh) 一种数据迁移方法、***、设备及计算机可读存储介质
CN117369731B (zh) 一种数据的缩减处理方法、装置、设备及介质
CN104216834A (zh) 一种内存访问的方法、缓冲调度器和内存模块
CN111090397B (zh) 一种数据重删方法、***、设备及计算机可读存储介质
US8090927B2 (en) Method and system for executing applicatons, storage medium controller and storage device
CN113127438B (zh) 用于存储数据的方法、装置、服务器和介质
CN106775445B (zh) 数据迁移方法及装置
US20140258347A1 (en) Grouping files for optimized file operations
CN111782717A (zh) 一种数据处理方法、***及电子设备和存储介质
CN111078384A (zh) 核心数据迁移的方法、装置、计算机设备及存储介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231117

Address after: Room 2301, No. 395 Linjiang Avenue, Tianhe District, Guangzhou City, Guangdong Province, 510655 (Location: Self made Unit 01)

Patentee after: Guangdong Inspur Intelligent Computing Technology Co.,Ltd.

Patentee after: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd.

Address before: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Patentee before: INSPUR ELECTRONIC INFORMATION INDUSTRY Co.,Ltd.