文件操作请求处理方法及装置制造方法

文档序号:6516698阅读:241来源:国知局
文件操作请求处理方法及装置制造方法
【专利摘要】本发明公开了一种文件操作请求处理方法及装置,以解决现有执行文件操作请求过程,执行效率较低的问题。本发明中接收文件操作请求,生成日志,并将日志写入具有数据保护功能的内存中,日志成功写入到内存时,执行文件操作请求,并在发生故障时,据内存中的日志进行磁盘执行重新操作或者撤销复操作。通过本发明能够提高写入日志的速度,提高文件系统对磁盘操作的执行效率,并避免耗时的一致性检查。
【专利说明】文件操作请求处理方法及装置
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种文件操作请求处理方法及装置。
【背景技术】
[0002]文件系统的一致性,对于计算机数据存储系统的可靠性至关重要。因此,为了保证计算机数据存储系统的可靠性,往往需要对文件系统进行一致性检查,在对文件系统进行一致性检查时,不可避免的会对文件系统的磁盘数据进行操作,例如写入新的文件数据、修改文件系统元数据(超级块、块组描述符、索引节点和间接块等)或文件数据等操作,以保证文件系统的一致性。
[0003]为了避免对整个文件系统进行耗时的一致性检查,一般都会在文件系统中引入日志的功能,利用日志记录磁盘数据的操作信息,引入日志功能的文件系统称为日志文件系统。
[0004]日志文件系统一般会在磁盘中设置一专门用于存储日志的磁盘区域,即日志区,当日志文件系统接收到对磁盘数据进行操作的文件操作请求指令时,生成对磁盘数据进行相应操作的日志,并把该日志保存在日志区,当把日志成功保存到日志区后,再根据接收到的文件操作请求对磁盘数据进行相应操作。在对磁盘数据进行操作过程中,若文件系统发生故障,则可以利用日志区保存的日志,很快的完成文件系统的重新挂载。
[0005]上述对文件操作请求处理的过程中,不仅需要将记录磁盘数据操作信息的日志保存在磁盘中,而且在文件系统发生故障对文件系统重新挂载时,也需要从磁盘的日志区中获取日志,然而磁盘的访问速度有限,故采用上述方式对磁盘数据进行操作,会降低磁盘数据的操作效率,执行效率较低,并且上述处理过程也不能完全保证文件系统的一致性,仍需要耗时的一致性检查。

【发明内容】

[0006]本发明实施例提供一种文件操作请求处理方法及装置,以解决现有文件操作请求处理过程中,执行效率较低并需要耗时的一致性检查问题。
[0007]第一方面,提供一种文件操作请求处理方法,所述方法应用于存储设备中,所述存储设备包括内存,所述内存包括日志区,所述日志区具有数据保护功能,所述方法包括:
[0008]接收文件操作请求,根据所述文件操作请求生成日志;
[0009]将所述日志写入内存;
[0010]对磁盘进行与所述文件操作请求对应的操作;
[0011]当对磁盘进行与所述文件操作请求对应的操作时,若所述存储设备发生故障,则判断所述内存的保电时间是否大于预设阈值;
[0012]当所述内存的保电时间大于预设阈值时,利用数据保护功能以及所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作;
[0013]当所述内存的保电时间小于预设阈值时,利用数据保护功能以及所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作。
[0014]结合第一方面,在第一种可能的实现方式中,所述判断所述内存的保电时间是否大于预设阈值,具体包括:
[0015]预先设定阈值,所述阈值为备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值;
[0016]获取备用电源当前剩余电量以及欲写入磁盘的数据量;
[0017]将所述剩余电量与所述欲写入磁盘的数据量之间的比值,作为所述内存的保电时间;
[0018]将所述保电时间与预先设定的阈值进行比较,以判断所述内存的保电时间是否大于预设阈值。
[0019]结合第一方面,在第二种可能的实现方式中,利用所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作,包括:
[0020]解析日志中记录的元数据信息以及文件操作信息;
[0021]根据所述元数据信息以及所述文件操作信息,重新对磁盘执行与所述文件操作请求对应的操作。
[0022]结合第一方面,在第三种可能的实现方式中,利用所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作,包括:
[0023]解析日志中记录的文件操作信息;
[0024]根据所述文件操作信息,确定原始元数据和已操作元数据;
[0025]释放所述已操作元数据以及与已操作元数据对应的操作,并将所述原始元数据设置为有效。
[0026]结合第一方面、第一方面的第一种可能实现方式、第一方面的第二种可能实现方式或者第一方面的第三种可能实现方式,在第四种可能的实现方式中,该方法还包括:
[0027]当执行完成所述文件操作请求时,或者完成撤销操作之后,删除内存的日志区中写入的所述日志。
[0028]第二方面,提供一种文件操作请求处理装置,包括生成单元、写入单元、操作单元和判断单元,其中:
[0029]所述生成单元,用于接收文件操作请求,根据所述文件操作请求生成日志,并把生成的日志传送给所述写入单元,将接收到的文件操作请求发送给所述操作单元;
[0030]所述写入单元,用于接收到所述生成单元传送的日志,将生成的日志写入内存,在将所述日志成功写入内存后,向所述操作单元发送成功写入的指令;
[0031]所述操作单元,用于接收所述生成单元发送的文件操作请求,以及所述写入单元发送的日志成功写入指令,执行所述文件操作请求;还用于接收所述判断单元发送的判断所述内存的保电时间是否大于预设阈值的判断结果,当所述内存的保电时间大于预设阈值时,利用数据保护功能以及所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作;当所述内存的保电时间小于预设阈值时,利用数据保护功能以及所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作;
[0032]所述判断单元,用于当对磁盘进行与所述文件操作请求对应的操作时,所述存储设备发生故障,判断所述内存的保电时间是否大于预设阈值,并将判断结果传送至所述操作单元。
[0033]结合第二方面,在第一种可能的实现方式中,所述判断单元,具体用于:
[0034]预先设定阈值,所述阈值为备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值;
[0035]获取备用电源当前剩余电量以及欲写入磁盘的数据量;
[0036]将所述剩余电量与所述欲写入磁盘的数据量之间的比值,作为所述内存的保电时间;
[0037]将所述保电时间与预先设定的阈值进行比较,以判断所述内存的保电时间是否大于预设阈值。
[0038]结合第二方面,在第二种可能的实现方式中,所述操作单元,具体用于:
[0039]解析日志中记录的元数据信息以及文件操作信息;
[0040]根据所述元数据信息以及所述文件操作信息,重新对磁盘执行与所述文件操作请求对应的操作。
[0041]结合第二方面,在第三种可能的实现方式中,所述操作单元,具体用于:
[0042]解析日志中记录的文件操作信息;
[0043]根据所述文件操作信息,确定原始元数据和已操作元数据;
[0044]释放所述已操作元数据以及与已操作元数据对应的操作,并将所述原始元数据设置为有效。
[0045]结合第二方面、第二方面的第一种可能实现方式、第二方面的第二种可能实现方式或者第二方面的第三种可能实现方式,在第四种可能的实现方式中,所述写入单元,还用于:
[0046]当执行完成所述文件操作请求时,或者完成撤销操作之后,删除内存的日志区中写入的所述日志。
[0047]根据本发明第一方面提供的文件操作请求处理方法以及第二方面提供的文件操作请求处理装置,执行文件操作请求过程中,将生成的日志写入内存,由于内存中文件的访问速度要大于磁盘中文件的访问速度,故本发明实施例中,将日志写入内存的日志区中相对于现有将日志写入磁盘日志区中,能够提高日志的写入速度,提高文件系统对磁盘数据操作的效率。并且通过判断内存保电时间是否大于预设阈值,采用利用内存中保存的日志快速继续执行对磁盘的操作,或者撤销已经执行的操作,能够保持系统一致性,在系统重新上电的时候,不需要对整个文件系统进行耗时的一致性检查
【专利附图】

【附图说明】
[0048]图1为本发明实施例提供的系统构成示意图;
[0049]图2为本发明实施例提供的操作磁盘数据的流程示意图;
[0050]图3为本发明实施例提供的操作磁盘数据的又一流程示意图;
[0051]图4为本发明实施例提供的操作磁盘数据的交互示意图;
[0052]图5A-图5C为本发明实施例操作请求处理示意图;
[0053]图6为本发明实施例提供的操作磁盘数据装置构成示意图;
[0054]图7为本发明实施例提供的存储器示意图。【具体实施方式】
[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056]本发明实施例提供的文件操作请求处理方法应用于如图1所示的具有日志文件系统的存储设备,该存储设备包括CPU控制器、内存和磁盘,内存中包括日志区,并且该日志区具有数据保护功能,日志区的数据保护功能是指存储在该日志区中的数据不会因为系统故障而丢失,换言之,包括该日志区的内存也具有数据保护功能。
[0057]如图1所示,为本发明实施例提供的内存具有数据保护功能的存储设备硬件构成示意图,CPU能够访问磁盘上的日志区也可访问内存中的日志区,内存中的某一设定空间内(内存的日志区)在未断电情况下被异常重启时存储的数据不会被初始化,备用电源能够在存储设备异常断电时继续维持存储设备进行工作,使内存的日志区中存储的数据能够被保持设定时长,因此,存放在内存中的信息是可靠的。本发明实施例中可将日志写入具有数据保护功能的内存中,在提高数据访问效率的同时,提高日志的可靠性。
[0058]实施例一
[0059]本发明实施例提供一种日志文件系统中文件操作请求处理方法,该方法的实现过程如图2所示,包括:
[0060]SlOl:接收文件操作请求。
[0061]具体的,本发明实施例中控制器接收对磁盘进行操作的文件操作请求,该文件操作请求中包括对磁盘进行操作的操作信息,例如文件句柄和文件偏移量等信息,本发明实施例中文件操作请求对应的对磁盘的操作包括写入磁盘数据、修改磁盘数据等,例如将文件数据写入到磁盘中或者对磁盘上文件系统元数据进行修改等。
[0062]S102:根据文件操作请求,生成日志。
[0063]本发明实施例中,当接收到用以指示对磁盘进行相应操作的文件操作请求指令时,解析文件操作请求中包含的对磁盘数据进行相应操作的操作信息,并将解析到的操作信息记录到日志中,生成日志。
[0064]S103:将生成的日志写入内存。
[0065]具体的,本发明实施例中内存具有数据保护功能,例如具有复位保护功能以及掉电保护功能,其中,复位保护功能指系统在未断电情况下被异常重启时内存的日志区中存储的数据不会被初始化,掉电保护功能指系统在异常断电时计算机系统可以利用备用电源供电,而继续工作指定的时长,在这个时间内,内存的日志区中的信息仍然存在,在这个时间内将数据写入到磁盘上。
[0066]S104:确定日志成功写入内存后,执行文件操作请求。
[0067]具体的,本发明实施例中当日志成功写入内存的日志区后,即当S102中生成的有关记录对磁盘进行操作的相应操作信息的日志全部写入内存的日志区后,执行文件操作请求,并对磁盘上的文件数据或者文件系统元数据等进行操作。
[0068]S105:若存储设备发生故障,判断内存的保电时间是否大于预设阈值。[0069]本发明实施例中当根据操作指令对磁盘进行与文件操作请求对应的操作时,若存储设备发生故障,则判断内存的保电时间是否大于预设阈值,根据判断结果,进行S106或进行S107。
[0070]具体的,本发明实施例中将备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值,作为预先设定的阈值,进行内存的保电时间是否大于预设阈值判断时,可获取备用电源当前剩余电量以及欲写入磁盘的数据量;将剩余电量与所述欲写入磁盘的数据量之间的比值,作为所述内存的保电时间;将所述保电时间与预先设定的阈值进行比较,以判断内存的保电时间是否大于预设阈值。
[0071]S106:当内存的保电时间大于预设阈值时,利用数据保护功能以及内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作。
[0072]本发明实施例中,由于日志写入到具有复位保护功能的内存,若内存的保电时间大于预设阈值,可利用数据保护功能以及写入内存中的日志,对磁盘重新执行文件操作请求对应的操作,完成对磁盘数据的修复操作,以保证系统的一致性。
[0073]S107:当内存的保电时间小于预设阈值时,利用数据保护功能以及内存中保存的日志,撤销已对磁盘进行的与文件操作请求对应的操作。
[0074]本发明实施例中,若存储设备发生故障,而内存的保电时间又不足以将欲写入磁盘的数据继续写入到磁盘中,则可利用日志中记录的操作信息撤销已经完成的部分操作,以保证系统的一致性。
[0075]本发明实施例中,执行文件操作请求对磁盘数据进行操作时,将记录操作磁盘数据相应操作信息的日志写入到内存中,由于文件系统访问内存的速度远高于其访问磁盘的速度,故本发明实施例中,将日志写入内存中相对于现有将日志写入磁盘中,能够提高对日志的写入速度,提高文件系统对磁盘数据操作的效率。
[0076]进一步的,本发明实施例中当对磁盘进行与文件操作请求对应的操作时,若存储设备发生故障,则判断内存的保电时间是否大于预设阈值,根据判断结果,利用内存中保存的日志快速继续执行对磁盘的操作,或者撤销已经执行的操作,能够保持系统一致性,在系统重新上电的时候,不需要对整个文件系统进行耗时的一致性检查。
[0077]实施例二
[0078]本发明实施例将结合实际应用对实施例一涉及的文件操作请求处理方法作进一步的详细说明,如图3所示,包括:
[0079]S201:接收包括操作信息的文件操作请求,并解析操作信息,生成日志。
[0080]具体的,本发明实施例中操作信息中包括的文件句柄和文件偏移量等信息,并根据解析的文件句柄和文件偏移量生成包括磁盘地址的日志,该磁盘地址即为可以直接操作磁盘的磁盘物理块号和磁盘物理偏移量等信息,将包括磁盘物理块号和磁盘物理偏移量等信息作为日志进行保存,可以将日志保存在存储设备中除磁盘以外的其他存储空间。
[0081]S202:将S201中生成的日志记录到内存中。
[0082]本发明实施例中具有数据保护功能的内存可以是具有复位保护功能的内存,也可以是具有掉电保护功能的内存。
[0083]复位保护功能是计算机系统的一种硬件和软件共同实现的功能,具备此功能的计算机在发生未断电被异常重启故障后,某段内存空间中的数据不会被重新初始化而保持其在重启前的内容。本发明实施例中依据同样的功能原理,可对运行在存储设备上的日志文件系统做复位保护功能设计,即在日志文件系统的内存中设置一具有复位保护功能的内存空间,将日志记录到具有复位保护功能的内存的日志区,使得系统在未断电情况下被异常重启时内存的日志区中存储的数据不会被重新初始化。
[0084]掉电保护功能是计算机系统的一种硬件上的功能,掉电保护功能是指计算机在失去主电源供电后仍可以利用备用电源工作,并在利用备用电源工作的这段时间内可以将内存中需要的信息写入到磁盘中以保存。本发明实施例中依据同样的功能原理,可对运行在存储设备上的日志文件系统做掉电保护功能设计,若存储设备发生异常断电故障,将内存的日志区中写入的日志在设定时长内迁移到磁盘,并在系统重新上电后,将迁移到磁盘的日志重新迁移回内存的日志区,根据迁移回内存的日志区的日志对磁盘数据进行修复操作。
[0085]具体的,本发明实施例中若存储设备发生异常断电故障,由于本发明实施例中内存的日志区具有掉电保护功能,故可在维持系统继续工作的设定时长内,将写入内存的日志区的日志迁移到磁盘,以避免内存中的日志丢失,保证日志的可靠性。在系统重新上电后,本发明实施例中为避免系统操作性能降低,则将迁移到磁盘的日志重新迁移回内存的日志区,根据迁移回内存的日志区的日志对磁盘数据进行修复操作。
[0086]S203:判断日志是否成功写入内存中,当成功写入内存时,进行S204,否则放弃对文件操作请求的执行,或者继续执行S202,再次尝试将S201中生成的日志写入到具有数据保护功能的内存空间中。
[0087]S204:执行文件操作请求。
[0088]具体的,本发明实施例中当日志成功写入到内存的日志区中,则执行文件操作请求,对磁盘进行相应操作。
[0089]进一步的,本发明实施例中日志保存在具有复位保护功能的内存的日志区中,故在执行文件操作请求过程中,若日志文件系统发生未断电被异常重启的故障时,则在日志文件系统进入恢复流程时,可利用具有复位保护的内存中未被重新初始化的日志或者利用根据从磁盘中迁移回内存中的日志,即内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作,或者撤销已对磁盘进行的、与所述文件操作请求对应的操作。
[0090]具体的,本发明实施例中,若内存的保电时间大于预设阈值,则利用内存中保存的日志继续对磁盘执行与文件操作请求对应的操作,解析日志中记录的元数据信息以及文件操作信息;根据元数据信息以及文件操作信息,重新对磁盘执行与文件操作请求对应的操作。
[0091]具体的,本发明实施例中若内存的保电时间小于预设阈值,利用内存中保存的日志,撤销已对磁盘进行的与文件操作请求对应的操作,包括:解析日志中记录的文件操作信息;根据文件操作信息,确定原始元数据和已操作元数据;释放已操作元数据以及与已操作元数据对应的操作,并将所述原始元数据设置为有效。
[0092]S205:删除内存中的日志。
[0093]本发明实施例中,为减少对系统资源的占用,当执行完成文件操作请求时,或者完成对撤销操作之后,可删除写入内存的日志。
[0094]需要说明的是,本发明实施例中S205步骤是可选的,并不是必须的。[0095]本发明实施例中,将日志写内存中,不仅提高了系统对磁盘数据的操作效率,并且该日志具有复位保护功能或者具有掉电保护功能,在提高日志文件系统文件写入性能的基础上,保证了写入内存中日志的可靠性。
[0096]实施例三
[0097]本发明实施例中,当接收到包括操作信息的文件操作请求时,解析操作信息,并根据解析到的操作信息生成日志,将生成的日志写入到具有掉电保护功能的内存的日志区中,当日志成功写入内存的日志区时,执行文件操作请求,并为减少对系统资源的占用,可在执行完成文件操作请求时,删除写入内存的日志区中的日志。
[0098]进一步的,在根据接收到的操作指令对日志文件系统中磁盘数据进行操作的过程中,若日志文件系统掉电,则在系统异常断电时,将内存中的日志迁移到磁盘中,并在系统重新上电后,将迁移到磁盘的日志迁移回内存的日志区中,然后根据从磁盘中迁移回内存的日志区中的日志,将磁盘中的数据恢复到发生故障之前未对磁盘数据进行操作的状态,或者在发生故障之前已经完成的操作基础上继续对磁盘数据进行操作,例如可以从日志中重新读取对磁盘数据进行操作的文件数据,继续对磁盘数据中未被操作的数据进行操作,最终使磁盘上的磁盘数据全部为操作指令指示的操作后的操作数据,保证日志文件系统的一致性。
[0099]本发明实施例中仅就执行文件操作请求对磁盘操作的过程结合附图进行说明,对于过程中涉及的具体实施方法,可参阅实施例一以及实施例二,在此不再赘述。如图4所示为本发明实施例中当系统发生异常掉电故障并进行修复操作的过程示意图,包括:
[0100]S301:控制器解析文件操作请求中的操作信息,生成日志,并将日志写入内存中,当日志成功写入内存时,执行S302。
[0101]S302:当成功写入日志到内存后,执行文件操作请求,对磁盘数据进行操作,由磁盘的管理模块向控制器反馈是否已经完成相应的操作。
[0102]S303:当系统掉电,发送异常掉电触发给内存中的管理模块,由内存中的管理模块反馈是否接收到异常掉电触发。
[0103]S304:内存中的管理模块收到异常掉电触发时,将内存中的日志迁移到磁盘中,并由磁盘的管理模块反馈迁移成功与否的信息。
[0104]S305:当掉电后重新上电时,将写入磁盘中的日志迁移回内存中,当日志迁移回内存成功后,进行S306。
[0105]S306:根据从磁盘中迁移回内存中的日志,对磁盘数据进行修复操作。
[0106]具体的,本发明实施例中对磁盘数据进行修复操作包括当内存保电时间大于预设阈值时,重新执行操作请求;当内存保电时间小于内存时,撤销已经执行的操作请求。
[0107]如图5A所示,元数据块A用于描述元数据A,当对磁盘数据进行操作时,文件系统要申请新的数据块B存放数据和新的元数据块B来描述新的数据块B,故若对磁盘执行继续操作或者重新操作,则利用日志中保存的元数据信息和操作信息,将原始元数据块A更新为元数据块B,数据块A更新为数据块B,可最终实现如图5B的过程,图中虚线框表示无效,实线框表示有效。若对磁盘执行撤销操作,则利用日志中记录的操作信息,确定原始元数据块A和已操作的元数据块B,将已操作的元数据块B和该元数据块B对应的数据块B释放,完成撤销操作,同时将原始元数据块A和其对应的元数据A设置为有效,以保证系统一致性,最终实现过程如图5C所示,图中虚线框表示无效,实线框表示有效。
[0108]本发明实施例中,将生成的日志,写入到内存中,能够保证日志的可靠性,并且根据迁内存中的日志对磁盘数据进行修复操作,保证日志文件系统的一致性。
[0109]实施例四
[0110]本发明实施例四提供一种文件操作请求处理装置,如图6所示,该装置包括生成单元50,写入单元51、操作单元52和判断单元53,其中,
[0111]生成单元50,用于接收文件操作请求,根据文件操作请求生成日志,并把生成的日志传送给写入单元51,将接收到的文件操作请求发送给操作单元52 ;
[0112]写入单元51,用于接收到生成单元50传送的日志,将生成的日志写入内存,在将日志成功写入内存后,向操作单元52发送成功写入的指令;
[0113]操作单元52,用于接收生成单元50发送的文件操作请求,以及写入单元51发送的日志成功写入指令,当接收到写入单元51发送的日志成功写入指令后,执行文件操作请求。
[0114]判断单元53,用于当对磁盘进行与文件操作请求对应的操作时,存储设备发生故障,判断内存的保电时间是否大于预设阈值,并将判断结果传送至操作单元52。
[0115]操作单元52,还用于接收判断单元53发送的判断内存的保电时间是否大于预设阈值的判断结果,当内存的保电时间大于预设阈值时,利用数据保护功能以及内存中保存的日志,继续对磁盘执行与文件操作请求对应的操作;当内存的保电时间小于预设阈值时,利用数据保护功能以及内存中保存的日志,撤销已对磁盘进行的、与文件操作请求对应的操作。
[0116]其中,判断单元53,具体用于:
[0117]预先设定阈值,该阈值为备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值;
[0118]获取备用电源当前剩余电量以及欲写入磁盘的数据量;
[0119]将剩余电量与欲写入磁盘的数据量之间的比值,作为内存的保电时间;
[0120]将保电时间与预先设定的阈值进行比较,以判断所述内存的保电时间是否大于预设阈值。
[0121]进一步的,操作单元52,具体用于:
[0122]解析日志中记录的元数据信息以及文件操作信息;
[0123]根据元数据信息以及所述文件操作信息,重新对磁盘执行与文件操作请求对应的操作。
[0124]进一步的,操作单元52,具体用于:
[0125]解析日志中记录的文件操作信息;
[0126]根据文件操作信息,确定原始元数据和已操作元数据;
[0127]释放已操作元数据以及与已操作元数据对应的操作,并将原始元数据设置为有效。
[0128]其中,生成单元50,具体用于:
[0129]解析操作信息中包括的文件句柄和文件偏移量;
[0130]根据文件句柄和文件偏移量生成包括磁盘地址的日志;[0131]磁盘地址包括文件操作请求对应的磁盘物理块号和文件操作请求对应的磁盘物
理偏移量。
[0132]进一步的,本发明实施例中内存具有数据保护功能,例如具有复位保护功能以及掉电保护功能,复位保护功能指系统在未断电情况下被异常重启时内存的日志区中存储的数据不会被初始化,掉电保护功能指系统在异常断电时内存的日志区中存储的数据能够被保持设定时长,本发明实施例中,操作单元52,还用于:
[0133]执行文件操作请求过程中,若系统发生未断电被异常重启的故障时,在系统重启后,根据内存的日志区中写入的日志对磁盘数据进行修复操作;或者
[0134]执行文件操作请求过程中,若系统发生异常断电故障,则将内存的日志区中写入的日志在设定时长内迁移到磁盘,并在系统重新上电后,将迁移到磁盘的日志重新迁移回内存的日志区,根据迁移回内存的日志区的日志对磁盘数据进行修复操作。
[0135]进一步的,本发明实施例中操作单元52,具体用于:
[0136]根据内存的日志区中写入的日志或根据迁移回的日志,将磁盘中的数据恢复到发生故障之前未对磁盘数据进行操作的状态,或者在发生故障之前已经完成的操作基础上继续对磁盘数据进行操作。
[0137]更进一步的,本发明实施例中写入单元51,还用于:
[0138]当根据操作指令完成对磁盘数据的操作时,或者完成对撤销操作之后,删除内存的日志区中写入的所述日志。
[0139]本发明实施例提供的文件操作请求处理装置,执行文件操作请求前,将生成的日志写入内存中,由于内存中文件的访问速度要大于磁盘中文件的访问速度,故本发明实施例中,将日志写入内存的日志区中相对于现有将日志写入磁盘日志区中,能够提高日志的写入速度,提高文件系统对磁盘数据操作的效率。
[0140]进一步的,本发明实施例中当对磁盘进行与文件操作请求对应的操作时,若存储设备发生故障,则判断内存的保电时间是否大于预设阈值,根据判断结果,利用内存中保存的日志快速继续执行对磁盘的操作,或者撤销已经执行的操作,能够保持系统一致性,在系统重新上电的时候,不需要对整个文件系统进行耗时的一致性检查。
[0141]本发明实施例中上述文件操作请求处理装置,可以是独立的部件,也可以是集成于其他部件中,例如本发明实施例提供的上述装置可以是文件系统中的控制器,也可以是集成于控制器内的新的部件。
[0142]需要说明的是,本发明实施例中文件操作请求处理装置中各个模块/单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述。
[0143]实施例五
[0144]基于本发明实施例提供的操文件操作请求处理方法及装置,本发明实施例提供了一种存储器,如图7所示,该存储器包括处理器60、内存61和磁盘62,其中:
[0145]处理器60,用于当接收到包括操作信息的文件操作请求时,解析操作信息,生成日志,并将生成的日志写入内存61的内存,在将日志成功写入内存61后,执行文件操作请求。
[0146]处理器60,还用于执行文件操作请求过程中,若存储设备发生故障,判断内存61的保电时间是否大于预设阈值,当内存61的保电时间大于预设阈值时,利用数据保护功能以及内存61中保存的日志,继续对磁盘62执行与文件操作请求对应的操作;当内存61的保电时间小于预设阈值时,利用数据保护功能以及内存61中保存的日志,撤销已对磁盘62进行的、与文件操作请求对应的操作。
[0147]进一步的,处理器60还用于,在执行文件操作请求过程中,若系统发生未断电被异常重启的故障时,在系统重启后,根据内存61内存的日志区中写入的日志对磁盘数据进行修复操作;当根据操作指令操作磁盘数据的过程中,若系统发生异常断电故障,则将内存61中内存的日志区中写入的日志在设定时长内迁移到磁盘62,并在系统重新上电后,将迁移到磁盘的日志重新迁移回内存61内存的日志区,根据迁移回内存61内存的日志区的日志对磁盘数据进行修复操作。
[0148]内存61,用于存储处理器60根据操作指令生成用以记录操作磁盘数据相应操作信息的日志,并在系统发生故障时向处理器提供保存的日志。
[0149]磁盘62,用于系统发生异常断电故障时,存储由内存61在设定时长内迁移的日志,以在系统重新上电后将日志迁移回内存61的内存的日志区。
[0150]本发明实施例提供的存储器,执行文件操作请求时,将生成的日志写入内存的日志区中,由于内存中文件的访问速度要大于磁盘中文件的访问速度,故本发明实施例中,将日志写入内存的日志区中相对于现有将日志写入磁盘日志区中,能够提高日志的写入速度,提高文件系统对磁盘数据操作的效率。
[0151]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种文件操作请求处理方法,所述方法应用于存储设备中,所述存储设备包括内存,所述内存包括日志区,所述日志区具有数据保护功能,其特征在于,所述方法包括: 接收文件操作请求,根据所述文件操作请求生成日志; 将所述日志写入内存; 对磁盘进行与所述文件操作请求对应的操作; 当对磁盘进行与所述文件操作请求对应的操作时,若所述存储设备发生故障,则判断所述内存的保电时间是否大于预设阈值; 当所述内存的保电时间大于预设阈值时,利用数据保护功能以及所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作; 当所述内存的保电时间小于预设阈值时,利用数据保护功能以及所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作。
2.如权利要求1所述的方法,其特征在于,所述判断所述内存的保电时间是否大于预设阈值,具体包括: 预先设定阈值,所述阈值为备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值; 获取备用电源当前剩余电量以及欲写入磁盘的数据量; 将所述剩余电量与所述欲写入磁盘的数据量之间的比值,作为所述内存的保电时间; 将所述保电时间与预先设定的阈值进行比较,以判断所述内存的保电时间是否大于预设阈值。
3.如权利要求1所述的方法,其特征在于,利用所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作,包括: 解析日志中记录的元数据信息以及文件操作信息; 根据所述元数据信息以及所述文件操作信息,重新对磁盘执行与所述文件操作请求对应的操作。
4.如权利要求1所述的方法,其特征在于,利用所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作,包括: 解析日志中记录的文件操作信息; 根据所述文件操作信息,确定原始元数据和已操作元数据; 释放所述已操作元数据以及与已操作元数据对应的操作,并将所述原始元数据设置为有效。
5.如权利要求1-4任一项所述的方法,其特征在于,该方法还包括: 当执行完成所述文件操作请求时,或者完成撤销操作之后,删除内存中写入的所述日
O
6.一种文件操作请求处理装置,其特征在于,包括生成单元、写入单元、操作单元和判断单元,其中: 所述生成单元,用于接收文件操作请求,根据所述文件操作请求生成日志,并把生成的日志传送给所述写入单元,将接收到的文件操作请求发送给所述操作单元; 所述写入单元,用于接收到所述生成单元传送的日志,将生成的日志写入内存,在将所述日志成功写入内存后,向所述操作单元发送成功写入的指令;所述操作单元,用于接收所述生成单元发送的文件操作请求,以及所述写入单元发送的日志成功写入指令,执行所述文件操作请求;还用于接收所述判断单元发送的判断所述内存的保电时间是否大于预设阈值的判断结果,当所述内存的保电时间大于预设阈值时,利用数据保护功能以及所述内存中保存的日志,继续对磁盘执行与所述文件操作请求对应的操作;当所述内存的保电时间小于预设阈值时,利用数据保护功能以及所述内存中保存的日志,撤销已对磁盘进行的、与所述文件操作请求对应的操作; 所述判断单元,用于当对磁盘进行与所述文件操作请求对应的操作时,所述存储设备发生故障,判断所述内存的保电时间是否大于预设阈值,并将判断结果传送至所述操作单
7.如权利要求6所述的装置,其特征在于,所述判断单元,具体用于: 预先设定阈值,所述阈值为备用电源的总电量与总电量能够支持写入磁盘的总数据量的比值; 获取备用电源当前剩余电量以及欲写入磁盘的数据量; 将所述剩余电量与所述欲写入磁盘的数据量之间的比值,作为所述内存的保电时间;将所述保电时间与预先设定的阈值进行比较,以判断所述内存的保电时间是否大于预设阈值。
8.如权利要求6所述的装置,其特征在于,所述操作单元,具体用于: 解析日志中记录的元数据信息以及文件操作信息; 根据所述元数据信息以及所述文件操作信息,重新对磁盘执行与所述文件操作请求对应的操作。
9.如权利要求6所述的装置,其特征在于,所述操作单元,具体用于: 解析日志中记录的文件操作信息; 根据所述文件操作信息,确定原始元数据和已操作元数据; 释放所述已操作元数据以及与已操作元数据对应的操作,并将所述原始元数据设置为有效。
10.如权利要求6-9任一项所述的装置,其特征在于,所述写入单元,还用于: 当执行完成所述文件操作请求时,或者完成撤销操作之后,删除内存的日志区中写入的所述日志。
【文档编号】G06F17/30GK103559119SQ201310513349
【公开日】2014年2月5日 申请日期:2013年10月25日 优先权日:2013年10月25日
【发明者】葛长伟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1