一种提高故障信息处理装置的文件处理速度的方法

申请号 CN201610948395.7 申请日 2016-10-26 公开(公告)号 CN106371949A 公开(公告)日 2017-02-01
申请人 北京四方继保自动化股份有限公司; 发明人 肖鲲; 徐刚; 陈秋荣; 徐万方; 崔津津; 兰敏刚; 毕晶;
摘要 一种提高故障信息处理装置文件处理速度的方法,将故障信息处理装置的文件系统分成两个单元,一部分作为文件系统数据单元,存储数据;一部分作为文件系统核心单元,用来记录日志。其中的文件系统数据单元是采用冗余数据存储的方式,两个独立的分区相互之间建立镜像关系,互为备份。当其中一个分区出现问题时,可及时结合第二个分区的数据和文件系统核心单元中的操作记录来进行及时的数据恢复。本 发明 不需要对整个文件系统进行遍历检索,看是否有多余临时文件,从而减少了故障信息处理装置文件处理的时间。不用为装置选择专业带日志记录和回滚操作功能的高可靠性商业文件系统,不用为特定的文件系统编写专用 接口 。
权利要求

1.一种提高故障信息处理装置的文件处理速度的方法,其特征在于:
文件系统数据单元是采用冗余数据存储的方式即划分两个独立的分区,两个独立的分区相互之间建立镜像关系,互为备份;当其中一个分区出现问题时,通过另一个分区的数据进行数据恢复。
2.一种提高故障信息处理装置的文件处理速度的方法,所述故障信息处理装置使用文件系统实现存储的功能,将文件系统分成用于存储数据的文件系统数据单元和用来记录日志的文件系统核心单元;其特征在于,所述方法包括以下步骤:
(1)在故障信息处理装置的FLASH硬件芯片上将故障信息处理装置的文件系统数据单元划分为两独立的部分,作为两个独立的分区,建立镜像关系;其中,操作的当前文件系统数据分区为主数据分区,另一个则为备用数据分区;
(2)创建文件系统核心单元,用于记录发生在文件系统数据单元上的操作过程;
(3)故障信息处理装置通电后,先检测文件系统核心单元上的记录,如果记录表明上次断电时有文件系统数据分区的操作未完成,则进入步骤(4)操作;如果记录表明上次断电时文件系统数据分区的操作已完成,则进入步骤(5)操作;
(4)根据文件系统核心单元上的记录,确定上次断电时的操作过程,有操作未完成且导致文件系统数据结构改变的文件系统数据分区使用另一个文件系统数据分区的数据对本文件系统数据分区进行修复,然后进入步骤(6);
(5)根据文件系统核心单元上的记录,确定上次断电时的操作过程,由于没有操作未完成,两个文件系统数据分区仍被视为正常分区,每一个分区无需使用另一个分区的数据进行修复,进入步骤(6);
(6)故障信息处理装置正常启动后,有对文件系统的操作需求时,采用按顺序依次访问的方式操作文件系统数据单元的两个分区,并记录操作到文件系统核心单元。
3.根据权利要求2所述的提高故障信息处理装置的文件处理速度的方法,其特征在于:
在步骤(2)中,所述系统核心单元设置在故障信息处理装置的非断电数据丢失芯片上。
4.根据权利要求3所述的提高故障信息处理装置的文件处理速度的方法,其特征在于:
所述非断电数据丢失芯片为EEPROM。
5.根据权利要求2所述的提高故障信息处理装置的文件处理速度的方法,其特征在于:
在步骤(2)中,文件系统核心单元上的记录包含:操作开始结束标志、操作类型、操作对象名、操作的当前文件系统数据分区类型和当前的操作的状态;
其中,操作类型包括打开文件、关闭文件、写文件、删除文件、新建文件、删除目录和新建目录;操作的当前文件系统数据分区类型分为主数据分区、备用数据分区和空类型;当前的操作的状态分为准备写入主数据分区状态、已写入主数据分区状态、准备写入备数据分区状态和已写入备数据分区状态。
6.根据权利要求5所述的提高故障信息处理装置的文件处理速度的方法,其特征在于:
在步骤(4)中,具体包括以下内容:
4.1首先判断操作类型是否为写文件、删除文件、新建文件、删除目录和新建目录等改变文件系统数据结构的操作,如果是这些操作类型,则不需要对操作未完成的文件系统数据分区进行修复;否则,进入4.2;
4.2接着判断当前操作的数据分区类型,是主数据分区还是备用数据分区,如果操作的数据分区类型是主数据分区,那么就要将备用数据分区的整个数据覆盖到主数据分区;如果操作的数据分区类型是备用数据分区,那么就要将主数据分区的整个数据覆盖到备用数据分区;如果操作的数据分区类型是空,则进入4.3;
4.3继续判断当前的操作状态标志,如果是已写入主数据分区状态,则仅将主数据分区的当前操作对象覆盖到备用数据分区上,否则不需要对操作未完成的文件系统数据分区进行修复。
7.根据权利要求5或6所述的提高故障信息处理装置的文件处理速度的方法,其特征在于:
在步骤(5)中,文件系统核心单元上的记录的操作标志为结束状态,继续判断两个文件系统数据分区一致性标志,如果判断为一致,则表明不存在文件系统不完整的情况,继续正常加载故障信息处理装置的程序,恢复正常引导过程;如果判断为不一致,说明程序出现异常,进入错误告警处理。

说明书全文

一种提高故障信息处理装置的文件处理速度的方法

技术领域

[0001] 本发明属于电系统电力电子与继电保护领域,具体涉及一种提高故障信息处理装置的文件处理速度的方法,是一种安全的故障信息处理装置提高和加强文件系统一致性和完整性的方法。

背景技术

[0002] 在故障信息处理装置的工程使用过程中,采用文件系统存储录波、定值及应用程序本身,从而达到在用以太网网络方式与监控后台、远动主站等设备互联时数据交换的目的。但是,会因某个电力设备通断电的操作而引发的文件系统的文件操作被打断,而出现多余文件,导致增加了文件系统的临时文件,使得故障信息处理装置启动时需要对文件系统进行检索,以便进行一致性检查。检查过程中会进行临时文件的清理,从而会对文件操作造成一定的延时,影响信息的交换速度。
[0003] 因此需要一种方法,在故障信息处理装置正常或非正常的通断电情况下,都能使得故障信息处理装置的文件系统具有一致性和完整性,不用花费时间在进行文件的检索前做文件系统的一致性检查。
[0004] 使用带有日志记录功能的文件系统,或者使用不带文件系统功能的API接口,即自行编写和操作FLASH芯片的读写,这两种方法都可以防止通断电情况下的故障信息处理装置的文件系统产生临时文件。但存在以下的缺点:
[0005] 1、需要购买带日志记录功能的文件系统,需要修改现有的故障信息处理装置的通用文件系统接口。
[0006] 2、购买的带日志记录功能的文件系统成本要提高很多。
[0007] 3、更换文件系统后涉及到新芯片驱动和软件的重新编写调试,软件成本和时间成本剧增。
[0008] 4、若不带文件系统功能,原有产品无法使用,许多基于文件系统的开发软件得重新调整,稳定性也无法短时保证。

发明内容

[0009] 为解决现有技术中存在的以上问题,本申请公开了一种提高故障信息处理装置的文件处理速度的方法。
[0010] 本发明具体采用以下技术方案。
[0011] 一种提高故障信息处理装置文件处理速度的方法,其特征在于:
[0012] 文件系统数据单元是采用冗余数据存储的方式即划分两个独立的分区,两个独立的分区相互之间建立镜像关系,互为备份;当其中一个分区出现问题时,通过另一个分区的数据进行数据恢复。
[0013] 一种提高故障信息处理装置的文件处理速度的方法,所述故障信息处理装置使用文件系统实现存储的功能,将文件系统分成用于存储数据的文件系统数据单元和用来记录日志的文件系统核心单元;其特征在于,所述方法包括以下步骤:
[0014] (1)在故障信息处理装置的FLASH硬件芯片上将故障信息处理装置的文件系统数据单元划分为两独立的部分,作为两个独立的分区,建立镜像关系;其中,操作的当前文件系统数据分区为主数据分区,另一个则为备用数据分区;
[0015] (2)创建文件系统核心单元,用于记录发生在文件系统数据单元上的操作过程;
[0016] (3)故障信息处理装置通电后,先检测文件系统核心单元上的记录,如果记录表明上次断电时有文件系统数据分区的操作未完成,则进入步骤(4)操作;如果记录表明上次断电时文件系统数据分区的操作已完成,则进入步骤(5)操作;
[0017] (4)根据文件系统核心单元上的记录,确定上次断电时的操作过程,有操作未完成且导致文件系统数据结构改变的文件系统数据分区使用另一个文件系统数据分区的数据对本文件系统数据分区进行修复,然后进入步骤(6);
[0018] (5)根据文件系统核心单元上的记录,确定上次断电时的操作过程,由于没有操作未完成,两个文件系统数据分区仍被视为正常分区,每一个分区无需使用另一个分区的数据进行修复,进入步骤(6);
[0019] (6)故障信息处理装置正常启动后,有对文件系统的操作需求时,采用按顺序依次访问的方式操作文件系统数据单元的两个分区,并记录操作到文件系统核心单元。
[0020] 本发明进一步包括以下优选方案:
[0021] 在步骤(2)中,所述系统核心单元设置在故障信息处理装置的非断电数据丢失芯片上。
[0022] 所述非断电数据丢失芯片为EEPROM。
[0023] 在步骤(2)中,文件系统核心单元上的记录包含:操作开始结束标志、操作类型、操作对象名、操作的当前文件系统数据分区类型和当前的操作的状态;
[0024] 其中,操作类型包括打开文件、关闭文件、写文件、删除文件、新建文件、删除目录和新建目录;操作的当前文件系统数据分区类型分为主数据分区、备用数据分区和空类型;当前的操作的状态分为准备写入主数据分区状态、已写入主数据分区状态、准备写入备数据分区状态和已写入备数据分区状态。
[0025] 在步骤(4)中,具体包括以下内容:
[0026] 4.1首先判断操作类型是否为写文件、删除文件、新建文件、删除目录和新建目录等改变文件系统数据结构的操作,如果是这些操作类型,则不需要对操作未完成的文件系统数据分区进行修复;否则,进入4.2;
[0027] 4.2接着判断当前操作的数据分区类型,是主数据分区还是备用数据分区,如果操作的数据分区类型是主数据分区,那么就要将备用数据分区的整个数据覆盖到主数据分区;如果操作的数据分区类型是备用数据分区,那么就要将主数据分区的整个数据覆盖到备用数据分区;如果操作的数据分区类型是空,则进入4.3;
[0028] 4.3继续判断当前的操作状态标志,如果是已写入主数据分区状态,则仅将主数据分区的当前操作对象覆盖到备用数据分区上,否则不需要对操作未完成的文件系统数据分区进行修复。
[0029] 在步骤(5)中,文件系统核心单元上的记录的操作标志为结束状态,继续判断两个文件系统数据分区一致性标志,如果验证为一致,则表明不存在文件系统不完整的情况,继续正常加载故障信息处理装置的程序,恢复正常引导过程;如果验证为不一致,说明程序出现异常,进入错误告警处理。
[0030] 本发明具有以下技术效果:
[0031] 1、避免因现场频繁通断电而出现文件操作被打断,出现系统产生临时文件的情况。
[0032] 2、避免故障信息处理装置启动时或定时的对文件系统进行检索,进行一致性检查,从而对有文件传输的操作造成一定的延时。
[0033] 3、本发明不用更改原有的文件系统接口,不用大范围更换已有故障信息处理装置的文件系统操作接口,软件成本减少。
[0034] 4、本发明不影响原有的文件系统功能。只是更完善,并添加了数据保护。
[0035] 5、故障信息处理装置已有的应用逻辑程序不受影响,不更改它的可执行代码,不影响原有的故障信息处理功能。附图说明
[0036] 图1是本发明提高故障信息处理装置的文件处理速度的方法流程示意图。

具体实施方式

[0037] 下面结合说明书附图本发明的技术方案作进一步详细说明。这里以嵌入式操作系统为例。
[0038] 故障信息处理装置与监控后台、远动主站等设备通过以太网交换机互联,变电站内的故障信息处理装置采用文件系统存储录波、定值及应用程序本身。这样便于在用以太网网络方式与监控后台、远动主站等设备互联时的数据交换,经常会出现由于某个电力设备通断电的操作而引发的文件系统的文件操作被打断,增加文件系统的临时文件,使得故障信息处理装置启动时或定时需要对文件系统进行检索,进行一致性检查,清理临时文件,从而对有文件传输的操作造成一定的延时。
[0039] 附图1是本发明方法的流程图,这是一个提高故障信息处理装置的文件处理速度的方法的程序流程。本申请公开的提高故障信息处理装置的文件处理速度的方法包括以下步骤:
[0040] 步骤1:在FLASH硬件芯片上将故障信息处理装置的文件系统数据单元划分为两块独立的部分,作为两个独立的分区,建立镜像关系。
[0041] 先是由工程人员将故障信息处理装置的应用代码和配置文件等下载到故障信息处理装置的单板(即故障信息处理装置的主控单元)中,上电启动。系统初始化任务首先调用文件系统的初始化,将文件系统代码运行起来。然后接着启动文件系统上存储的故障信息处理装置的程序,通过识别配置文件进行正常保护任务的初始化加载;其中文件系统的建立,先采用冗余数据存储的方式,将现有故障信息处理装置的文件系统数据在FLASH硬件芯片上就划分为两块独立的部分,作为两个独立的分区,建立镜像关系。这两个分区就共同组成了故障信息处理装置的文件系统数据单元。
[0042] 步骤2:创建文件系统核心单元,用于记录发生在文件系统数据单元上的操作过程。
[0043] 利用故障信息处理装置单板上的非断电数据丢失芯片的空余存储区域,记录发生在文件系统数据单元上的操作过程,例如使用EEPROM这种可实时写入,掉电不丢失数据的物理芯片,不存在有不完整性数据的情况,唯一的缺陷是容量较小,所以用来仅存储操作记录。
[0044] 文件系统核心单元上的记录包含:操作开始结束标志、操作类型、操作对象名、操作的当前文件系统数据分区类型和当前的操作的状态;
[0045] 其中,操作类型包括打开文件、关闭文件、写文件、删除文件、新建文件、删除目录和新建目录;操作的当前文件系统数据分区类型分为主数据分区、备用数据分区和空类型;当前的操作的状态分为准备写入主数据分区状态、已写入主数据分区状态、准备写入备数据分区状态和已写入备数据分区状态。
[0046] 步骤3:故障信息处理装置通电后,程序先检测文件系统核心单元上的记录,如果记录表明上次断电时数据分区的操作未完成,则进入步骤4操作。如果记录表明上次断电时数据分区的操作已完成,则进入步骤5操作。
[0047] 步骤4:根据文件系统核心单元上的记录,确定上次断电时的操作过程,因为有操作未完成,有操作未完成的文件系统数据分区使用另一个文件系统数据分区的数据对本文件系统数据分区进行修复。
[0048] 步骤4具体包括以下内容:
[0049] 4.1首先判断操作类型是否为写文件、删除文件、新建文件、删除目录和新建目录等改变文件系统数据结构的操作,如果是这些操作类型,则不需要对操作未完成的文件系统数据分区进行修复;否则,进入4.2;
[0050] 4.2接着判断当前操作的数据分区类型,是主数据分区还是备用数据分区,如果操作的数据分区类型是主数据分区,那么就要将备用数据分区的整个数据覆盖到主数据分区;如果操作的数据分区类型是备用数据分区,那么就要将主数据分区的整个数据覆盖到备用数据分区;如果操作的数据分区类型是空,则进入4.3;
[0051] 4.3继续判断当前的操作状态标志,如果是已写入主数据分区状态,则仅将主数据分区的当前操作对象覆盖到备用数据分区上,否则不需要对操作未完成的文件系统数据分区进行修复。
[0052] 文件系统核心单元上的记录的操作标志应该是开始状态,从而继续判断操作类型是否为写文件、删除文件、新建文件、删除目录和新建目录等改变文件系统数据结构的操作。如果没有这些操作,那么可以忽略,直接进入下一步骤运行。如果有这些改变了文件系统数据结构的操作,那么要接着判断当前操作的数据分区类型,是主数据分区还是备用数据分区。如果操作的数据分区类型是主数据分区,那么就要将备用数据分区的整个数据覆盖到主数据分区。如果操作的数据分区类型是备用数据分区,那么就要将主数据分区的整个数据覆盖到备用数据分区。如果操作的数据分区类型是空,那么就继续判断当前的操作状态标志。如果是已写入主数据分区状态,则仅将主数据分区的当前操作对象,如文件A覆盖到备用数据分区上。
[0053] 步骤5:根据文件系统核心单元上的记录,确定上次断电时的操作过程,因为没有操作未完成,即两个文件系统数据分区仍被视为正常分区,无需使用另一个分区的数据进行修复,继续正常启动。
[0054] 文件系统核心单元上的记录的操作标志应该是结束状态,从而继续判断两个文件系统数据分区一致性标志,如果验证为一致,则表明不存在文件系统不完整的情况,可以继续正常加载故障信息处理装置的保护应用程序,恢复正常引导过程。如果验证为不一致,说明保护应用程序出现异常,进入错误告警处理。
[0055] 步骤6:故障信息处理装置正常启动后,有对文件系统的操作需求时,采用按顺序依次进行的方式操作文件系统数据单元的两个分区,并记录操作到文件系统核心单元。
[0056] 步骤6具体包括以下内容:
[0057] 6.1首先,将文件系统核心单元上的记录的操作标志设置为开始,同时记录要操作的类型,操作的对象名,将操作的当前文件系统数据分区类型设置为文件系统主数据分区。接着开始实际文件系统的操作,比如打开文件A,写入一段数据。操作完毕后,修改当前的操作状态,设置成已写入主数据分区状态,将操作的当前文件系统数据分区类型设置为空。
[0058] 6.2然后同样类似的操作过程,将操作的当前文件系统数据分区类型设置为文件系统主数据分区,开始对文件系统备数据分区进行实际的操作,数据操作保持一致。
[0059] 6.3操作完毕后,修改当前的操作状态,设置成已写入备数据分区状态,将操作的当前文件系统数据分区类型设置为空。
[0060] 上述的这些机制,保证了任意时刻的断电,文件系统最坏的情况也仅仅存在于正在对某一分区进行操作的时候。
[0061] 申请人结合说明书附图对本发明的实施例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
QQ群二维码
意见反馈