安全冗余存储设备和这种设备上安全读写的方法

文档序号:6545798阅读:155来源:国知局
安全冗余存储设备和这种设备上安全读写的方法
【专利摘要】安全冗余存储设备和这种设备上安全读写的方法。本发明涉及尤其适用于称为“SSD”的电子磁盘的冗余存储设备的领域。本发明提出一种基于多个冗余存储物理磁盘的数据存储系统,在该系统中,用于被发送至冗余磁盘的读写命令在被发送到至少一个磁盘之前受到传递函数的支配,以便发送到至少两个磁盘的有效命令是不同的。由接收经受过传递函数的命令的磁盘所返回的值则服从于逆传递函数。这样,在磁盘控制模块中的设计错误将被探测到,因为磁盘控制模块不会以相同的方式被请求。
【专利说明】安全冗余存储设备和这种设备上安全读写的方法
【技术领域】
[0001]本发明涉及冗余存储设备的领域,尤其适用于称为“SSD”(英文“Solid StateDrive”,即固态硬盘)的电子磁盘的领域。本发明更具体地涉及一种安全冗余存储设备和在冗余电子磁盘上安全读写的方法。
[0002]本发明一般性地涉及基于冗余电子磁盘的文件系统的执行。冗余信息的使用是为信息处理系统带来可靠性的一种常用手段。信息处理设备的复制允许在多个冗余设备上并行进行操作。则比较这些操作的结果。这样,当所述冗余设备所提供的结果不同时,其中一个设备的故障或不良运行被探测到。
【背景技术】
[0003]将这一原理应用于基于电子磁盘的信息存储系统导致实施由图1中所示的系统类型的系统。该存储设备100由一个文件系统101的管理模块和两个冗余物理存储设备110和120、此处是电子磁盘构成。这里所描述的示例包括两个冗余电子磁盘,但本领域技术人员明白冗余电子磁盘的数目可以更多。这些冗余电子磁盘Iio和120通常是相同的。无论如何,这些磁盘至少共同具有负责磁盘控制的一个软件部分。所述磁盘包括一个物理存储器模块112和122,其通常由闪存式存储器构成,但是也可以考虑任何其它类型的物理载体例如光学载体或磁性载体。这同样可以涉及远程存储设备例如网盘,在这些远程存储设备中,所述物理载体位于远处并且通过数据网络接入。存储器通过控制模块或控制器111和121进行控制。控制模块负责接收由所述文件系统101所发出的读写指令105和106,管理这些指令,通引起在物理存储器模块112和122上要求的读取和写入。这些控制模块111和121通常是在磁盘110和120的装载处理器上执行的软件模块。与同等的用于磁盘中的控制模块相比,在闪存式物理载体的情况下,磁盘控制软件模块尤为复杂。事实上,对存储器模块的管理要求对存储器信息块进行精细管理以便平衡这些信息块的损耗、管理缓存并组织对可用信息块的采集。文件系统101是负责向存储和访问磁盘上数据的期望应用提供数据文件逻辑视图的软件模块。其接收以逻辑文件管理命令的形式列出的应用命令102。文件系统101负责将这些文件定位命令转变为在不同磁盘110和120上读写的指令。该文件系统在冗余物理磁盘的情况下,通常集成有确切意义上的文件系统管理模块103和冗余管理模块104。所述存储系统可以因此被看作可以与多个物理电子磁盘交互的一系列相继的抽象体。第一抽象体由磁盘控制模块111和121进行管理,所述磁盘控制模块可以掩盖所使用的物理存储模块112和122,以提供将磁盘呈现为统一逻辑存储量的界面。该逻辑存储量以冗余的方式被存储在存储设备的冗余磁盘集合上。第二层抽象体由冗余管理模块104提供,允许将物理电子磁盘110和120的集合视为唯一允许数据读写的存储量。该存储量被文件系统管理模块103用于向所述应用提供第三层抽象体,可以看到所述应用独立于物理磁盘上的数据存储管理来提供逻辑文件中的读写系统。
[0004]当这样的存储系统需要被用于极为重要的信息系统例如飞行器、潜水艇的装载系统或甚至是核反应堆的管理和控制系统时,必须符合一些安全标准。这些系统即便不能够避免任何不良运行,但当不良运行发生时,应当能够探测到这些不良运行。电子磁盘的冗余旨在完成这一工作。不良运行的探测功能通常在冗余管理模块104内实施。通常,当文件系统103生成到给定地址读取的指令时,冗余管理模块104将复制这一命令到冗余电子磁盘110和120上。其则将比较冗余磁盘返回的读值并比较这些冗余磁盘。这些读值中出现差异则可以探测出所述两个磁盘中至少有一个磁盘运行不良。同样,当文件系统103生成一个将命令写入地址的命令时,该命令被冗余管理模块104以同样的方式发送至不同的磁盘上。所述冗余管理模块104随后将在所述不同的磁盘上重读该地址并比较结果。如果所述磁盘中的至少一个返回的数值不同于写入值,则探测到不良运行。这样一种系统可以探测到所述磁盘上的物理存储模块112或122的不良运行或是探测到负责所述磁盘管理模块111和121执行的处理器上发生的故障。
[0005]然而,这样一种系统无法探测到由于磁盘控制模块111和121的设计错误导致的不良运行。事实上,从本质上说,这样一种设计错误以相同的方式存在于两个控制模块111和121的内部,这种设计错误会导致所述两个磁盘一致的不良运行。因此,这样一种不良运行无法通过对所述两个磁盘所返回的总是相同的返回数值进行比较而被探测出来。

【发明内容】

[0006]本发明的目的在于通过提出一种基于多个冗余物理存储设备的数据存储系统来解决上述的缺陷,在该系统中,用于被发送至冗余磁盘的读写命令在被发送到所述磁盘中的至少一个磁盘之前经受传递函数处理,以便发送到至少两个磁盘的有效命令是不同的。接收经受过传递函数处理的命令的磁盘所返回的值则受到逆传递函数的处理。这样,所述磁盘控制模块中的设计错误会被探测到,因为所述磁盘控制模块不会以相同的方式被请求。
[0007]本发明涉及一种存储设备,其包括:
[0008]-多个冗余物理存储设备;
[0009]-生成给所述多个冗余物理存储设备的数据读写命令的文件系统的管理模块,所述数据应以冗余方式被写入各个物理存储设备上;
[0010]-通过比较从所述多个物理存储设备读取的数据的值进行错误探测的模块;
[0011]所述设备还包括:
[0012]-可以将传递函数应用于给物理存储设备子集的读写命令的模块,所述传递函数用于修改所述读写命令。这样,控制器内部的设计错误可以被探测出来。
[0013]根据一个特殊的实施方式,所述传递函数修改与写入命令相关的数据,所述设备另外还包括一个模块,该模块可以将逆传递函数应用于从所述物理存储设备子集上读取的数据。
[0014]根据一个特殊的实施方式,可应用传递函数的模块包括应用双射函数的工具,所述双射函数关于存储设备数据空间、关于与写入命令相关的数据定义,可应用逆传递函数的模块具有将逆双射函数应用于所读数据的工具。
[0015]根据一个特殊的实施方式,所述可应用传递函数的模块包括应用双射函数的工具,该双射函数关于存储设备逻辑寻址空间、关于与命令关联的逻辑地址所定义。
[0016]根据一个特殊的实施方式,所述可应用传递函数的模块具有用于将附加命令添加到所述读写命令的工具。
[0017]根据一个特殊的实施方式,所述传递函数通过所述存储装置的逻辑寻址空间的结束地址同与命令关联的地址的相减结果来替换所述与命令关联的地址。
[0018]根据一个特殊的实施方式,所述传递函数只应用于偶地址或奇地址。
[0019]根据一个特殊的实施方式,所述传递函数具有用于将与写入命令关联的数据进行反码(complementer ? un)的工具,所述逆传递函数同样具有将所读数据反码的工具。
[0020]根据一个特殊的实施方式,所述传递函数具有用于在接收到的整个第一命令之前插入附加命令的工具。
[0021]根据一个特殊的实施方式,所述传递函数具有用于周期性地插入附加命令的工具。
[0022]根据一个特殊的实施方式,所述传递函数具有用于随机地插入附加命令的工具。
[0023]本发明还涉及一种在具有多个冗余物理存储设备的存储设备上的读写方法,其特征在于该方法包括:
[0024]-接收由文件系统的管理模块生成的初始读写命令的步骤;
[0025]-将传递函数应用 于所述初始读写命令的步骤,所述传递函数用于修改所述初始读写命令以便获得至少一个修改后的读写命令;
[0026]-将所述初始读写命令发送至第一物理存储设备子集的步骤;
[0027]-将所述修改后的读写命令发送至第二物理存储设备子集的步骤;
[0028]-如果命令是写入命令,则所述方法另外包括:
[0029]-生成关联的读取命令的步骤;
[0030]-将传递函数应用于生成的读取命令的步骤;
[0031]-将读取命令发送至第一物理存储设备子集的步骤;
[0032]-将修改后的读取命令发送至第二物理存储设备子集的步骤;
[0033]-接收所读数值的接收步骤;和
[0034]-比较所读数值的比较步骤。
[0035]根据一个特殊的实施方式,所述传递函数修改与写入命令关联的数据,所述方法另外还包括将逆传递函数应用于源自第二物理存储设备子集的读取数据的步骤。
[0036]本发明还涉及一种包括一些指令的计算机程序,所述程序在计算机上执行时,这些指令适于实施根据本发明的方法的各个步骤。
[0037]本发明还涉及一种可移动或不可移动的信息存储工具,其可以部分地或完全地被计算机或微处理器读取,具有用于执行根据本发明的方法的各个步骤的计算机程序代码指令。
【专利附图】

【附图说明】
[0038]本发明的其它特点和优势将更明显地体现在以下的说明中。
[0039]在以非限制性示例给出的如下附图中:
[0040]-图1示出根据本发明的一实施例的使用冗余电子磁盘的存储系统的总体结构;
[0041]-图2示出在电子磁盘中所用的闪存载体的典型硬件结构;
[0042]-图3示出电子磁盘控制器的逻辑结构的实施例;[0043]-图4示出本发明的一实施例的逻辑结构;
[0044]-图5示出空间分异性的一个实施例;
[0045]-图6示出空间分异性的另一个实施例;
[0046]-图7示出根据本发明的一个实施例的读写方法的流程图;
[0047]-图8是用于实施本发明的一个或多个实施方式的信息处理设备的示意性方框图。
【具体实施方式】
[0048]图2示出电子磁盘中所用的闪存载体的典型硬件结构。物理载体上存储的数据由基本存储词或存储单元200构成。这些单元200以页面201进行组织,所述页面含有一组单元200。所述页面201是用于所述单元200的读写操作的基础单位。为了读取或写入一个特定单元,因此需要读取或写入含有目标单元的整个页面。所述页面自身以信息块202进行组织,所述信息块包含有页面201的一个集合。所述存储载体自身则由这些信息块202的一个集合构成。所述信息块是单元200擦除操作的基础单位。事实上,只有在构成页面201的这些单元200已经事先被擦除的条件下才有可能写入单元200的页面201。该擦除操作必然波及包括目标页面201的信息块集合202。对一个信息块的擦除操作是与用于读取或写入一个页面所需的时间相比耗时相对更长的操作。读写擦除周期的智能管理因此对于出于性能考虑而力图限制信息块擦除操作是有利的。
[0049]此外,耗损现象的对象是信息块,该现象的特征在于有限的擦除次数。该现象的结果是必要严格地限定信息块擦除操作是更有效的。此外,所述数据是永久可变的。某些数据永远不会被更新,然而其它的数据则频繁地被修改。频繁被修改的数据会导致大量的重新写入操作以及同样多数量的包含其在内的信息块擦除操作。由于重新写入而对信息块上的数据的物理定位的智能管理可以分散信息块的耗损。目的是避免:被过多请求的某些信息块达到擦除数目界限并且应被禁用,而大部分信息块则仍有很长的寿命。
[0050]这些限制意味着对读写擦除周期的特殊且相对复杂的管理。该管理通常由磁盘控制模块111和121中的逻辑模块来进行。传统地,存储在存储器或磁盘中的数据与给定的物理位置相关联,物理位置一旦被分配后则不变。一个数据与磁盘上的一个物理存储地址或一个扇区相关联。当该数据应被修改时,新的数值被写入同一个物理位置并且会擦除掉原数值。读取访问则总是在相同的物理位置上进行并且可以获得最新的写入值。
[0051]在电子磁盘的情况下,这样一种物理分配数据的策略导致了信息块的耗损老化,而信息块耗损则是由于对包含被频繁修改的数据的信息块的擦除操作倍增造成的。因此,为了弥补这些缺陷,对于物理分配数据的智能管理取得了进展。该分配策略主要包括三个关键机制。第一机制是以所谓“闪存转换层”的算法即FTL(英文全称为“Flash TranslationLayer algorithm”)的形式来实现的。根据该算法,所述信息块被分配成两个信息块集合,所述信息块一方面按块组织(英文为“block mapped”,8卩“块映射”),另一方面按页面组织(英文为“page mapped”,S卩“页面映射”)。这两个信息块集合由寻址方式区分开,所述寻址方式允许数据读写访问。提醒的是,读写操作的基础单位是页面。数据因此在应用层面上通过所谓LPN(英文为“Logical Page Number”)的“逻辑页号”的方式与页面相关联。所述闪存转换层FTL因此需将该逻辑页面地址转换成存储器元件的物理页面地址。[0052]如果所述数据被归入按块组织的一个信息块,所述转换则根据下述方法进行。所述逻辑页号被解析为构成逻辑块号即LBN(英文为“Logical Bloc Number”)的第一字段和页内偏移(英文为“offset”)。关联表允许从在该关联表中用作索引的逻辑块号找到物理块号PBN(英文为“Physical Bloc Number”)。偏移值给出了物理块内的页面的物理地址。
[0053]如果所述数据被归入按页面组织的一个信息块,所述转换则根据下述方法进行。所述逻辑页号直接用作页面关联表中的索引,其可以得到物理页号PPN,英文为“PhysicalPage Number”。该物理页号直接是按页面组织的一个信息块中的物理页号。
[0054]这种将物理存储信息块以按块或页面组织的两个信息块集合进行组织的系统通过下述方式来运用。当一个数据第一次被写入时,其被给予了以块组织的一个信息块中的物理位置。以块组织的信息块因此对应于第一数据存储配置。以页面组织的信息块构成以日志(英文为“log”)组织的页面的存储空间。该日志构成将被相继分配的接连页面空间。当需要修改一个数据时,为避免对分配给该数据的页面进行修改一一修改页面需要对信息块进行擦除,一个默认为第一空闲页的新页面在所述日志中被分配给该数据。对该修改后的数据的写入因此在空闲页内进行,从而不需要进行预先擦除操作。包含有所述数据的原数值的页面则被标示为作废,但并不被立即擦除以便不生成擦除操作。这样,关联页面相应地被更新。
[0055]至少只要在所述日志中保留有空闲页面,该方法就无需擦除操作就可以修改存储器中存储的数值。绝不会被修改的静态数据仍然保持被分配在按块组织的信息块中,访问后者对存储器的影响较小。事实上,仅包含每个信息块一个条目的信息块关联表比包含每个页面一个条目的页面关联表更小。被修改的动态数据被存储在所述日志中,这些数据随着修改填充该日志。
[0056]这种机制由于避免了对于信息块的擦除操作,因而在存取时间方面尤其有效。相反,数据的每次修改使得至少一个存储页面作废。在所述系统使用一定时间后,有可能缺少空闲信息块而已使用的信息块则被作废页面布满。为了解决这一问题及允许重新构建空闲信息块集合,设置了一个垃圾收集机构(英文为“garbage collector”)。该机构负责筛选出其所有页面都被标记为作废的一些信息块,然后擦除所述信息块以便使该信息块在空闲信息块集合中重新可用。有利地,垃圾收集器包括信息块合并机构。该机构可以筛选出包含有大量作废页面的一组信息块。这些信息块总体应包含有一定数目的可用页面即非作废页面,该数目小于或等于一个信息块的大小。这些可用页面则可以被写在一个空闲信息块内。所有所筛选出的信息块则可以被擦除以便使它们在空闲信息块集合中可用。由此,该垃圾收集器可以将散布在一个信息块集合内的可用页面收集于同一个信息块内并使这些信息块重新可用。
[0057]此外,一种耗损均衡机制(英文“wear leveling algorithm”)可以避免某些信息块由于受到大量擦除操作的影响而过早老化。该机制为所有信息块配备允许了解它们所受擦除操作的次数的计数器。这样,当系统请求一个新的空闲信息块以将其归入以块组织的信息块集合中或以页面组织的信息块集合中时,计算器值最小的空闲信息块则被指定。这样,耗损最少的信息块总是被优先使用。这样,已耗损并且因此无法使用的信息块的出现被推迟。
[0058]图3示出实现这些不同机制的电子磁盘的控制器300的逻辑结构的示例。读写命令在被闪存转换层302解读之前被接收并存储在缓存301内。闪存转换层控制被分配的存储信息块的两个集合,即以块组织的第一信息块集合303和形成日志的以页面组织的第二信息块集合304。所述闪存转换层因此第一次在以块组织的信息块集合303中写入数据。会修改数据的后续写入在日志304中进行。如有需要,闪存转换层302请求一个由空闲信息块集合306提供的空闲信息块。所述空闲信息块由耗损均衡机制307分配,该机制确保所分配的信息块总是空闲信息块集合306中具有最少耗损计数器的信息块。该信息块则根据需求或被分配至按块组织的信息块集合303或被分配至日志304。垃圾收集器305如有需要应用上文所描述的信息块合并机制,负责回收这两个集合中的信息块。这样被回收的信息块被擦除,以便重新加入空闲信息块集合306中。其耗损计数器的计数于是增加一个单位次数。
[0059]这样一种电子磁盘控制器因而复杂,意味着大尺寸软件。当在需要高级别安全性的环境中例如在飞行器、核反应堆或其它环境中使用这样一种磁盘的问题提出时,所应用的软件应当遵照某些安全标准,例如航空工业所用的安全标准,比如文献D0-178B中提出的安全标准。因此,在飞行器中使用电子磁盘需要对磁盘控制器完整重写入,以遵守该文献中的倡议。能够使用直接在飞行器中的带有其原始控制器的商用电子磁盘是有利的。然而,这种使用意味着所述控制器可包含有可能不会被探测到的设计错误,即使是使用了如参照图1所描述的冗余系统。
[0060]特别是,所述控制器中的设计错误可以在冗余系统中导致后续的错误。在第一种类型的错误中,所述数据不正确地被写入所述磁盘。在第二种类型的错误中,所述数据被正确写入但地址错误。在第三种类型的错误中,所述数据根本没有被写入磁盘。在这三种情况下,所述命令返回回执,用以通知写入操作成功。所述错误同样在第二个磁盘中再现,通过随后的读取和对两个磁盘上所读到的数据的比较并无法探测出该错误。
[0061 ] 本发明基于在冗余电子磁盘控制器的运行中弓丨入分异性。通过激发两个控制器的不同运行,可以避免这些控制器的软件中的设计错误以相似方式产生于所述两个磁盘中而引发相同的错误。这样,在控制器代码中可能出现的设计错误,将在不同的时间、在不同的数据上产生,因此可以被命令监控机制探测出来。提醒的是,该监控机制在于会重新读取写入的数据并对比几次读取的结果以便确认它们的一致性。根据本发明的一种优选的实施方式,这种分异性以在图1的文件系统101处、通常是在冗余管理模块104内部实现的传递函数的形式引入。该传递函数会修改用于一个冗余电子磁盘子集的读写命令。正是这些修改后的命令于是被发送,以便在冗余磁盘子集中代替初始的命令被执行。在不受传递函数支配的冗余磁盘子集上,这些初始命令被直接执行。这样,被磁盘控制器最终执行的读写命令是不同的。读取时,逆传递函数被运用于所读数据上,以便确保冗余磁盘集合上所读数据的一致性。这些数据因此可以被比较以便探测可能存在的错误。这些相同的数据因此被存储在冗余磁盘集合中,但是在受传递函数支配的磁盘与不受传递函数支配的磁盘之间,存储进程、因而磁盘控制器所执行的软件路径是不同的。通过建立引发磁盘控制器内部执行不同软件路径的这种分异性,使得控制器的设计错误导致这些磁盘中出现相似错误从而该错误会避开错误探测机构的概率接近于零。该冗余磁盘系统满足了所需的安全要求,因此可以被用于关键系统中。
[0062]图4示出本发明的一实施例的逻辑架构。读写命令411通过所述系统被发送至磁盘。该命令411被图1中的冗余管理模块104以相同的方式接收。该命令411因此被发送至不受传递函数支配的第一磁盘。同一命令411还被发送给用于受到传递函数422支配的磁盘的传递函数422。该函数422修改命令411,生成至少一个命令423,命令423是所述传递函数应用于命令411的结果。在步骤414时,不受所述传递函数支配的所述磁盘执行初始命令411。在步骤424中,受传递函数支配的所述磁盘执行修改后的命令423。因此,这些执行修改了这两个磁盘的内部状态并导致所述初始命令的执行。然而,所述两个磁盘对初始命令的执行是不同的。随后,错误探测机构开始运行,通常导致对所述两个磁盘进行读取,以便验证服从于初始命令411的数据的一致性。更确切地,如果初始命令411是读取命令,该读取直接用于探测错误。如果命令411是写入命令,则生成相应的读取命令以便引起读取刚被写入的数据。对该读取命令同样应用所述传递函数,而该传递函数用于受该函数支配的磁盘。
[0063]在不受所述传递函数支配的磁盘上,所读数值417直接用于验证。在受传递函数支配的所述磁盘上,对所读数值425应用逆传递函数426以便生成一个最终的所读数值427。这些所读数值通过步骤418进行比较。当这些值不同时,则探测到错误。
[0064]读写命令的特征一方面在于一个逻辑地址应被读取或写入,并且在写入的情况下,通过一个待写入的数据进行写入。所述传递函数因此负责修改该地址加数据对以便生成修改后的命令。
[0065]根据第一实施方式,所述传递函数旨在形成一种空间分异性。修改后的命令会引起读取或写入与所述初始命令中预设地址不同的地址。例如,如果逻辑存储空间延伸于起始地址和结束地址之间,则该空间逻辑上自起始地址开始被填充。所述传递函数可以通过所述结束地址减去包含在命令中的地址来替换该包含在命令中的地址。这样,在执行所述传递函数的磁盘中,所述存储空间将从结束地址起朝向起始地址进行填充。该实施方式示于图5。不执行所述传递函数的第一磁盘501的逻辑存储空间通过一种自起始地址“O起始”起直至结束地址结束”的渐进填充方式进行组织。执行所述传递函数的第二磁盘502的逻辑存储空间通过一种自结束地址结束”起直至起始地址起始”的渐进填充方式进行组织。在不受传递函数支配的磁盘上,与地址相关的命令命令”直接在该地址上执行。受传递函数支配的磁盘的逻辑空间填充方向的这种逆序是通过利用所述传递函数用地址“O结束-O命令”替换与所述命令“O命令”相关的地址来得到的。因此,在这种情况下,通过所述传递函数进行修改的命令正是其地址已这样被修改后的初始命令。因此,相同的数据被以相同的方式写入所述两个磁盘,但写入不同的逻辑地址。所述读取命令受到同样的修改,因此得以在磁盘集合上以一致的方式读取到正确的数据。产生空间分异性的另一种传递函数可以在于向原始地址增加一个偏移。另一种可能性是仅对偶地址进行修改,或是相反地仅对奇地址进行修改。本领域技术人员可以理解,所述传递函数可以是关于磁盘逻辑寻址空间所定义的任何双射数学函数。这样一种函数必然产生一种空间分异性。
[0066]图6示出空间分异性的另一个实施例。在该实施例中,数据以一个分段逻辑数据集合600的形式进行组织。该集合包括数据段集合601、602至606。传递函数实现数据段的排列。在该实施例中,修改后的数据集合610由以不同的顺序安排的相同数据段611至616构成。在图6的实施例中采用了一种数据段二对二的排列。任何其它排列都可以考虑。与前述的空间分异性的实施例相同地,该结果是通过应用在命令地址之间实现双射关系的传递函数来获得的。对应原始信息块601的地址被修改以便与修改后的信息块612相符,信息块602的地址则被修改以便与修改后的信息块611相符,对于所有信息块以此类推进行。
[0067]在空间分异的情况下,分配读取数据的逆传递函数是恒等式。只有包括错误探测机构所使用的读取命令在内的读写命令被修改。在该实施方式中,与所使用地址相关的设计错误不会以同种方式产生在所有磁盘上并且会被探测出来。同样需注意的是,这种不同的数据分配导致不同信息块的分配,由此导致耗损均衡和垃圾收集机构的不同的执行方式。
[0068]根据第二种实施方式,所述传递函数实施一种模式(motif)分异性。在这种情况下,所述传递函数修改与命令关联的数据。所述函数在于将一种双射函数应用于该数据。这种双射函数关于存储设备的数据空间被定义,通常所述空间由所有可能的数据字构成。所述函数因此只涉及写入命令,这些写入命令是与某一个数据相关联的仅有命令。所述读取命令未被修改。产生模式分异性的传递函数的一个实施例在于对应被写入的数据进行反码。也就是说,代表所述数据的比特被逐一求反。在这种情况下,逆传递函数在于将逆双射函数应用于读到的数据以便重新找回初始数据。在反码的情况下,逆函数同样是反码。在该实施方式中,数据因此在受所述传递函数支配的磁盘上的存储地址与不受该函数支配的磁盘上地址相同,但数据值被修改。这样,与写入数据值相关的设计错误不会以同种方式产生在所有磁盘上并且将被探测出来。
[0069]根据第三种实施方式,传递函数形成一种时间分异性。在这种情况下,所述传递函数通过向初始命令增加至少一个称为“幽灵命令”的其它的命令来修改所述初始命令。附加的幽灵命令的插入旨在修改由受所述传递函数支配的磁盘所执行的命令的时间序列。由于在文件系统所请求的原始写入中插入附加写入,其因而会导致对数据的物理地理分布的修改。因此,其还导致了对耗损均衡和垃圾收集机构运行的修改。有利地,各个命令时的插入不是系统性的,以避免在受传递函数支配的磁盘上分配的物理空间和计算时间上带来过多的超载。所述插入可以是随机的或甚至周期性的。根据一种特殊的实施方式,这种插入允许在接收到的整个写入命令之前插入附加命令。这样,命令序列自第一有效命令起就被修改。所述有效命令是由与附加命令相对定义的原始命令。其可以包括在逻辑存储空间的空闲空间中随机数据写入命令的插入。其同样可包括读取命令的插入。这些读取命令,即便它们不修改物理磁盘上已记入的数据,但仍可以修改缓存中的内容并由此在磁盘管理器所使用的软件路径中引入分异性。同样需注意到,由于幽灵命令的插入,在以被执行命令的数目表示的一个周期的基础上会周期性启动的垃圾收集器将不会在相同的时间被启动。因此,所述垃圾收集器的特性在所有磁盘上并不相似。逆传递函数在该实施方式中是恒等式,因为所述逻辑地址和相关数据在有效命令中未被修改。
[0070]当磁盘意外衰耗时,通常使用一个电容器确保在短时间内提供磁盘电能。该时间被利用来排空缓存。可能会发生这样的情况:该段时间不够长,某些位于缓存的信息块没有时间被保存到载体上,由此甚至遭到破坏。所述时间分异性通过引起以延迟方式将数据发送到受所述传递函数支配的磁盘上,导致可能被破坏的信息块序列中的分异性。这些错误因此可以被探测到。
[0071]图7示出根据本发明的一个实施例的读写方法的流程图。该方法通常在图1的冗余管理模块104内部实施。在第一步骤700时,该模块从文件系统接收用于物理存储设备的初始读写命令。在步骤701中,应用旨在修改初始命令的传递函数。于是通过该传递函数的应用得到至少一个修改后的读写命令。在步骤703中,所述初始命令被发送至第一物理存储设备子集。同时,在步骤704中,所述修改后的命令被发送至第二物理存储设备子集。如果初始命令是写入命令,且仅仅在这种情况下,步骤705生成相关联的读取命令。即存储在包含于写入命令中的逻辑地址的所述数据的读取命令。目的是重新读取刚被写入的数据以便验证所述写入是否顺利进行。在步骤706中,生成的读取命令同样经受相同的传递函数处理,以便生成一个或多个修改后的读取命令。仍只在所述初始命令为写入命令的情况下,所述生成的读取命令则在步骤707中被发送至所述第一物理存储设备子集。而所述修改后的读取命令在步骤708中被发送至所述第二物理存储设备子集。在步骤709中,所读数值被接收。由所述第二物理存储设备子集发送的所读数值在步骤710中经受逆传递函数的运用。只有在所述数据被所述传递函数修改过的情况下,即在模式分异性的情况下,才需要该步骤。在步骤711中,所接收的所读数值和修改后的所读数值被进行比较,以便探测其中一个磁盘上可能存在的不良运行。该方法同样可以探测到所述物理存储设备的控制软件内部的设计错误,这些错误不会在两个子集的物理存储设备中以相同的方式产生。
[0072]本发明的这三种实施方式可以根据所寻求的分异性进行两两结合。根据一种优选的实施方式,这三种分异方式被结合在一起。这样,受所述传递函数支配的磁盘和不受该传递函数支配的磁盘之间的分异性程度同样增加。而所述磁盘控制器中的设计错误未被探测出来的概率则得以被最小化。
[0073]根据另一个实施方式,冗余磁盘集合可以被划分为多于两个的子集。其中仅有一个子集不受到传递函数的支配。其它的磁盘子集则受到传递函数的支配。该传递函数对于各个子集是特定的。错误探测机构则比较各个子集所提供的结果以便验证其一致性。
[0074]根据本发明的冗余同样可以与旨在保障容错能力的冗余机制、例如公知的名为RAID(英文全称“Redundant Array of Independent Disks”即独立冗余磁盘阵列)的机制相结合。该RAID类型的冗余则通常同样由图1的冗余管理模块104管理。
[0075]尽管在电子磁盘的情况下由于在这些磁盘中集成的控制器复杂而实施本发明是尤其有利的,但本发明同样有利地可以在任何类型的物理存储设备例如传统磁盘、光盘、远程盘或其它的基础上实施。
[0076]图8是用于实施本发明的一种或多种实施方式的信息处理装置800的示意性方框图。信息处理装置800可以是外围设备例如微型计算机、台式机(poste de travail)或移动通信终端。所述装置800具有通信总线,通信总线连接至:
[0077]-中央处理单位801,例如微处理器,标示为“CPU”;
[0078]-标示为“RAM”的随机存取存储器802,用于存储本发明的实施方法的可执行代码以及适于记录用于实施根据本发明的实施方式的方法所必要的变量及参数的寄存器;设备的存储容量可以通过例如连接至扩展端口的可选RAM存储器来补充;
[0079]-标示为“ROM”的只读存储器803,用于存储实施本发明的实施方式的计算机程序;
[0080]-网络界面“NET”804,其通常连接至通信网络,在该通信网络上待处理的数字数据被传输或接收。网络界面804可以是唯一的网络界面或是由不同的网络界面的集合(例如有线和无线界面,不同类型的有线或无线界面)构成。一些数据包被发送至网络界面上以便传输,或是从所述网络界面被读取以便在处理器801中执行的软件应用的控制下进行接收;
[0081]-用户界面“IHM”850,用于接收用户的输入或用于向用户显示信息;
[0082]-存储设备806,例如本发明所描述的,标示为“HD”;
[0083]-输入/输出模块“10”807,用于从/朝向例如硬盘、可移动存储载体或其它等的外围设备接收/发送数据。
[0084]可执行代码可以被存储在只读存储器803中、存储设备806上或可移动的数字载体例如磁盘上。根据一个变型,所述程序的可执行代码可以通过通信网络经网络界面804被接收,以便其在被执行之前被存储在通信装置800的其中一个存储工具例如存储设备806 中。
[0085]中央处理单元801适于操控和引导根据本发明的其中一种实施方式的程序软件代码部分或指令的执行,所述指令存储在前述存储工具之一中。通电后,CPU801能执行与软件应用相关的主存储器RAM802的指令。这样一种软件在被处理器801执行时,引起所述方法的步骤被执行。
[0086]在该实施方式中,设备是一种使用软件来实施本发明的可编程设备。然而,作为补充,本发明可以在硬件(例如呈专用集成电路即“ASIC”的形式)中实施。
[0087]当然,为了满足特定的需求,在本发明领域中的技术人员可以对前文的描述进行修改。
[0088]尽管本发明在上文参照一些特殊实施方式进行了描述,但本发明并不限于这些特殊实施方式,在本发明的应用领域中存在的改型对于本领域技术人员而言是显而易见的。
【权利要求】
1.存储设备,所述存储设备包括: -多个冗余物理存储设备; -文件系统的管理模块,其生成给所述多个冗余物理存储设备的数据读写命令,数据应以冗余方式被写入每个物理存储设备; -错误探测模块,用于通过比较自所述多个冗余物理存储设备读取的数据的值来探测错误; 其特征在于,所述存储设备还包括: -允许将传递函数应用于给物理存储设备子集的读写命令的模块,所述传递函数用于修改读写命令。
2.根据权利要求1所述的存储设备,其特征在于,所述传递函数修改与写入命令相关联的数据,所述存储设备另外具有: -允许将逆传递函数应用于自所述物理存储设备子集读取的数据的模块。
3.根据权利要求2所述的存储设备,其特征在于: -所述传递函数具有将关于存储设备数据空间定义的第一双射函数应用于与写入命令相关联的数据的工具。
4.根据权利要求1至3中任一项所述的存储设备,其特征在于: -所述传递函数具有将关于存储设备逻辑寻址空间定义的第二双射函数应用于与命令相关联的逻辑地址的工具。
5.根据权利要求1至4中任一项所述的存储设备,其特征在于: -所述传递函数具有将附加命令添加至所述读写命令的工具。
6.根据权利要求4所述的存储设备,其特征在于: -所述第二双射函数用存储设备逻辑寻址空间的结束地址同与命令相关联的地址的相减结果来替换所述与命令相关联的地址。
7.根据权利要求4或6所述的存储设备,其特征在于: -所述第二双射函数仅应用于偶地址,或者仅应用于奇地址。
8.根据权利要求3所述的存储设备,其特征在于: -所述第一双射函数具有将与写入命令相关联的数据进行反码的工具。
9.根据权利要求5所述的存储设备,其特征在于: -所述传递函数具有在接收到的整个第一命令之前插入附加命令的工具。
10.根据权利要求5或9所述的存储设备,其特征在于: -所述传递函数具有周期性插入附加命令的工具。
11.根据权利要求5、9和10中任一项所述的存储设备,其特征在于: -所述传递函数具有随机插入附加命令的工具。
12.在存储设备上读写的方法,所述存储设备包括多个冗余物理存储设备,其特征在于,所述方法具有: -用于接收通过文件系统的管理模块生成的初始读写命令的接收步骤(700); -用于将传递函数应用于所述初始读写命令的应用步骤(702),所述传递函数用于修改所述初始读取命令以便获得至少一个修改后的读写命令; -用于将所述初始读写命令发送至第一物理存储设备子集的发送步骤(703);-用于将所述修改后的读写命令发送至第二物理存储设备子集的发送步骤(704); -如果命令是写入命令,所述方法还具有: -用于生成关联的读取命令的生成步骤(705); -将所述传递函数应用于生成的读取命令的应用步骤(706); -将所述关联的读取命令发送至所述第一物理存储设备子集的发送步骤(707); -将通过所述传递函数修改后的读取命令发送至所述第二物理存储设备子集的发送步骤(708); -接收所读数值的接收步骤(709);以及 -对所读数值进行比较的比较步骤(711)。
13.根据权利要求12所述的方法,其特征在于,所述传递函数修改与写入命令相关联的数据,所述方法还包括: -将逆传递函数应用于来自所述第二物理存储设备子集的读取数据的应用步骤(710)。
14.计算机程序,所述计算机程序包括一些指令,当在计算机上执行所述计算机程序时,这些指令适于实施根据权利要求12或13所述的方法的各个步骤。
15.能移动或不能 移动的信息存储工具,其部分地或完全地能被计算机或微处理器读取,具有用于执行根据权利要求12或13所述的方法的各个步骤的计算机程序代码指令。
【文档编号】G06F11/07GK103970682SQ201410190357
【公开日】2014年8月6日 申请日期:2014年2月7日 优先权日:2013年2月5日
【发明者】J-L·罗宾, B·克莱因 申请人:空中客车运营简化股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1