《数据存储装置的数据管理.pdf》由会员分享,可在线阅读,更多相关《数据存储装置的数据管理.pdf(23页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104156172A43申请公布日20141119CN104156172A21申请号201410022803722申请日2014011761/753,71720130117USG06F3/06200601G11B5/0220060171申请人西部数据技术公司地址美国加利福尼亚州72发明人AH陈JN玛丽娜74专利代理机构北京纪凯知识产权代理有限公司11245代理人赵蓉民54发明名称数据存储装置的数据管理57摘要数据存储装置的数据管理。管理存储在计算机系统的至少一个数据存储装置DSD中的数据,在计算机系统中,至少一个DSD包括用于存储数据的至少一个磁盘。产生包括LTFS块地址的线。
2、性带文件系统LTFS写或者读命令;LTFS块地址被转换成针对至少一个DSD的装置地址,并且至少一个DSD的磁盘上的数据被写入该装置地址处。30优先权数据51INTCL权利要求书3页说明书10页附图9页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书10页附图9页10申请公布号CN104156172ACN104156172A1/3页21一种由计算机系统执行的用于管理存储在所述计算机系统的至少一个数据存储装置即DSD中的数据的方法,其中,所述至少一个DSD包括用于存储数据的至少一个盘,该方法包括以下步骤产生包括LTFS块地址的线性带文件系统即LTFS写或者读命令;将所述LTFS。
3、块地址转换成所述至少一个DSD的装置地址;以及在所述至少一个DSD的磁盘上所述装置地址处写或读数据。2根据权利要求1所述的方法,所述方法还包括当在所述至少一个DSD的磁盘上写数据时检测错误;将所述LTFS块地址重新映射至所述至少一个DSD的新装置地址;以及将数据写入所述至少一个DSD的磁盘上所述新装置地址处。3根据权利要求1所述的方法,所述方法还包括在所述至少一个DSD的磁盘上读或写数据之前确定所述LTFS块地址是否是有效的LTFS块地址。4根据权利要求1所述的方法,其中,所产生的LTFS写命令用于向LTFS格式的数据分区写数据、向所述LTFS格式的所述数据分区写元数据或向所述LTFS格式的索。
4、引分区写元数据。5根据权利要求4所述的方法,所述方法还包括响应于LTFS卸载命令,向所述索引分区写元数据。6根据权利要求4所述的方法,其中,所述至少一个DSD包括多个磁盘驱动器,所述多个盘驱动器的每个包括具有交叠轨道的至少一个磁盘,并且其中所述多个磁盘的所述交叠轨道形成所述数据分区。7根据权利要求4所述的方法,其中,在所述至少一个DSD的多个DSD上写所述索引分区。8根据权利要求4所述的方法,其中,所述至少一个DSD包括专门用于仅存储所述索引分区或者仅存储所述索引分区的一部分的DSD。9根据权利要求4所述的方法,所述方法还包括重定位写入所述数据分区的文件的第一部分,使得所述文件的所述第一部分与。
5、所述至少一个DSD的磁盘上的所述文件的第二部分形成连续范围。10根据权利要求4所述的方法,其中,在所述至少一个DSD的磁盘上的交叠轨道的第一区段中写入针对所述数据分区的数据和/或元数据。11根据权利要求10所述的方法,其中,在所述至少一个DSD的磁盘上的非交叠轨道的第二区域中或者在位于所述至少一个DSD的固态非易失性存储器即NVM中的第二区段中写入针对所述索引分区的元数据。12根据权利要求11所述的方法,其中,所述至少一个DSD包括用于存储表示所述数据分区的状态和/或所述索引分区的状态的元数据的第三区段。13根据权利要求12所述的方法,其中,所述第三区段是在所述至少一个DSD的磁盘上的非交叠轨。
6、道的区段或者位于所述至少一个DSD的固态NVM中的区段。14根据权利要求12所述的方法,所述方法还包括在新写入、小于预定尺寸或者已被频繁存取的所述第三区段中写数据。15一种用于管理数据的计算机系统,所述计算机系统包括权利要求书CN104156172A2/3页3包括用于存储数据的至少一个磁盘的至少一个数据存储装置即DSD;以及处理器,该处理器被构造成产生包括LTFS块地址的线性带文件系统即LTFS写或读命令;将所述LTFS块地址转换成所述至少一个DSD的装置地址;以及命令所述至少一个DSD在所述至少一个DSD的磁盘上所述装置地址处写或读数据。16根据权利要求15所述的计算机系统,其中,所述处理器。
7、还被配置为接收指示在所述至少一个DSD的磁盘上写数据中出现错误的错误通知;将所述LTFS块地址重新映射至所述至少一个DSD的新装置地址;以及命令所述至少一个DSD在所述至少一个DSD的磁盘上所述新装置地址处写或读数据。17根据权利要求15所述的计算机系统,其中,所述处理器还被构造成在命令所述至少一个DSD在所述至少一个DSD的磁盘上读或写数据之前确定所述LTFS块地址是否是有效的LTFS块地址。18根据权利要求15所述的计算机系统,其中,所产生的LTFS写命令用于向LTFS格式的数据分区写数据、向LTFS格式的所述数据分区写元数据或向LTFS格式的索引分区写元数据。19根据权利要求18所述的计。
8、算机系统,其中,所述处理器还被构造成命令所述至少一个DSD响应于LTFS卸载命令向所述索引分区写元数据。20根据权利要求18所述的计算机系统,其中,所述至少一个DSD包括多个磁盘驱动器,所述多个磁盘驱动器的每个包括具有交叠轨道的至少一个磁盘,并且其中所述多个磁盘的所述交叠轨道形成所述数据分区。21根据权利要求18所述的计算机系统,其中,在所述至少一个DSD的多个DSD上写所述索引分区。22根据权利要求18所述的计算机系统,其中,所述至少一个DSD包括专门用于仅存储所述索引分区或者仅存储所述索引分区的一部分的DSD。23根据权利要求18所述的计算机系统,其中,所述处理器还被构造成命令所述至少一个。
9、DSD重定位写入所述数据分区的文件的第一部分,使得所述文件的所述第一部分与所述至少一个DSD的磁盘上的所述文件的第二部分形成连续范围。24根据权利要求18所述的计算机系统,其中,在所述至少一个DSD的磁盘上的交叠轨道的第一区段中写入所述数据分区的数据和/或元数据。25根据权利要求24所述的计算机系统,其中,在所述至少一个DSD的磁盘上的非交叠轨道的第二区段中或在位于所述至少一个DSD的固态非易失性存储器即NVM中的第二区段写入针对所述索引分区的元数据。26根据权利要求25所述的计算机系统,其中,所述至少一个DSD包括用于存储表示所述数据分区的状态和/或所述索引分区的状态的元数据的第三区段。27。
10、根据权利要求26所述的计算机系统,其中,所述第三区段是在所述至少一个DSD的磁盘上的非交叠轨道的区段或位于所述至少一个DSD的固态NVM中的区段。28根据权利要求26所述的计算机系统,其中,所述处理器还被构造成命令所述至少一个DSD在新写入的、小于预定尺寸或已经频繁存取的所述第三区段中写数据。29一种计算机可读介质,其存储用于操作用于存储数据的包括至少一个磁盘的至少权利要求书CN104156172A3/3页4一个数据存储装置即DSD的计算机可执行指令,其中所述计算机可执行指令由处理器执行,所述处理器产生包括LTFS块地址的线性带文件系统即LTFS写或读命令;将所述LTFS块地址转换成针对所述至。
11、少一个DSD的装置地址;以及命令所述至少一个DSD在所述至少一个DSD的磁盘上所述装置地址处写或读数据。权利要求书CN104156172A1/10页5数据存储装置的数据管理背景技术0001带驱动器是在磁带上读取和写入数据的一种数据存储装置类型,并且通常用于档案存储。直到目前为止,带驱动器一般缺少用于存取数据的标准化格式。目前,为了对存储在磁带上的数据提供标准化文件系统接口,已经引入了线性带文件系统(LTFS)格式。LTFS指代在磁带上记录的数据的格式和使用LTFS格式提供文件系统接口的具体软件的实现。使用LTFS格式写入的磁带可以在使用LTFS格式的带驱动器之间交换。另外,理解LTFS格式的软。
12、件系统可以向用户提供带驱动器的文件系统视图。0002尽管LTFS具有先进性,但与其它类型的数据存储装置(例如,磁盘驱动器)相比,带驱动器要求相对长时间来存取数据。这主要是因为带驱动器必须在卷轴之间卷绕磁带以读取磁带上特定位置处的数据。另外,磁带的管理会是耗时的,例如在装载和卸载磁带时。附图说明0003根据以下结合附图记载的详细描述,本公开的特征和优点将变得更明显。提供附图和关联的描述以例示本公开的实施方式,并且并非要限制要求保护的范围。在整个附图中参考标记重复使用以指示引用的元件之间的对应性。0004图1是示出根据一实施方式包括数据存储装置的计算机系统的框图。0005图2是示出图1的数据存储装。
13、置的框图。0006图3例示根据一实施方式被磁头写入的磁盘的一部分。0007图4示出根据一实施方式容纳LTFS格式的区段的排列。0008图5示出根据一实施方式的示例LTFS分区格式。0009图6示出根据一实施方式的包括转换模块的示例实现环境。0010图7示出根据一实施方式的包括转换模块的另一个示例实现环境。0011图8例示根据一实施方式的索引分区和数据分区在多数据存储装置之间的分配。0012图9是根据一实施方式的数据分区写过程的流程图。0013图10是根据一实施方式的索引分区写过程的流程图。0014图11是根据一实施方式的读过程的流程图。具体实施方式0015在以下详细描述中,记载了多个具体示例以。
14、提供对本公开的全面理解。然而,对本领域技术人员来说,显而易见的是没有这些具体细节中的一些细节也可以实践所公开的各种实施方式。在其它实例中,没有详细示出已知结构和技术以避免不必要地模糊各实施方式。0016系统环境0017图1示出计算机系统100,其包括主机101、输入装置102、显示装置103和数据存储装置(DSD)106。计算机系统100可以是例如云存储装置、个人计算机系统或者其它电子装置。在这一方面,计算机系统100可以是单机系统或者网络的一部分。输入装置102可说明书CN104156172A2/10页6以是键盘、滚轮或者指向装置,其允许计算机系统100的用户向计算机系统100输入信息和命令。
15、或者允许用户操纵显示在显示装置103上的对象。在其它实施方式中,输入装置102和显示装置103可以组合到单个部件中,例如显示对象并接收用户输入的触摸屏。0018在图1的实施方式中,主机101包括中央处理单元(CPU)108,其可以利用执行指令的一个或者更多个处理器实现,包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连接逻辑、模拟电路和/或其组合。CPU108与主机总线112接口。还与主机总线112接口的是随机存取存储器(RAM)110、用于输入装置102的输入接口114、用于显示装置103的显示接口116、只读存储器(ROM)118、网络接口。
16、120和DSD106。0019RAM110与主机总线112接口以在软件程序(例如操作系统34、应用程序24、设备驱动器26、转换模块22和线性带文件系统(LTFS)20)中的指令的执行期间向CPU108提供存储在RAM110中的信息。更具体地,CPU108首先将DSD106或者另一个数据存储装置中的计算机可执行指令加载到RAM110的区域中。然后,CPU108可以执行来自RAM110的所存储的过程指令。数据例如将要存储在DSD106中的数据或自DSD106检索的数据可以存储在RAM110中,使得在软件程序的执行期间(从这种软件程序有必要存取和/或修改数据的意义上)该数据可以被CPU108存取。。
17、0020如图1所示,DSD106包括应用程序24,其可以是例如数据存档程序或者多媒体程序。DSD106还包括装置驱动器26,用作对例如输入装置102、显示装置103和/或DSD106的装置的软件接口。另外,DSD106可以存储操作系统34,其包括内核36、文件系统(FS)拦截器40和存储栈42。0021如以下参照图2讨论的,在一个实施方式中,DSD106是混合驱动器,包括磁盘(即,图2中的盘200)和固态非易失性存储器(NVM)(即,图2中的NVM128)。尽管DSD106不包括磁带作为存储介质,但是DSD106被构造为通过LTFS20、转换模块22和FS拦截器40使用线性带文件系统(LTFS。
18、)格式。如参照图9到图11更详细讨论的,转换/翻译模块22将LTFS读和写命令中使用的地址转换成装置地址以根据LTFS读和写命令允许向DSD106写数据或者从DSD106读数据。0022作为LTFS格式的一部分,并且如以下参照图5讨论的,LTFS格式包括数据分区和索引分区。在图1的示例中,DSD106包括用于存储符合LTFS格式的数据和元数据的索引分区14和数据分区16。另外,DSD106包括状态元数据18,其表示与转换模块22一起使用的索引分区14和数据分区16的状态。DSD106还包括带属性状态17,其用于表示与LTFS20一起使用的索引分区14和数据分区16的状态。例如,带属性状态17可。
19、以包括计数器,其指示符合LTFS格式的当前卷。0023本领域技术人员将理解所公开的用于管理数据的过程可以在其它环境中实现。在一些实施方式中,DSD106可以包括相比图1所示的元件更多或更少的元件。例如,一些实施方式可以不包括单独的转换模块22,因为该模块可以实现为装置驱动器26的一部分。0024数据存储装置概括0025图2图示根据一个示例实施方式的DSD106的框图。如图2所示,DSD106包括控制器122,其可以执行本文所述的DSD106的各种操作。控制器122可以利用一个或者更多个处理器执行指令来实现,并且可以包括微控制器、数字信号处理器(DSP)、专用集成电说明书CN104156172A。
20、3/10页7路(ASIC)、现场可编程门阵列(FPGA)、硬连接逻辑、模拟电路和/或其组合。0026在图2的示例中,DSD106包括旋转磁盘200和连接到致动臂130的远端的磁头129,致动臂130通过音圈马达(VCM)132绕着枢轴旋转以在磁盘200上方定位磁头129。磁头129至少包括用于从磁盘200读数据的读元件(即,图3中的读元件140)和用于在磁盘200上写数据的写元件(即,图3中的写元件142)。磁盘200包括,用于存储数据和/或元数据(例如,索引分区14、数据分区16、带属性状态17和/或状态元数据18)的多个径向间隔的同心轨道210。轨道210可以被共同分组为轨道的区段(例如,。
21、图3中的区段224、226和228),每个轨道210被分割为沿轨道210圆周间隔的多个扇区(即,图3中的扇区222)。0027DSD106还包括主机接口126和易失性存储器124(其可以包括例如DRAM)。存储在易失性存储器124中的数据可以包括从磁盘200读取的数据、要写入磁盘200的数据和/或用于控制DSD106的指令。主机接口126被构造为将DSD106与主机101接口并且可以根据串行高级技术附件(SATA)标准或其他标准(如串行连接的SCSI(SAS)来接口。如本领域技术人员理解的,可以将主机接口126作为控制器122的一部分包括在DSD106内。0028另外,DSD106包括固态非易。
22、失性存储器(NVM)128,用于存储数据和/或元数据(例如索引分区14、数据分区16、带属性状态17和/或状态元数据18)。尽管本文中的描述一般涉及NVM,但是应理解NVM可以包括多种类型的固态非易失性存储装置(例如闪存集成电路、相变化RAMCRAM、相变存储器(PCRAM或者PRAM)、可编程金属化单元RAM(PMCRAM或PMCM)、双向通用存储器(OUM)、电阻RAM(RRAM)、NAND存储器(例如,单电平单元(SLC)存储器、多电平单元(MLC)存储器或其任意组合)、NOR存储器、EEPROM存储器、铁电体存储器(FERAM)、磁电阻RAM(MRAM)、其它分立NVM(非易失性存储器。
23、)芯片或其任意组合中的一个或者更多个。0029在操作中,响应于经由主机接口126接收的来自主机101的命令,控制器122写数据到磁盘200并从磁盘200读数据。当控制器122从主机101接收写命令和要写到磁盘200的数据时,控制器122将接收的数据临时保持在非易失性存储器124中。为了写数据到磁盘200,控制器122通过向VCM132发送VCM控制信号30来将磁头129定位在磁盘200上方。控制器122基于从磁盘200读取的定位信息来定位磁头129,并将要写到磁盘200的数据处理成向磁头129输出的写信号32。对于其部分,磁头129的写元件(即,图3中的写元件142)将写信号32转换为基于写信。
24、号32而使盘200的表面磁化的磁场,从而通过磁性将数据写在盘200上。在针对该写命令的数据被成功写在磁盘200上之后,控制器122可以经由主机接口126通知主机101。0030当控制器122从主机101接收请求写在磁盘200上的数据的读命令时,控制器122通过向VCM132发送VCM控制信号30将磁头129定位在磁盘200上方。磁头129的读元件(即,图3中的读元件140)基于磁头129下方的磁盘表面的磁化而产生读信号32,并且控制器122将读信号32处理成数据。0031SMR磁盘示例0032图3例示一种示例构造,其中示出磁盘200的一部分包括轨道210的三个区段。如图3的示例所示出的,区段2。
25、24和226是被磁头129的写元件142写入的非交叠轨道的区段,并且区段228也是被磁头129的写元件142写入的交叠轨道210的区段。非交叠轨道的区段,例如区段224和226,在此称为传统磁记录(CMR)区段。交叠轨道的区段,例如区段说明书CN104156172A4/10页8228,在此称为叠瓦式磁记录(SMR)区段。0033如图3所示,每个轨道210包括多个扇区222,用于存储固定量的数据,例如2048个字节、1024个字节或者4096个字节。磁头129包括读元件140,其基于扇区222的磁化产生读信号32。磁头129还包括写元件142,其将写信号32转换为磁场,该磁场通过磁性将数据写在扇。
26、区222中。在图3的示例中,写元件142基本上比读元件140宽,以便于在SMR区段228中的叠瓦式磁记录。特别地,在SMR区段228中的轨道210的非交叠部分形成可以由读元件140读取的相对窄的轨道。因此,SMR区段228具有比CMR区段224和226高的每英寸轨道数(TPI)。在替代的实施方式中,写元件与读元件的宽度的比可以不同。例如,写元件可以是读元件宽度的四或五倍。0034如图3所示,CMR区段224与CMR区段226被间隔轨道230分开,并且SMR区段228与CMR区段226被间隔轨道232分开。间隔轨道230和232是空轨道或没有数据的轨道,其用作区段之间的缓冲。在SMR区段228的。
27、情况下,间隔轨道232允许数据写入SMR区段228中而不覆写相邻SMR区段228中的轨道中的数据。0035在这一点上,由于SMR区段的交叠轨道,SMR区段一般被顺序写入。不顺序写入SMR区段,对先前交叠的轨道的新写入将也影响在交叠轨道中写入的数据。0036如以下参照图5更详细描述的,磁盘200呈不同区段的排列可以容纳LTFS格式的索引分区14和数据分区16。0037分区排列示例0038图4图示图3的区段用于容纳LTFS格式的示例排列。如图4所示,CMR区段224存储带属性状态17和状态元数据18,CMR区段226存储索引分区14,并且SMR区段228存储数据分区16。0039在图4的示例中,S。
28、MR区段228的较大的数据容量允许在数据分区16中存储较大量的数据和元数据。然而,由于SMR区段中的交叠轨道,在不影响相邻数据的情况下,在SMR区段中写入的数据通常不易于修改。因而,在用于数据分区16的SMR区段228中记录的数据和元数据被顺序写入,并且通常在写入之后不被修改。0040索引分区14被写入CMR区段226中,以允许更容易地修改存储在索引区段14中的元数据。鉴于这一点,在索引分区14中写入的元数据可以容易被重写以指示例如数据分区16中数据的删除。在其它实施方式中,索引分区14可以存储在NVM128的区段中而不是CMR区段中。0041和索引分区14一样,状态元数据18和带属性状态17。
29、通常小于数据分区16并且包括可以被频繁存取或修改的元数据。因此,在图4的示例中,状态元数据18和带属性状态17存储在CMR区域224中。在其它实施方式中,状态元数据18和/或带属性状态17可以存储在NVM128的区段中而不是CMR区段中。0042尽管带属性状态17可以是LTFS格式的一部分,但是状态元数据18不是LTFS格式的一部分。在图4的示例中,在将LTFS块地址转换成DSD106的装置地址中,状态元数据18被转换模块22使用。更具体地,状态元数据18包括表示数据分区的状态和/或索引分区的状态的元数据。这种元数据可以包括LTFS块地址,LTFS块地址指示针对数据分区16和索引分区14的每个。
30、的有效或废弃数据的逻辑位置。0043在图4的示例中,CMR区段224还存储用户文件30,其是存储在数据分区16中的说明书CN104156172A5/10页9用户文件的副本。如上所述,CMR区段224总体上比SMR区段228提供更容易的数据修改。另外,由于较小的尺寸,CMR区段224提供更快的数据存取。因此,CMR区段224可以用于提供更快的存取、更好的存储利用和/或存储在数据分区16中的特定数据的冗余。例如,CMR区段224可以包括最近写入的数据以允许在不期望的停电之后更快地恢复。在另一个示例中,小于预定尺寸的文件可以存储在CMR区段224中而不是存储在SMR区段228中,以就文件碎片而言提供。
31、对SMR区段228更好的利用。在另一示例中,CMR区段228可以存储频繁存取的数据以允许较快地存取这种数据。0044图5描绘索引分区14和数据分区16的示例LTFS分区格式。在使用LTFS的典型的带驱动器中,磁带包括主要用于存储数据文件的数据分区和主要用于存储与数据文件相关联的元数据的索引分区。存储在索引分区中的元数据通常是描述存储在磁带上的目录和文件结构的新近的元数据。在图5的实施方式中,LTFS元数据包括VOL1标签46、LTFS标签48、索引52、索引60、索引58和LTFS标签56。该数据包括用户文件32、30和28。0045如图5所示,索引分区14和数据分区16中的每个以记录在索引分。
32、区14和数据分区16的第一逻辑块位置的标签构造开始。对于索引分区14,该标签构造包括被文件标记50分开并以另一个文件标记50结束的VOL1标签46和LTFS标签48。对于数据分区16,该标签构造包括被文件标记50分开并且以另一个文件标记50结束的VOL1标签46和LTFS标签56。除LTFS标签48和56中指定的位置信息之外,这两种标签构造包括相同信息,上述位置信息提供针对它们相应的索引分区14或者数据分区16的特定部分的LTFS块地址。VOL1标签46、LTFS标签48和LTFS标签56中的每个都可以是XML文档。0046VOL1标签46标识分区的卷号并且可以指示存取权限限于LTFS标准并且。
33、可以包括所有者标识信息。LTFS标签48和56可以包括关于以下内容的信息卷的创建方、卷被格式化的时间、卷的标识、属于该卷的数据分区和索引分区的LTFS块地址、当向LTFS卷写数据时使用的块大小和/或当写数据时用于压缩的值。0047如图5所示,索引分区14包括索引52,而数据分区16包括索引52、58和60。每个索引用文件标记50支持并且描述所有数据文件、目录信息和存储在卷中的文件的关联的元数据。另外,每个索引可以包括LTFS块地址,其用作指向另一个索引的后向指针。如图5所示,索引分区14中的索引52包括指向数据分区16中的索引52的后向指针,索引52依次包括指向索引60的后向指针,索引60包括。
34、指向索引58的后向指针。关于这一点,LTFS格式要求数据分区中的索引和索引分区中的最后索引形成后向指针的完整链。这些后向指针可以用于向后查阅卷的较早状态。0048如图5所示,索引分区14还包括记录在索引分区14中的用户文件32,作为数据分区16中新写入的用户文件32的备份副本。在此示例中,为了实现冗余,索引分区14可以存储来自数据分区16的最新写入的用户文件。如本领域技术人员理解的,在索引分区14中记录用户文件是可选的。0049数据分区16包括用户文件28、30和32。如图5所示,用户文件可以插在索引之间,如用户文件28在索引58和60之间。用户文件也可以跟有分开用户文件的文件标记,如用户文件。
35、30和32被文件标记50分开的情形。0050实现环境0051图6和图7图示利用非带驱动的数据存储装置的使用LTFS命令的两种不同实现说明书CN104156172A6/10页10环境。如图6所示,应用程序24、LTFS20和转换模块22在用户空间中实现,FS拦截器40和存储栈42在内核空间中实现,其为操作系统34的一部分。实际上,转换模块22可以是不要求对LTFS20修改的插入式驱动器。0052如图6中的箭头指示的,读和写数据命令由FS拦截器40拦截,并且传递到LTFS20用于产生LTFS读或写命令。FS拦截器40可以包括虚拟文件系统,其拦截来自应用24的数据存取请求。由LTFS20产生的LTF。
36、S读或者写命令包括LTFS块地址,其指示元数据或与LTFS读或写命令关联的数据在数据分区16或索引分区14中的逻辑位置。0053LTFS读或者写命令被转换模块22接受,其将LTFS块地址转换成特定数据存储装置(例如DSD106)的装置地址。装置地址可以标识在数据存储装置的区段中的位置。在DSD106的示例中,装置地址可以包括与磁盘200上的区段中的具体扇区222对应的逻辑块地址。在其它示例中,装置地址可以包括与DSD106的NVM128中的具体块和页相对应的逻辑块地址。如本领域技术人员将理解的,在不背离本公开的范围的情况下,其它类型的装置地址是可能的。0054利用针对数据储存装置的相应读或写命。
37、令,转换模块22将转换的装置地址传递到存储栈42中。存储栈42可以包括用于将多个数据存储装置(例如图6所示的DSD104、105、106、107和109)组网的模块。在这一点上,DSD104、105、106、107和109可以包括使用CMR介质、SMR介质和/或固态介质的不同类型的数据存储装置。0055除了处理LTFS读和写命令,转换模块22还可以执行文件管理任务,例如存储在数据分区16中的文件的碎片整理。在这一点上,转换模块22可以周期性地搜索数据分区16中由于不同时间对文件进行的修改而已经散布在数据分区16中的文件。作为碎片整理的一部分,转换模块22可以重新分配碎片文件的一部分或者多个部分。
38、使得文件在DSD的磁盘上形成连续范围。0056图7图示一示例实现环境,其与图6的不同之处在于转换模块22在作为操作系统34的一部分的内核空间中实现。与如图6中在用户空间内实现转换模块22相比,在内核空间中实现转换模块22通常允许更快的处理。然而,在用户空间中实现转换模块22可以有利地将转换模块22与操作系统34隔离,以防止在转换模块的执行期间可能出现的问题影响到操作系统34。0057图8图示根据一实施方式的索引分区14和数据分区16在DSD104、105、106、107和109之间的分配。除了提供附加存储容量,在多个DSD上写数据分区16和/或索引分区14通常可以通过允许在不同DSD处同时读和。
39、/或写来提高性能。例如,数据分区16中的大文件的部分,例如用户文件28,可以散布在DSD106、107和109之间以允许更快地读取文件。0058如图8所示,数据分区16写在DSD106、107和109上,并且索引分区14写在DSD104和105上。在图8的实施方式中,DSD106、107和109中的每个包括具有交叠轨道的磁盘,例如磁盘200,以容纳存储在数据分区16中的大量数据。另外,DSD104和105每个都可以专用于存储索引14的部分以容纳大的索引分区14。在另一实施方式中,DSD104和105均包括索引分区14的完整副本。这种冗余可以减少必须从数据分区16来重新构建索引分区14的可能性,。
40、重新构建是耗时的任务。0059示例写过程0060图9是描绘数据分区16的示例写过程的流程图。如图9所示,虚线上方的块由说明书CN104156172A107/10页11LTFS20进行,而虚线下方的块由转换模块22进行。0061图9的过程开始于块300,其中LTFS20从FS拦截器40接受写命令。在被FS拦截器40拦截之前,写命令可来源于应用程序,例如应用程序24。0062在块302,LTFS20根据所接受的写命令产生在数据分区16中写入数据的LTFS写命令。所产生的写命令包括数据和指示在数据分区16中写入数据的逻辑位置的LTFS块地址。该数据可以是例如用户文件,例如图5中的用户文件32。006。
41、3在块303,转换模块22确定写命令中的LTFS块地址是否是有效的LTFS块地址。具体地,转换模块22可以检查状态元数据18以查看LTFS块地址是否对应于顺序地跟随数据分区16的最新写入的LTFS块地址的数据分区16的区域。可以执行块303以帮助确保数据分区16的顺序写入。如果转换模块22在块303确定LFTS块地址无效,则转换模块22在块305向LTFS20返回错误并且数据分区写过程在块329结束。0064如果在块303确定LTFS块地址有效,则转换模块22在块304中将该LTFS块地址转换成至少一个DSD的第一区段中的数据分区16的装置地址。这种第一区段的一个示例可以是DSD106的SMR。
42、区段228。0065在块306,转换模块22命令一个或多个适当的数据存储装置在装置地址处写入写命令的数据。这可以包括例如存储栈42将写命令和装置地址传递到DSD106,在DSD106处,写命令和装置地址被主机接口126接收以被控制器122处理。基于装置地址,控制器122可以在NVM128中或者在磁盘200上写数据。在图4的示例实施方式中,控制器122在存储数据分区16的SMR区段228中写数据。转换模块22还可以执行数据的加密和/或压缩,作为块306的一部分。0066在块308,转换模块22检查在块306中写数据时是否从DSD指示了任何写错误。这种写错误可以包括写失败的装置地址。如果在块308。
43、接收了写错误,则转换模块22在块310中重新映射LTFS块地址到第一区段中的数据分区16的新装置地址。该过程接着返回到块306以命令一个或更多个适当的数据存储装置写入写命令的数据。0067如果在块308中没有接收到写错误,则转换模块22在块314中向LTFS20返回指示对数据分区16的数据写命令已经完成的状态指示符。0068图9的过程接着继续到块316,其中在块316中LTFS20产生LTFS命令以写入针对该数据分区的元数据。该元数据可以是例如图5中的索引52,其用于描述先前在块306中写入的数据。如同在块302中产的LTFS写命令,在块316中产生的LTFS写命令包括用于在数据分区16中写元。
44、数据的LTFS块地址。0069在块317,转换模块22确定写命令中的LTFS块地址是否是有效的LTFS块地址。更具体地,转换模块22可以检查状态元数据18以查看LTFS块地址是否对应于顺序地跟随数据分区16的最新写入的LTFS块地址的数据分区16的区域。执行块317可以帮助确保数据分区16的顺序写入。如果转换模块22在块317中确定LFTS块地址无效,则转换模块22在块319中向LTFS20返回错误,并且数据分区写过程在块329结束。0070如果在块317中确定LTFS块地址有效,则在块318中转换模块22将在块316中产生的LTFS写命令的LTFS块地址转换成至少一个DSD的第一区段中的数据。
45、分区16的装置地址。在块320,转换模块22命令适当的一个或多个数据存储装置将写命令的元数据写入该装置地址。这可以包括,例如,存储栈42将写命令和装置地址传递到DSD106,在DSD说明书CN104156172A118/10页12106中写命令和装置地址被主机接口126接收供控制器122处理。基于该装置地址,控制器122可以将元数据写入NVM128中或磁盘200上。在图4的示例中,控制器122将元数据写入存储数据分区16的SMR区段228。0071在块322,转换模块22检查在块320中写元数据时是否从至少一个DSD指示了任何写错误。如果是,则在块324中,转换模块22将LTFS块地址重新映射。
46、到第一区段中的数据分区16的新装置地址。该过程返回到块320以命令适当的一个或多个数据存储装置写入写命令的元数据。0072如果在块322没有接收到写错误,则在块326中转换模块22更新至少一个DSD中的第三区段中的状态元数据18和/或带属性状态17,以反映在块306中写入的数据和在块320中写入的元数据。这可以涉及更新状态元数据18中的目录(包括数据分区16的LTFS块地址)或改变带属性状态17中的卷号。如以上参照图4讨论的,带属性状态17和状态元数据18可以存储在非交叠轨道的区段中,例如CMR区段224中,以方便对存储在带属性状态17和状态元数据18中的元数据的频繁修改。在其它实施方式中,第。
47、三区段可以是例如NVM128的固态存储器的一部分。0073在块328,转换模块22向LTFS20返回指示针对数据分区16的元数据写命令已经完成的状态指示符。之后,图9的数据分区写过程在块329结束。0074图10是描绘索引分区14的示例写过程的流程图。如同图9,虚线上方的块由LTFS20执行,而虚线下方的块由转换模块22执行。0075图10的过程开始于块330,其中LTFS20产生LTFS卸载命令,其可以例如响应于特定时间的经过、对同步LTFS文件系统的调用或者关闭LTFS20的命令而产生。在块332,LTFS20产生将元数据写到索引分区14的LTFS写命令。这种写命令可以是写入元数据的命令,。
48、元数据例如图5中的索引分区14的索引52。如同图9的写命令,块332的写命令包括LTFS块地址,其指示用于写入元数据的索引分区14中的逻辑位置。0076在块333,转换模块22确定写命令中的LTFS块地址是否是有效的LTFS块地址。具体地,转换模块22可以检查状态元数据18以查看LTFS块地址是否对应于顺序地跟随索引分区14的最新写入的LTFS块地址的索引分区14的区域。如果在块333中确定LTFS块地址无效,则在块335中,转换模块22向LTFS20返回错误。然后,在块346中,索引分区写过程结束。0077如果在块333中确定LTFS块地址有效,则在块334中转换模块22将写命令的LTFS块。
49、地址转换成至少一个DSD的第二区段中的装置地址。这种第二区段的示例可以包括DSD106的CMR区段226。在其它实施方式中,第二区段可以是例如NVM128的固态存储器的一部分。0078在块336,转换模块22命令适当的一个或多个数据存储装置在转换的装置地址处写入写命令的元数据。这可以包括例如存储栈42将写命令和装置地址传递到DSD106,在DSD106处写命令和装置地址被主机接口126接收供控制器122处理。基于装置地址,控制器122可以在NVM128中或者在磁盘200上写入元数据。在图4的示例中,控制器122向存储索引分区14的CMR区段226写入元数据。0079在块338,转换模块22检查在块336中写入元数据时是否从至少一个DSD指示了任何写错误。如果是,则在块340中转换模块22将LTFS块地址重新映射至第二区段中的说明书CN104156172A129/10页13索引分区14的新装置地址。该过程返回到块336以命令适当的一个或多个数据存储装置将LFTS写命令的元数据写入索引分区14。0080如果在块338中没有接收到写错误,则在块342中转换模块22更新至少一个DSD的第三区段中的状态元数据18和/或带属性状态17,以反映块336中写入的元数据。这可以涉及更新状态元数据18中的目录(包括索引分区14的LTFS块地址)或更新带属性状态17中的卷号。如以上参照图4讨论的,带属。