一种元数据处理方法及装置与流程

文档序号:12837216阅读:179来源:国知局
一种元数据处理方法及装置与流程

本发明涉及计算机领域,尤其涉及一种元数据处理方法及装置。



背景技术:

目前,随着闪存介质产品在手机、平板、电视和手表等范围的应用越来越广泛,闪存介质产品的可靠性也变得非常重要。闪存介质产品的可靠性主要指闪存介质产品的文件系统的可靠性。闪存介质产品的文件系统的数据分为元数据和数据本身。元数据(metadata),又称中介数据或中继数据,是描述数据的数据(dataaboutdata),主要是描述数据属性(property)的信息,例如超级块,文件信息,映射表等关键数据。如果元数据损坏,不管文件系统的数据本身是否正确,数据都会变得不可用,因此,元数据的可靠性是闪存介质产品的文件系统的可靠性的关键。

在现有技术中,闪存介质产品的文件系统通常将元数据按顺序存放。示例的,以第四代扩展文件系统(英文全称:fourthextendedfilesystem,英文简称:ext4)的索引节点(inode)为例说明,索引节点为元数据的一部分。如图1所示,ext4的一个索引节点的大小为256字节(英文全称:byte,英文简称:b),一个块(block)的大小为4千字节(英文全称:kibibyte,英文简称:kb),一个块存放16个索引节点。其中,索引节点有需要频繁刷新的,例如索引节点2和索引节点32;或者很少刷新或根本不会刷新的,例如,索引节点1等。由于元数据在文件系统中是关联存储的,因此,在刷新过程中,如果遇到异常情况,例如,突然断电或电压波动等,整个块的元数据可能损坏,导致块上数据不一致,文件系统故障。



技术实现要素:

本发明的目的在于提供一种元数据处理方法及装置,通过隔离存储元数据,避免相互关联的元数据间的相互影响,从而来提高元数据的可靠性。

上述目标和其他目标将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。

第一方面,提供一种元数据处理方法,包括:

在计算机开机以后,计算机需要持续地读、写或处理文件系统中的数据,在计算机持续地读、写或处理文件系统中的数据中时,首先,确定元数据满足隔离存储策略,所述元数据为文件系统中的任意一个元数据,所述元数据存储在所述文件系统的第一块(block)中,所述第一块为所述文件系统包括的任意一个非预留块;然后,复制所述元数据,将复制的所述元数据存储到预留块中;生成预留编号,所述预留编号为存储在所述预留块中的复制的所述元数据的编号;将所述预留编号存储在所述第一块中,以便于处理所述第一块中的元数据时根据所述预留编号查找到复制的所述元数据,处理复制的所述元数据。

上述第一方面提供的元数据处理方法,当确定文件系统中的元数据满足隔离存储策略时,通过复制所述元数据,将复制的所述元数据存储到预留块中,同时,生成存储在所述预留块中的复制的所述元数据的预留编号,将所述预留编号存储在存储所述元数据的块中,从而将文件系统中的元数据根据隔离存储策略隔离存储,在处理元数据时根据预留编号查找到复制的所述元数据,处理复制的所述元数据,避免相互关联的元数据间的相互影响,从而提高元数据的可靠性。

在第一方面的第一种可实现方式中,所述判断元数据满足隔离存储策略包括:

判断所述元数据的平均刷新次数大于门限值。

在第一方面的第二种可实现方式中,所述判断元数据满足隔离存储策略包括:

判断所述元数据为预先配置的需要隔离存储的元数据。

结合第一方面、第一方面的第一种可实现方式至第一方面的第二种可实现方式中的任意一种,在第一方面的第三种可实现方式中,在将所述预留编号存储在所述第一块中之后,所述方法还包括:

当对所述元数据进行读、写或删除操作时,确定所述第一块中包括所述预留编号;根据所述预留编号查询到所述预留块中包括的复制的所述元数据,对所述预留编号对应的所述复制的所述元数据进行读、写或删除操作。

结合第一方面第三种可实现方式,在第一方面的第四种可实现方式中,所述预留编号为大于0的整数。

第二方面,提供一种元数据处理装置,包括:判断单元,用于确定元数据满足隔离存储策略,所述元数据为文件系统中的任意一个元数据,所述元数据存储在所述文件系统的第一块中,所述第一块为所述文件系统包括的任意一个非预留块;处理单元,用于复制所述判断单元确定的所述元数据,将复制的所述元数据存储到预留块中;生成单元,用于生成预留编号,所述预留编号为存储在所述预留块中的复制的所述元数据的编号;所述处理单元,还用于将所述生成单元生成的所述预留编号存储在所述第一块中。具体的实现方式可以参考第一方面提供的元数据处理方法中的行为的功能。

需要说明的是,上述第二方面所述功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。例如,通信接口,用于完成接收单元和发送单元的功能,处理器,用于完成处理单元的功能。处理器、通信接口和存储器通过总线连接并完成相互间的通信。具体的,可以参考第一方面提供的元数据处理方法中的行为的功能。

本发明中,元数据处理装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,属于本发明权利要求及其等同技术的范围之内。

本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供的一种索引节点存储示意图;

图2为本发明实施例提供的一种闪存介质产品的逻辑结构示意图;

图3为本发明实施例提供的一种计算机设备的硬件结构示意图;

图4为本发明实施例提供的一种元数据处理方法流程图;

图5为本发明实施例提供的另一种元数据处理方法流程图;

图6为本发明实施例提供的一种索引节点存储示意图;

图7为本发明实施例提供的一种元数据处理装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。

本发明的基本原理在于:现有的闪存介质产品的文件系统通常将元数据按顺序存放,如果一个元数据损坏,将导致整个文件系统故障的情况下,本发明中当确定文件系统中的元数据满足隔离存储策略时,通过复制所述元数据,将复制的所述元数据存储到预留块中,同时,生成存储在所述预留块中的复制的所述元数据的预留编号,将所述预留编号存储在存储所述元数据的块中,也就是非预留块中,从而实现将文件系统中的元数据根据隔离存储策略隔离存储,在处理非预留块中的元数据时,根据预留编号在预留块中查找到复制的所述元数据,处理预留块中包括的复制的所述元数据,克服了处理非预留块中的所述元数据,避免元数据间的相互影响,从而提高元数据的可靠性。

下面将参考附图详细描述本发明的实施方式。

本发明实施例提供一种闪存介质产品的逻辑结构示意图,如图2所示,包括:应用层(application)、系统会话层(systemcall)、虚拟文件系统层(vfs)、文件系统(filesystem)、设备驱动(devicedriver)和闪存(flash)。其中,文件系统可以是ext3、ext4、闪存日志型文件系统第2版(英文全称:journallingflashfilesystemversion2,英文简称:jffs2)和b-tree文件系统(brtfs)中的任意一种。

文件系统,也称为文件管理系统,是计算机的操作系统中负责管理和存储文件信息的软件机构,也是在存储设备上组织文件的方法。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

如图3所示,图2中的闪存介质产品可以以图3中的计算机设备(或系统)的方式来实现。

图3所示为本发明实施例提供的计算机设备的硬件结构示意图。计算机设备100包括至少一个处理器101,通信总线102,存储器103以及至少一个通信接口104。

处理器101可以是一个处理器,也可以是多个处理元件的统称。例如,处理器101可以是一个通用中央处理器(英文全称:centralprocessingunit,英文简称:cpu),也可以是特定应用集成电路(英文全称:application-specificintegratedcircuit,英文简称:asic),或一个或多个用于控制本发明方案程序执行的集成电路,例如:一个或多个微处理器(英文全称:digitalsignalprocessor,英文简称:dsp),或,一个或者多个现场可编程门阵列(英文全称:fieldprogrammablegatearray,英文简称:fpga)。

在具体实现中,作为一种实施例,处理器101可以包括一个或多个cpu,例如图3中的cpu0和cpu1。

在具体实现中,作为一种实施例,计算机设备100可以包括多个处理器,例如图3中的处理器101和处理器105。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

通信总线102可以是工业标准体系结构(英文全称:industrystandardarchitecture,英文简称:isa)总线、外部设备互连(英文全称:peripheralcomponent,英文简称:pci)总线或扩展工业标准体系结构(英文全称:extendedindustrystandardarchitecture,英文简称:eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器103可以是只读存储器(英文全称:read-onlymemory,英文简称:rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(英文全称:electricallyerasableprogrammableread-onlymemory,英文简称:eeprom)、只读光盘(英文全称:compactdiscread-onlymemory,英文简称:cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存 储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,所述存储器103用于存储实现本发明实施例提供的方案的应用程序代码,并由处理器101来控制执行。所述处理器101用于执行所述存储器103中存储的应用程序代码以用于实现本发明实施例提供的方案。

所述通信接口104,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(ran),无线局域网(英文全称:wirelesslocalareanetworks,英文简称:wlan)等。通信接口104可以包括接收单元实现接收功能,以及发送单元实现发送功能。

在具体实现中,作为一种实施例,图3所示的计算机设备100可以是图2中的闪存介质产品。

处理器101,用于判断元数据满足隔离存储策略;

所述处理器101,还用于复制所述元数据,将复制的所述元数据存储到预留块中;

所述处理器101,还用于生成预留编号;

所述处理器101,还用于将所述预留编号存储在所述第一块中。

存储器103,用于存储元数据,以及复制的元数据。

通信接口104,用于闪存介质产品与其他设备传输数据。

实施例1

本发明实施例提供一种元数据处理方法,如图4所示,包括:

步骤201、确定元数据满足隔离存储策略。

需要说明的是,这里的元数据指的是文件系统中的任意一个元数据。也就是在进行数据处理时,文件系统中的任意一个元数据都需要进行判断,判断是否满足隔离存储策略,来执行步骤202至步骤204,以便于将不同的元数据隔离存储。元数据可以存储在所述文件系统的第一块(block)中,所述第一块为所述文件系统包括的任意一个非预留块。这里的“第一”只是用于区分不同的块,并不是指第一个块,本发明对此不作限定。

步骤202、复制元数据,将复制的元数据存储到预留块中。

复制满足隔离存储策略的元数据,将复制的所述元数据存储到文件系统的预留块中。这里的预留块指的是空闲的,没有存储元数据的块。

步骤203、生成预留编号。

所述预留编号为存储在所述预留块中的复制的所述元数据的编号。所述预留编号为大于0的整数。

步骤204、将预留编号存储在第一块中。

也就是将预留编号存储在存储元数据的非预留块中,无需删除存储在第一块中的元数据。

这样一来,当确定文件系统中的元数据满足隔离存储策略时,通过复制所述元数据,将复制的所述元数据存储到预留块中,同时,生成存储在所述预留块中的复制的所述元数据的预留编号,将所述预留编号存储在存储所述元数据的块中,也就是非预留块中,从而实现将文件系统中的元数据根据隔离存储策略隔离存储,在处理非预留块中的元数据时,根据预留编号在预留块中查找到复制的所述元数据,处理预留块中包括的复制的所述元数据,克服了处理非预留块中的所述元数据,避免元数据间的相互影响,从而提高元数据的可靠性。

上述图4所示的方法步骤具体的可以由图3所示的计算机设备实现。示例的,步骤201所述的判断元数据满足隔离存储策略等方法步骤都可以由处理器101来实现。

进一步的,如图5所示,步骤201所述的判断元数据满足隔离存储策略具体的可以由步骤201a或步骤201b实现,具体的如下详细步骤所述:

步骤201a、确定元数据的平均刷新次数大于门限值。

这里的平均刷新次数指的是每次开机使用元数据的过程中刷新元数据的次数的平均值。

步骤201b、确定元数据为预先配置的需要隔离存储的元数据。

预先配置可以是用户根据需要隔离存储的元数据的需求配置的。

在步骤204所述的将所述预留编号存储在所述第一块中之后,可以对所述元数据进行处理,所述处理可以是读元数据、写元数据或者删除元数据。具体如以下详细步骤所述:

步骤205、确定第一块中包括预留编号。

步骤206、根据预留编号查询到预留块中包括的复制的所述元数据,处理所述复制的所述元数据。

需要说明的是,确定第一块中没有包括预留编号,直接处理元数据。

根据隔离存储策略将元数据进行隔离存储,提高元数据的可靠性,减 少文件系统故障的概率。将元数据进行隔离存储后,在刷新隔离存储的元数据过程中,即使遇到异常情况,也只会损坏隔离存储的元数据,不会影响到其他元数据。通常,频繁刷新的元数据一般不是系统重要数据,损坏也不会导致系统故障;而很少刷新或不刷新的元数据一般是系统关键数据,在将频繁刷新的元数据进行隔离存储后,很少刷新或不刷新的元数据得到保护不会被破坏。

示例的,如图1所示,隔离存储前的索引节点存储示意图,图1中所述的组(group)1中的索引节点2和索引节点32为需要频繁刷新的索引节点。如图6所示,隔离存储后的索引节点存储示意图,当索引节点2和索引节点32满足隔离存储策略,生成伙伴索引节点2和伙伴索引节点32,将伙伴索引节点2和伙伴索引节点32存储到组n的块中,并将伙伴索引节点2和伙伴索引节点32在组n的块中的编号存储到组1中的索引节点2和索引节点32中。块n为预留块。

当读或写索引节点2时,首先找到组1中的索引节点2,检查组1中的索引节点2的结构中是否有伙伴索引节点2的编号,如果没有,说明还不需要隔离存放索引节点2,直接读或写组1中的索引节点2;如果有伙伴索引节点2的编号,使用伙伴索引节点2的编号查找到组n的块中伙伴索引节点2,对伙伴索引节点2进行读或写。

当删除索引节点2时,在删除索引节点2之前,检查组1中的索引节点2的结构中是否有伙伴索引节点2的编号,如果没有,直接删除组1中的索引节点2;如果有伙伴索引节点2的编号,使用伙伴索引节点2的编号查找到组n的块中伙伴索引节点2,删除组n的块中伙伴索引节点2,再删除组1中的索引节点2。

同理,索引节点32也可以按照处理索引节点2的方法处理索引节点32。

这样一来,对系统修改在于通过真实的索引节点映射到伙伴索引节点,伙伴索引节点成为频繁刷新的索引节点,真实索引节点变成不刷新的索引节点,从而实现隔离功能,避免元数据间的相互影响,提高元数据的可靠性。

上述图5所示的方法步骤具体的可以由图3所示的计算机设备实现。

实施例2

本发明实施例提供一种元数据处理装置30,如图7所示,包括:

判断单元301,用于确定元数据满足隔离存储策略,所述元数据为文件系统中的任意一个元数据,所述元数据存储在所述文件系统的第一块block中,所述第一块为所述文件系统包括的任意一个非预留块;

处理单元302,用于复制所述判断单元301确定的所述元数据,将复制的所述元数据存储到预留块中;

生成单元303,用于生成预留编号,所述预留编号为存储在所述预留块中的复制的所述元数据的编号;

所述处理单元302,还用于将所述生成单元303生成的所述预留编号存储在所述第一块中。

这样一来,当确定文件系统中的元数据满足隔离存储策略时,通过复制所述元数据,将复制的所述元数据存储到预留块中,同时,生成存储在所述预留块中的复制的所述元数据的预留编号,将所述预留编号存储在存储所述元数据的块中,也就是非预留块中,从而实现将文件系统中的元数据根据隔离存储策略隔离存储,在处理非预留块中的元数据时,根据预留编号在预留块中查找到复制的所述元数据,处理预留块中包括的复制的所述元数据,克服了处理非预留块中的所述元数据,避免元数据间的相互影响,从而提高元数据的可靠性。

在本实施例中,元数据处理装置30是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(英文全称:application-specificintegratedcircuit,英文简称:asic),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到元数据处理装置30可以采用图7所示的形式。判断单元301,处理单元302和生成单元303可以通过图3的计算机设备来实现,具体的,判断单元301,处理单元302和生成单元303可以由处理器101实现。

本发明实施例还提供了一种计算机存储介质,用于储存为上述图5所示的元数据处理装置所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以处理元数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个 以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:random-accessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1