CN100483323C - 用于写入数据的方法、装置和系统 - Google Patents

用于写入数据的方法、装置和系统 Download PDF

Info

Publication number
CN100483323C
CN100483323C CNB2004800390685A CN200480039068A CN100483323C CN 100483323 C CN100483323 C CN 100483323C CN B2004800390685 A CNB2004800390685 A CN B2004800390685A CN 200480039068 A CN200480039068 A CN 200480039068A CN 100483323 C CN100483323 C CN 100483323C
Authority
CN
China
Prior art keywords
ablation process
record
indication
group
disk storage
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.)
Expired - Fee Related
Application number
CNB2004800390685A
Other languages
English (en)
Other versions
CN1898636A (zh
Inventor
F·科拉多
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1898636A publication Critical patent/CN1898636A/zh
Application granted granted Critical
Publication of CN100483323C publication Critical patent/CN100483323C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1071Power loss, i.e. interrupted writes due to power loss in a RAID system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1095Writes number reduction, i.e. reducing the number of writes in a RAID array with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

提供了一种方法、装置和系统,用于管理布置在数据组织类型诸如RAID阵列中的多个盘存储单元上的条带中所存储的用户数据和奇偶数据的更新。在一个实施例中,将可能含有不一致的用户数据和奇偶数据的条带记录存储在盘存储单元中。另一方面,在将条带记录写入盘存储单元之前,用于多个写过程的条带条目被允许累积。另一方面,条带记录可被写入不同的盘存储单元,并使用生成号来标识条带的最近记录。

Description

用于写入数据的方法、装置和系统
技术领域
实施例涉及用于在组织系统中例如RAID系统中更新数据的方法、系统和程序。
背景技术
已提出了许多技术用于组织存储在存储设备例如盘驱动器中的数据。一个这种数据存储组织称为独立(或廉价)盘冗余阵列或(RAID)。在RAID组织中,两个或更多个盘驱动器配合使用,以改进容错或性能,或二者。有不同类型的RAID数据存储组织,并且这些不同的类型常称为RAID 0级、1级、2级...。
例如,在RAID 0级数据组织中,使用户文件数据成“条带”状,即,用户数据块分布在多个盘上以改进性能。但是,在RAID 0级数据组织中,如果其中一个驱动器失效,则通常没有提供冗余作数据恢复。RAID 3级数据组织与RAID 0级类似,但通常保留有一个盘来存储纠错数据,常常称为“奇偶数据”。如果一个驱动器失效,则该奇偶数据就可用来重建丢失的用户数据。
图1示出RAID 5级数据组织的一个实例,包括在盘驱动器20a、20b、...20e上的多个条带:条带1、条带2、...条带n。每个条带包括多个用户数据块10和一个奇偶数据块12。没有特定的盘驱动器专门用来存储奇偶数据块12。而是,用于这些条带的奇偶数据块12分布在阵列的所有盘20a、20b、...20e上,以进一步改进性能。
图2示出了当用新数据更新RAID系统中一个条带上例如条带n上的老用户数据时为了生成新奇偶数据可进行的逻辑运算。如图2所示,可对条带n上的新用户数据30和老用户数据32进行“异或”逻辑操作。“异或”操作的结果可与条带n的老奇偶数据33进行“异或”运算,以生成条带n的新奇偶数据36。新奇偶数据36可用来重写在适当RAID存储单元上的老奇偶数据33,且新用户数据30可用于重写在适当RAID存储单元上的老数据32。
由于任一特定条带的用户数据和奇偶数据通常驻留在不同的盘驱动器上,因此一个条带的用户数据和奇偶数据经常不是同时更新的。新用户数据可能写入条带之后新奇偶数据才被写入,或反之亦然。如果在更新条带的写入操作中间系统断电,那么在一些系统中,条带的用户数据就会与条带的奇偶数据不一致。
于是,如果在写入操作完成之前系统因断电或其它故障而中断,则可保存这些条带、通常称为“脏条带”的一个记录,它可能含有奇偶不一致。例如,一些已知的存储控制器具有非易失性存储器,例如NVRAM(非易失性随机存取存储器),其中保持了脏条带记录。一旦供电恢复,存储控制器就可存取非易失性存储器中的脏条带记录,并恢复所列出的脏条带的奇偶一致性。
尽管如此,但业界一直有一种需要,要改进数据存储组织中的处理器性能。
发明内容
根据本发明的一个方面,提供了一种写入数据的方法,该方法包括:在盘存储单元中存储第一记录,其中所述第一记录包括存储在多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;在由所述记录指示的所述条带中写入用户数据和奇偶数据;清除所述指示;在第一累积期间从第一组多个写入过程接收多个指示,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;在所述累积期间,推迟将所述第二记录写入盘存储单元;以及从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期和将所述第二记录写入盘存储单元。
根据本发明的另一个方面,提供了一种用于写入数据的装置,该装置包括:将第一记录存储在盘存储单元中的单元,其中所述第一记录包含存储在多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;在由所述记录指示的所述条带中写入用户数据和奇偶数据的单元;清除所述指示的单元;在第一累积期间从第一组多个写入过程接收多个指示的单元,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示的单元,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;在所述累积期间,推迟将所述第二记录写入盘存储单元的单元;以及从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期和将所述第二记录写入盘存储单元的单元。
根据本发明的又一个方面,提供了一种用于写入数据的系统,该系统包括:至少一个内存,它包含操作系统和应用程序;连接到所述内存的处理器;具有多个盘存储单元的数据存储器;数据存储控制器,用于管理对所述数据存储器的输入/输出(I/O)存取;将第一记录存储在盘存储单元中的部件,其中所述第一记录包括存储在所述多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;在由所述记录指示的所述条带中写入用户数据和奇偶数据的部件;清除所述指示的部件;在第一累积期间从第一组多个写入过程接收多个指示的部件,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示的部件,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;在所述累积期间,推迟将所述第二记录写入盘存储单元的部件;以及从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期和将所述第二记录写入盘存储单元的部件。
附图说明
现参阅附图,所有附图中相同的参考编号表示对应的部件:
图1示出在多个盘驱动器上条带中的RAID数据现有技术组织;
图2示出在数据更新中RAID奇偶数据的现有技术生成;
图3示出实现本发明各方面的计算环境的一个实施例;
图4示出可用于图3的计算环境的存储控制器实例;
图5A示出存储在盘驱动器上的脏条带记录的一个实施例;
图5B示出由日志管理器保持的脏条带记录的一个实施例;
图6示出管理脏条带记录所执行操作的一个实施例;
图7示出与脏条带记录配合写入数据所执行操作的实施例;
图8示出管理脏条带记录以及与脏条带记录配合写入数据所进行操作的一个实施例的时间线图表;
图9示出由日志管理器与脏条带记录配合所保持的清洗记录的一个实施例;以及
图10示出可与所述实施例一起使用的体系结构。
具体实施方式
在以下说明中,参阅附图,其中附图形成本发明的一部分,并示出几个实施例。应理解,可使用其它实施例,并可作结构和操作改变。
图3示出可以实现数据更新的计算环境实例。计算机102包括一个或多个中央处理单元(CPU)104(仅示出一个)、内存106、非易失性存储器108、存储处理器109以及操作系统110。计算机102可通过网络适配器112与网络111通信。应用程序114在内存106中执行,并能够从存储器108中读出数据和向其写入数据。计算机102可包括业界已知的任何计算设备,例如:大型机、服务器、个人计算机、工作站、膝上型电脑、手持计算机、电话设备、网络设备、虚拟化设备、存储控制器等等。业界已知的任何CPU 104和操作系统110都可使用。作为内存管理操作的一部分,内存106中的程序和数据可交换到存储器108中。
设备驱动程序120在内存106中执行,并包括存储控制器特定指令,以与存储处理器109以及操作系统110和存储处理器109之间的接口通信。设备驱动程序120包括日志管理器130,它管理保持有存储在存储器108中的数据单元的记录,其中奇偶可能由于进行中的数据更新而不一致。例如,存储器108可包括多个盘驱动器150a、150b、...150n,组织类型如RAID的一个级别,其中保持了奇偶数据。
在某些实现中,存储处理器109执行某些操作,以协助计算机102从存储器108中读出数据和向其写入数据。例如,存储处理器109可具有软件、固件或硬件或它们的组合,以将LBA(逻辑块地址)地址从计算机102转换成盘驱动器150a、150b、...150n的柱面、磁头和扇区规范。适用的存储处理器109的一个实例是本申请受让人、英特尔公司销售的80200处理器和80312配套集成电路。在另一实施例中,类似于80200处理器和80312配套集成电路的存储控制器可更改为包括日志管理器130和本文所述写入过程的部分或全部功能。
图4示意图示出存储处理器109的一个实例。存储处理器109便于在主机102和存储器108之间快速移动大量数据。存储处理器109包括电桥160,它在主机102的主总线162和连接到存储器108的存储控制器166的次总线164之间。电桥160允许例如可以是串行-高级技术附件(SATA)控制器的存储控制器166与主总线162物理隔离。关于SATA体系结构的详情在技术说明书“串行ATA:高速串行化AT附件(Serial ATA:High Speed Serialized AT Attachment)”Rev.1.0A(2003年1月)中有说明。
主地址转换单元168提供从主总线162通过局部总线174到处理器170和局部内存172的高通过量数据通路。连接到局部总线174的还有逻辑引擎175,它可为处理器170提供附加处理资源。次地址转换单元178提供从处理器170和局部内存172到次总线164的高通过量数据通路。在所示实施例中,总线162、164是PCI总线,但其它类型的外围总线也可使用。关于PCI体系结构的详情在PCI-SIG出版的“PCI局部总线(PCI Local Bus),Rev.2.3”中提供了。
局部内存172具有内存控制器180。在所示实施例中,局部内存172是RAM型存储器,用于对数据进行高速缓存。也可使用其它类型的存储器。直接存储器存取(DMA)控制器允许从主机102到局部内存172以及从局部内存172到驱动器150a...150n的直接存储器传送。此外,可以提供非易失性存储器,例如非易失性随机存取(NVRAM)存储器,以存储脏条带信息。
用于执行RAID类型数据存储和传送的功能可在存储处理器109、驱动程序120或二者的组合中实现。该功能也可在其它设备例如网络适配器112中实现。
按照所示实施例的一个方面,日志管理器130在非易失性存储器例如盘驱动器150a、150b...150n中保持脏条带的记录200(图5A)。因而,在一些应用中,就可不需要在存储处理器109的非易失性存储器例如NVRAM中的脏条带记录。在其它应用中,如果非易失性存储器或存储控制器失效,则存储在一个或多个盘驱动器150a、150b...150n中的记录200就提供了备份。
在另一方面,日志管理器130在存储器例如计算机102的内存106中保持脏条带记录202(图5B)。如以下详述的,这种配置允许在将脏条带记录202写入盘驱动器150a、150b...150n中一个盘驱动器之前在记录202中累积脏条带记录条目。这样,累积的脏条带记录202就成为盘驱动器150a、150b...150n中一个盘驱动器的脏条带记录200。因而,在一些应用中,就可减少将脏条带信息写入盘驱动器150a、150b...150n中一个盘驱动器的盘写入操作数。
在又一方面,日志管理器130可以生成多个脏条带记录200,将每个记录写入盘驱动器150a、150b...150n中的不同盘中。这种配置便于进行写入操作的并行批量处理。如果有需要使用脏条带记录200,则驱动程序120可以标识存储在盘驱动器150a、150b...150n上的最近的脏条带记录200。最近的脏条带记录200然后可用于标识一些脏条带(即,可能具有不一致的用户和奇偶数据的条带),以便可以恢复所标识条带的奇偶一致性。
图6示出了日志管理器130生成并保持盘驱动器脏条带记录200和日志脏条带记录202的操作实例,其与一个或多个数据写入操作或过程配合,图7示出了一个实例。在启动(图7的框210)数据写入过程以更新布置在RAID阵列中的盘驱动器150a、150b...150n的特定卷的特定条带中的数据之后,写入过程开始从目标卷的目标条带中读出待更新的老用户数据,如图8时间线图表的读出操作212所示。
此外,写入过程开始从目标卷和条带中读出待更新的老奇偶数据,如图8的另一读出操作214所示。还有,写入过程开始在传送操作216中将新用户数据传送到存储处理器109中。在图8实例中,该传送操作可以是DMA传送。也可使用其它类型数据传送。在一些应用中,将数据写入盘驱动器前不会发生新数据到存储控制器的传送。
也在启动(图7的框210)数据写入过程之后,写入过程向日志管理器130发出(图7、8的框220)一个指令,以将写入过程的目标条带标记为日志脏条带记录202中的脏条带。作出响应(图6的框222),日志管理器130在日志脏条带记录202中记录(图6、8的框224)目标条带的卷号和条带号。如图5B所示,日志脏条带记录202包括多个条目230a、230b...230e,每个条目有一个字段232存储目标条带的卷号以及一个字段234存储目标条带的相关联条带号。
在图5B的实例中,条目230c响应于写入过程240c而写入,其操作示于图7。于是,写入过程230c发出(框220)指令以将该写入过程的目标条带标记为脏条带。除图7所示的写入过程230c外,计算机102可以有多个写入过程240a、240b...240e并行操作。由于每个写入过程都以类似于图7的过程框210的方式启动,因此写入过程以类似于图7的过程框220的方式向日志管理器130发出指令,以将该写入过程的目标条带输入为日志脏条带记录202中的条目。
有些脏条带条目可能在条目230c之前已经输入,如现有条目230a、230b所表示的。于是,在此实例中,写入过程240a会使日志脏条带记录条目230a被输入用于写入过程240a的目标条带;且写入过程240b会使日志脏条带记录条目230b被输入用于写入过程240b的目标条带。
按照一个方面,脏条带条目不需要对每个写入过程240a、240b...的启动作出响应而直接输入到盘驱动器脏条带记录200中。而是,在写入日志脏条带记录202作为盘驱动器150a、150b...150n中之一的盘驱动器脏条带记录200之前,可允许日志脏条带记录202中的脏条带条目累积一段时间。这样,例如,两个附加并行写入过程240d、240e分别显示为使日志脏条带记录202中的两个附加条目230d、230e的条目分别用于写入过程240d、240e的目标条带。
在所示实施例中,一旦该批并行写入过程240a、240b...240e之一接收到(图7的框250)要写入该写入过程目标条带的新用户数据,写入过程就指令(图7、8的框252)日志管理器130“清洗(flush)”,即将日志脏条带记录202写入到盘驱动器150a、150b...150n中之一,以使日志脏条带记录202成为存储在盘驱动器150a、150b...150n中之一上的盘驱动器脏条带记录200。由图8能最清楚看出,一旦启动(图7的框210)该批写入过程240a、240b...240e的第一写入过程,其时间在图8的时间线中标记为时间t0,日志管理器130就可在日志脏条带记录202中为正在启动的该批以后的写入过程累积脏条带记录,直到该批当时的并行写入过程之一接收到其新用户数据,其时间在图8的时间线中标记为时间t1。
应理解,标记写入过程启动的时间t0可用于的写入过程不同于首先接收到其在时间t1标记的新用户数据的并行写入过程。虽然脏条带记录累积期间已描述为期间t0-t1,应理解,也可选择其它时段来标记脏条带累积期间的开始和结束。例如,应理解,除数据传送外的事件可用来触发生成对日志管理器130的清洗指令。例如,在一个实施例中,其中写入过程成批生成,该批的写入过程可禁止生成对日志管理器130的清洗指令,直到对于该批每个写入过程的每个目标条带都已写入脏条带记录为止。
其它事件可用来指示脏条带记录累积的时段。除累积脏条带记录外,如下述,响应于在此累积期间从各写入过程接收(框322)的标记干净指令,日志管理器130还可将目标条带标记为干净(框324)。
对来自写入过程的将日志脏条带记录202中所包含的脏条带信息清洗或写入到盘驱动器150a、150b...150n中之一的指令作出响应(图6的框260),日志管理器130确定(框262),对于发出清洗指令的写入过程的记录202的脏条带条目,日志脏条带记录202是否已被清洗。该确定是通过检查日志清洗记录270而作出的,它像日志脏条带记录202一样包括多个条目272a、272b...272e,每个条目有一个字段232存储目标条带的卷号,以及一个字段234存储写入过程的目标条带的相关联条带号。每个条目272a、272b...272e标识一个写入过程的目标条带,其条目232a...232h的相应日志脏条带记录条目已被清洗,亦即写入到盘驱动器脏条带记录200。这样,如果确定(框262),对于发出清洗指令的写入过程的目标条带,日志脏条带记录202已被清洗,则日志管理器130继续在日志脏条带记录202中为其它并行写入过程累积(框222、224)脏条带条目,直到从并行写入过程接收到另一清洗指令为止。
如果确定(框262),对于发出清洗指令的写入过程的目标条带,日志脏条带记录202未被清洗,则日志管理器130递增(框280)存储在日志脏条带记录202的字段282中的记录生成号。该记录生成号可用来确定记录202的信息一旦被写入盘驱动器150a、150b...150n之一是否是所写盘驱动器脏条带记录200的最近记录200。
此外,日志管理器130标记(图6、8的框284)日志清洗记录270,以指示写入到盘驱动器脏条带记录200的脏条带列表。在一个实施例中,这可通过擦除日志清洗记录270的任何之前条目272a...272e并将日志脏条带记录202的所有当前脏条带条目232a...232e复制到日志清洗记录270来完成。这样,日志清洗记录270就可提供写入到最近的盘驱动器脏条带记录200的所有脏条带条目232a...232e的记录。
还有,日志管理器130将当前日志脏条带记录202的信息写入到盘驱动器150a、150b...150n之一(以使当前日志脏条带记录202成为最近的盘驱动器脏条带记录200)。于是,在此实例中,记录202的脏条带条目230a-230e被写为盘驱动器脏条带日志200的脏条带条目291a-291e。此外,将记录202的生成号字段282复制到记录200的字段282。
在完成最近的盘驱动器脏条带记录200的写入后,日志管理器130发送(图6、8的框292、框290)一个脏条带记录写入完成回叫到由日志清洗记录270的目标条带条目272a...272e所标识的每个写入过程。该回叫向日志清洗记录270所列出的写入过程指出:已将其目标条带标识为脏条带的记录写入到盘驱动器,作为最近的盘驱动器脏条带记录200。
于是,接收(图7的框300)脏条带记录写入完成回叫的写入过程可开始将每个写入过程的新用户数据写入(图7、8的框302)到相关联写入过程的目标条带。如果在写入过程中发生断电或其它中断,则在写入到盘驱动器的最近盘驱动器脏条带记录200中所标识的可能脏条带的奇偶数据一致性可被恢复。因此,就可避免整卷的奇偶数据的重新初始化。
一旦写入过程已从目标条带读出(图8的操作212)老数据、已从目标条带读出(图8的操作214)老奇偶数据、并接收到(图8的操作216)待写入到该写入过程目标条带的新数据,该写入过程就可生成(操作310)新的奇偶数据。除写入新的用户数据外,一旦接收到脏条带记录写入完成回叫,写入过程一旦完成了为目标条带生成(图7的框312)新的奇偶数据,就可开始将新的奇偶数据写入(图7、8的框314)到该写入过程的目标条带。
一旦写入过程完成了将新用户数据和新奇偶数据写入到该写入过程的目标条带,将数据写入到写入过程的目标条带即告完成。相应地,写入过程可向日志管理器130发出(图7、8的框320)指令,以将写入过程的目标条带标记为干净。
对来自写入过程的标记干净指令作出响应(图6中的框322),日志管理器130从日志脏条带记录202中将标识该写入过程的目标条带为脏条带的条目移除(框324),因为对于该条带的写入过程已完成,且该条带不再可能是“脏”的,即用户数据和奇偶数据不可能不一致。但按照另一方面,日志管理器130可不立即将更新的日志脏条带记录202的信息清洗到盘驱动器150a、150b...150n。而是,日志管理器可继续累积(框222)来自新并行写入过程的指令,并将它们的目标条带添加(框224)到日志脏条带记录202,如记录202条目230f、230g、230h...230n以幻象所示,直到接收到(框260)用于尚未清洗(框262)的目标条带条目的清洗指令为止。还有,日志管理器可继续累积(框322)以前的并行写入过程在它们完成时发出的标记条带干净指令,并从日志脏条带记录202中移除(框324)它们的目标条带,直到接收到(框260)用于尚未清洗(框262)的目标条带条目的清洗指令。这样,对盘驱动器150a、150b...150n的写入操作就可减少。
一旦确定(框262),对于发出清洗指令的写入过程的目标条带,日志脏条带记录202尚未清洗,日志管理器130递增(框280)存储在字段282中的记录生成号,并标记(图6、8的框284)日志清洗记录270,以指示写入到盘驱动器脏条带记录200的脏条带列表。还有,日志管理器130将当前日志脏条带记录202写入到(图6、8的框290)盘驱动器150a、150b...150n之一,以使当前日志脏条带记录202中所包含的信息成为最近的盘驱动器脏条带记录200。如果在此时间之后发生断电或其它中断,则从日志脏条带记录200中清除的目标条带的奇偶数据的一致性将不需要恢复,因为对已清除条目的目标条带的写入过程每个都已完成。因此,就可避免标记为干净的目标条带的奇偶数据的重新初始化。
如果计算机系统102以正常方式关闭(图6的框350),使所有写入过程都已完成,且没有脏条带留在日志脏条带记录202中,则日志管理器130可标记(框352)日志脏条带记录202的字段354(图4),以指示正在进行干净关闭。而且,如果系统或日志管理器130检测到在一段时间例如3秒都没有RAID写入操作,就可标记字段354,以指示干净关闭。结果如果随后断电,就可避免重新启动时的清除操作。
此外,日志管理器130递增(框280)存储在日志脏条带记录202的字段282中的记录生成号,并标记(图6、8的框284)日志清洗记录270,以指示写入到盘驱动器脏条带记录200的脏条带列表是空的。在一个实施例中,这可通过擦除日志清洗记录270的任何以前条目272a...272e来实现。还有,日志管理器130将当前日志脏条带记录202写入到(图6、8的框290)盘驱动器150a、150b...150n之一(以使当前日志脏条带记录202成为最近的盘驱动器脏条带记录200)。在此实施例中,日志脏条带记录202的条目是空的,因为正在进行干净关闭。完成最近的盘驱动器脏条带记录200的写入后,日志管理器130不需要发送(图6、8的框292)脏条带记录写入完成回叫,因为没有写入过程由日志清洗记录270的空目标条带条目272a...272e标识。
在重新启动系统102时,可对具有由字段282指示的最近生成号的盘驱动器脏条带记录200的干净关闭字段354进行检查。如果字段354指示系统以前是以干净方式关闭,则没有条带的奇偶数据一致性需要被恢复。因而,就可避免整卷的奇偶数据的重新初始化。另一方面,如果最近的盘驱动器脏条带记录200的干净关闭字段354指示关闭不是干净的,则可对盘驱动器脏条带记录200的条目291a、291b...进行检查,以标识可能具有不一致用户和奇偶数据的那些条带,以使可对已标识条带的奇偶数据重新初始化。
附加实施例详情
用于管理数据迁移的所述技术可实现为使用标准编程和/或工程技术产生软件、固件、硬件或它们任何组合的方法、设备或制品。本文所用的词语“制品”是指在硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或计算机可读介质例如磁存储介质(例如硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失性和非易失性存储器件(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)中实现的代码或逻辑。计算机可读介质中的代码由处理器存取和执行。实现优选实施例的代码还可在网络上通过传输介质或从文件服务器存取。在这些情况下,实现代码的制品可包括传输介质,例如网络传输线、无线传输介质,信号则通过空间、无线电波、红外信号等传播。所以,“制品”可包括实施代码的介质。此外,“制品”可包括实施、处理和执行代码的硬件和软件组件的组合。当然,业界技术人员会认识到,对于这种配置可以作出许多改动,且制品可包括业界已知的任何信息承载介质。
在某些实现方案中,设备驱动程序可包含在计算机系统中,该计算机系统包括存储控制器,例如以上提到的串行-高级技术附件(SATA)、串行连接SCSI(SAS)、独立盘冗余阵列(RAID)等、控制器,其管理对非易失性存储装置的存取,例如磁带或者一个或多个盘存储单元,每个盘存储单元包括一个磁盘驱动器或一个光盘。在备选实现方案中,存储控制器实施例可包含在没有驱动程序的系统中。对用于设备和扩展器的SAS体系结构的更多详情在技术说明书“信息技术-串行连接SCSI(SAS)(Information Technology-Serial AttachedSCSI(SAS))”中有说明,参考由ANSI出版的no.ISO/IEC14776-150:200x和ANSIINCITS.***:200x PHY layer(2003年7月9日)。
在某些实现方案中,设备驱动器和存储控制器实施例可以在包括视频控制器的计算机系统中实现,以提供信息,在连接到包括设备驱动器和网络适配器的计算机系统的监视器上显示,这种计算机系统包括台式计算机、工作站、服务器、大型机、膝上型电脑、手持计算机等。备选的是,存储控制器和设备驱动器实施例可以在不包括视频控制器的计算设备中实现。
在某些实现方案中,日志管理器130显示为操作在主内存106中的驱动程序的一部分。在其它实施例中,日志管理器130可以在硬件中例如在存储处理器109中实现。因此,日志管理器可以软件、硬件、固件或它们的任何组合来实现。
在某些实现方案中,网络适配器可配置成在连接到网络适配器上端口的电缆上传输数据。备选的是,网络适配器实施例可配置成在无线网络或连接上传输数据,例如无线LAN、蓝牙等。
图7a-7b所示的逻辑示出了以某种顺序发生的某些事件。在备选实施例中,某些操作可以不同顺序执行、更改或移除。而且,一些操作可添加到上述逻辑,且仍与所述实施例相符。另外,本文所述的操作可依次发生,或者某些操作可并行处理。还有,这些操作可由单一处理单元或由分布式处理单元执行。
图10示出了网络组件的计算机体系结构500的一个实现方案,例如图3所示的主机和存储设备。体系结构500可包括处理器502(例如微处理器)、内存504(例如易失性存储器)以及存储器506(例如非易失性存储器,例如磁盘驱动器、光盘驱动器、磁带驱动器等)。存储器506可包括内部存储设备或附加的或网络可存取的存储器。存储器506中的程序以业界已知的方式加载到内存504中并由处理器502执行。存储控制器507可控制存储器506。该体系结构还包括网络适配器508,以便能与网络例如以太网、光纤通道仲裁环路等通信。关于光纤通道体系结构的详情在技术说明书“Fibre Channel Framing andSignaling Interface”中有说明,文件号为ISO/IEC AWI 14165-25。
另外,在某些实施例中,该体系结构可包括视频控制器509,以在显示监视器上提供信息,其中视频控制器509可以在视频卡上实现,或集成到安装在母板上的集成电路组件上。如所述,某些网络设备可具有多个存储卡或控制器。输入设备510用来提供对处理器502的用户输入,并可包括键盘、鼠标、笔针、扩音器、触摸式显示屏或业界已知的任何其它激活或输入机件。输出设备512能够提供从处理器502或其它组件例如显示监视器、打印机、存储器等传输的信息。
存储控制器506和网络适配器508可分别在卡上实现,例如外围部件互连(PCI)卡或某其它I/O卡,或在安装在母板上的集成电路组件上实现。
已经出于图示和说明目的给出了各种实施例的上述说明。上述说明书、实例和数据提供了各成分的制造和使用的完整说明。不应认为本说明书是排他性的,或局限于所公开的明确形式。根据上述内容可以作出许多更改和改变。

Claims (30)

1.一种写入数据的方法,包括:
在盘存储单元中存储第一记录,其中所述第一记录包括存储在多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;
在由所述记录指示的所述条带中写入用户数据和奇偶数据;
清除所述指示;
在第一累积期间从第一组多个写入过程接收多个指示,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;
在所述累积期间,推迟将所述第二记录写入盘存储单元;以及
从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期间和将所述第二记录写入盘存储单元。
2.如权利要求1所述的方法,其中所述第一记录含有对于所述多个盘存储单元上多个条带的多个指示,即所述多个条带每个都可能含有奇偶不一致。
3.如权利要求2所述的方法,其中所述多个盘存储单元布置成独立盘冗余阵列型组织。
4.如权利要求1所述的方法,还包括在完成将所述第二记录写入盘存储单元时,向所述第一组多个写入过程的每个写入过程发送记录写入完成指示。
5.如权利要求4所述的方法,其中所述第一组多个写入过程的第二写入过程响应于其接收到记录写入完成指示,在与所述第二写入过程相关联的目标条带中写入用户数据和奇偶数据,并对于与所述第二写入过程相关联的目标条带发送标记干净指令。
6.如权利要求5所述的方法,还包括从所述第一组多个写入过程的所述第二写入过程接收标记干净指令,并响应于所述标记干净指令,从所述第二记录中移除与所述第二写入过程相关联的目标条带可能含有奇偶不一致的指示。
7.如权利要求6所述的方法,还包括:
响应于所述清洗指令,将所述第二记录写入清洗记录;
从所述第一组多个写入过程的第三写入过程接收第二清洗指令;以及
确定含有与所述第三写入过程相关联的目标条带可能含有奇偶不一致的指示的第二记录是否已被写入盘存储单元。
8.如权利要求6所述的方法,还包括:
在所述清洗指令之后,从第二组多个写入过程接收第二组多个指示,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第二组多个写入过程的所述第二组多个指示,在所述第二记录中存储第二组多个指示,其中所述第二记录的所述第二组多个指示的每个指示指出所述第二组多个写入过程的目标条带可能含有奇偶不一致。
9.如权利要求8所述的方法,还包括从所述第二组多个写入过程的第一写入过程接收第三清洗指令,并响应于所述第三清洗指令,将所述第二记录写入盘存储单元,其中所述清除所述指示包括将所述第二记录写入盘存储单元,在该盘存储单元中,与所述第二写入过程相关的目标条带可能含有奇偶不一致的指示已被移除。
10.如权利要求9所述的方法,其中第一记录用第一生成号存储在第一盘存储单元中,且第二记录用第二生成号存储在不同于第一盘存储单元的内存中。
11.一种用于写入数据的装置,所述装置包括:
将第一记录存储在盘存储单元中的单元,其中所述第一记录包含存储在多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;
在由所述记录指示的所述条带中写入用户数据和奇偶数据的单元;
清除所述指示的单元;
在第一累积期间从第一组多个写入过程接收多个指示的单元,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示的单元,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;
在所述累积期间,推迟将所述第二记录写入盘存储单元的单元;以及
从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期间和将所述第二记录写入盘存储单元的单元。
12.如权利要求11所述的装置,其中所述第一记录含有对于所述多个盘存储单元上的多个条带的多个指示,即所述多个条带每个都可能含有奇偶不一致。
13.如权利要求12所述的装置,其中所述多个盘存储单元布置成独立盘冗余阵列型组织。
14.如权利要求11所述的装置,还包括在完成将所述第二记录写入盘存储单元时,向所述第一组多个写入过程的每个写入过程发送记录写入完成指示的单元。
15.如权利要求14所述的装置,还包括用于使所述第一组多个写入过程的第二写入过程响应于其接收到记录写入完成指示,在与所述第二写入过程相关联的目标条带中写入用户数据和奇偶数据,并对于与所述第二写入过程相关联的目标条带发送标记干净指令的单元。
16.如权利要求15所述的装置,还包括从所述第一组多个写入过程的所述第二写入过程接收标记干净指令,并响应于所述标记干净指令,从所述第二记录中移除与所述第二写入过程相关联的目标条带可能含有奇偶不一致的指示的单元。
17.如权利要求16所述的装置,还包括:
响应于所述清洗指令,将所述第二记录写入清洗记录的单元;
从所述第一组多个写入过程的第三写入过程接收第二清洗指令的单元;以及
确定包含与所述第三写入过程相关联的目标条带可能含有奇偶不一致的指示的第二记录是否已被写入盘存储单元的单元。
18.如权利要求16所述的装置,还包括:
在所述清洗指令之后,从第二组多个写入过程接收第二组多个指示的单元,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第二组多个写入过程的所述第二组多个指示,在所述第二记录中存储第二组多个指示的单元,其中所述第二记录的所述第二组多个指示的每个指示指出所述第二组多个写入过程的目标条带可能含有奇偶不一致。
19.如权利要求18所述的装置,还包括从所述第二组多个写入过程的第一写入过程接收第三清洗指令,并响应于所述第三清洗指令,将所述第二记录写入盘存储单元的单元,其中所述清除所述指示包括将所述第二记录写入盘存储单元,在该盘存储单元中,与所述第二写入过程相关的目标条带可能含有奇偶不一致的指示已被移除。
20.如权利要求19所述的装置,其中第一记录用第一生成号存储在第一盘存储单元中,且第二记录用第二生成号存储在不同于第一盘存储单元的内存中。
21.一种用于写入数据的系统,包括:
至少一个内存,它包含操作系统和应用程序;
连接到所述内存的处理器;
具有多个盘存储单元的数据存储器;
数据存储控制器,用于管理对所述数据存储器的输入/输出I/O存取;
将第一记录存储在盘存储单元中的部件,其中所述第一记录包括存储在所述多个盘存储单元上的用户数据和奇偶数据的条带可能含有奇偶不一致的指示;
在由所述记录指示的所述条带中写入用户数据和奇偶数据的部件;
清除所述指示的部件;
在第一累积期间从第一组多个写入过程接收多个指示的部件,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第一组多个写入过程的所述多个指示,在第二记录中存储多个指示的部件,其中所述第二记录的每个指示指出所述第一组多个写入过程的目标条带可能含有奇偶不一致;
在所述累积期间,推迟将所述第二记录写入盘存储单元的部件;以及
从所述第一组多个写入过程的第一写入过程接收清洗指令,并响应于所述清洗指令,终止所述累积期间和将所述第二记录写入盘存储单元的部件。
22.如权利要求21所述的系统,其中所述第一记录包含对于所述多个盘存储单元上多个条带的多个指示,即所述多个条带每个都可能含有奇偶不一致。
23.如权利要求22所述的系统,其中所述多个盘存储单元布置成独立盘冗余阵列型组织。
24.如权利要求21所述的系统,还包括在完成将所述第二记录写入盘存储单元时,向所述第一组多个写入过程的每个写入过程发送记录写入完成指示的部件。
25.如权利要求24所述的系统,还包括使所述第一组多个写入过程的第二写入过程响应于其接收到记录写入完成指示,在与所述第二写入过程相关联的目标条带中写入用户数据和奇偶数据,并对于与所述第二写入过程相关联的目标条带发送标记干净指令的部件。
26.如权利要求25所述的系统,还包括从所述第一组多个写入过程的第二写入过程接收标记干净指令,并响应于所述标记干净指令,从所述第二记录中移除与所述第二写入过程相关联的目标条带可能含有奇偶不一致的指示的部件。
27.如权利要求26所述的系统,还包括:
响应于所述清洗指令,将所述第二记录写入清洗记录的部件;
从所述第一组多个写入过程的第三写入过程接收第二清洗指令的部件;以及
确定包含与所述第三写入过程相关联的目标条带可能含有奇偶不一致的指示的第二记录是否已被写入盘存储单元的部件。
28.如权利要求26所述的系统,还包括:
在所述清洗指令之后,从第二组多个写入过程接收第二组多个指示的部件,其中来自写入过程的每个指示指出在所述多个盘存储单元上与所述写入过程相关联的目标条带可能含有奇偶不一致;以及
响应于来自所述第二组多个写入过程的所述第二组多个指示,在所述第二记录中存储第二组多个指示的部件,其中所述第二记录的所述第二组多个指示的每个指示指出所述第二组多个写入过程的目标条带可能含有奇偶不一致。
29.如权利要求28所述的系统,还包括:从所述第二组多个写入过程的第一写入过程接收第三清洗指令,并响应于所述第三清洗指令,将所述第二记录写入盘存储单元的部件,其中所述清除所述指示包括将所述第二记录写入盘存储单元,在该盘存储单元中,与所述第二写入过程相关的目标条带可能含有奇偶不一致的指示已被移除。
30.如权利要求29所述的系统,其中第一记录用第一生成号存储在第一盘存储单元中,且第二记录用第二生成号存储在不同于第一盘存储单元的内存中。
CNB2004800390685A 2003-12-29 2004-12-20 用于写入数据的方法、装置和系统 Expired - Fee Related CN100483323C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/747,921 2003-12-29
US10/747,921 US7197599B2 (en) 2003-12-29 2003-12-29 Method, system, and program for managing data updates

Publications (2)

Publication Number Publication Date
CN1898636A CN1898636A (zh) 2007-01-17
CN100483323C true CN100483323C (zh) 2009-04-29

Family

ID=34700806

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800390685A Expired - Fee Related CN100483323C (zh) 2003-12-29 2004-12-20 用于写入数据的方法、装置和系统

Country Status (7)

Country Link
US (1) US7197599B2 (zh)
EP (1) EP1700199B1 (zh)
CN (1) CN100483323C (zh)
AT (1) ATE488798T1 (zh)
DE (1) DE602004030155D1 (zh)
TW (1) TWI292904B (zh)
WO (1) WO2005066759A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
US7441146B2 (en) * 2005-06-10 2008-10-21 Intel Corporation RAID write completion apparatus, systems, and methods
US7562188B2 (en) * 2005-06-17 2009-07-14 Intel Corporation RAID power safe apparatus, systems, and methods
WO2007012921A2 (en) * 2005-07-27 2007-02-01 Adaptec, Inc. Parity update footprints kept on disk
US7930495B2 (en) * 2005-11-04 2011-04-19 Oracle America, Inc. Method and system for dirty time log directed resilvering
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US7925827B2 (en) * 2005-11-04 2011-04-12 Oracle America, Inc. Method and system for dirty time logging
US8074019B2 (en) * 2007-11-13 2011-12-06 Network Appliance, Inc. Preventing data loss in a storage system
US20090300282A1 (en) * 2008-05-30 2009-12-03 Promise Technology, Inc. Redundant array of independent disks write recovery system
CN101604250B (zh) * 2008-06-12 2014-07-16 普安科技股份有限公司 储存虚拟化系统中更新实体储存装置的控制程序的方法
US8090683B2 (en) * 2009-02-23 2012-01-03 Iron Mountain Incorporated Managing workflow communication in a distributed storage system
US8145598B2 (en) * 2009-02-23 2012-03-27 Iron Mountain Incorporated Methods and systems for single instance storage of asset parts
US20100215175A1 (en) * 2009-02-23 2010-08-26 Iron Mountain Incorporated Methods and systems for stripe blind encryption
US8397051B2 (en) 2009-02-23 2013-03-12 Autonomy, Inc. Hybrid hash tables
KR101562794B1 (ko) * 2009-08-04 2015-10-26 삼성전자주식회사 데이터 저장 장치
KR101694984B1 (ko) 2010-12-08 2017-01-11 한국전자통신연구원 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법
US9229809B2 (en) * 2011-09-11 2016-01-05 Microsoft Technology Licensing Llc Nonvolatile media journaling of verified data sets
US8456972B2 (en) 2011-09-12 2013-06-04 Microsoft Corporation Efficient access to storage devices with usage bitmaps
US20170031791A1 (en) * 2015-07-27 2017-02-02 Futurewei Technologies, Inc. Maintaining a parity-inconsistent table to identify stripes affected by a write hole effect
US9959046B2 (en) * 2015-12-30 2018-05-01 Samsung Electronics Co., Ltd. Multi-streaming mechanism to optimize journal based data storage systems on SSD

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
AU653670B2 (en) * 1992-03-10 1994-10-06 Data General Corporation Improvements for high availability disk arrays
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5778426A (en) * 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US6041423A (en) * 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6381674B2 (en) * 1997-09-30 2002-04-30 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US6334168B1 (en) * 1999-02-19 2001-12-25 International Business Machines Corporation Method and system for updating data in a data storage system

Also Published As

Publication number Publication date
WO2005066759A2 (en) 2005-07-21
TWI292904B (en) 2008-01-21
CN1898636A (zh) 2007-01-17
US20050144381A1 (en) 2005-06-30
EP1700199B1 (en) 2010-11-17
WO2005066759A3 (en) 2006-06-22
TW200529195A (en) 2005-09-01
DE602004030155D1 (de) 2010-12-30
US7197599B2 (en) 2007-03-27
ATE488798T1 (de) 2010-12-15
EP1700199A2 (en) 2006-09-13

Similar Documents

Publication Publication Date Title
CN100483323C (zh) 用于写入数据的方法、装置和系统
US9652343B2 (en) Raid hot spare system and method
US7206899B2 (en) Method, system, and program for managing data transfer and construction
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US7571291B2 (en) Information processing system, primary storage device, and computer readable recording medium recorded thereon logical volume restoring program
US8037347B2 (en) Method and system for backing up and restoring online system information
US20050086559A1 (en) Storage system using fast storage devices for storing redundant data
CN101351760A (zh) 用于在高电源效率的大容量可扩展存储系统中存取辅助数据的方法和系统
US7222135B2 (en) Method, system, and program for managing data migration
CN105103234A (zh) 固态驱动器体系结构
GB2400935A (en) Configuring memory in a RAID controller
EP2573689A1 (en) Method and device for implementing redundant array of independent disk protection in file system
JP2000099282A (ja) ファイル管理システム
JP2005276196A (ja) ドライブ故障に続いてドライブリカバリを行うためのシステムおよび方法
US20100115310A1 (en) Disk array apparatus
US6766414B2 (en) Methods, apparatus and system for caching data
US20090083503A1 (en) System of creating logical volume and method thereof
CN101073066B (zh) 生成奇偶数据的方法、系统和程序
US6446160B1 (en) Multi-drive data storage system with analysis and selected demounting of idle data storage media
CN116401063A (zh) 一种raid的资源分配方法、装置、设备及介质
EP1862905A2 (en) Flash memory storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090429

Termination date: 20181220