用于数据存储系统的垃圾收集和数据重定位的制作方法

文档序号:10573921阅读:418来源:国知局
用于数据存储系统的垃圾收集和数据重定位的制作方法
【专利摘要】在包括至少一个数据存储设备(DSD)和主机的数据存储系统中管理数据。基于由主机定义的至少一个属性,确定将存储于至少一个DSD中的数据的初始位置。基于由所述主机定义的至少一个属性,从至少一个DSD中的多个来源部分识别用于垃圾收集操作的来源部分。基于由所述主机定义的至少一个属性,识别至少一个DSD中的用于存储由垃圾收集操作获得的数据的目的地部分。执行将在所述来源部分中的数据向所述目的地部分的垃圾收集;并且在完成垃圾收集之后,将来源部分指定为用于新的垃圾收集操作的新的目的地部分。
【专利说明】
用于数据存储系统的垃圾收集和数据重定位
【背景技术】
[0001]数据存储设备(DSD)通常与数据存储系统中的主机一起使用来在记录介质上记录数据或从记录介质复制数据。作为一种DSD,磁盘驱动器可以包括旋转磁盘和在磁盘上开动的磁头以磁性地将数据写入到磁盘或从磁盘读取数据。这种磁盘包括用于记录数据的多个径向间隔的同心轨道。
[0002]已经引入了叠瓦式磁记录(SMR)作为通过增加每英寸轨道(TPI)数量而增加可以存储于磁盘上的给定区域中的数据量的方式。SMR通过使用相对宽的叠瓦式写入磁头来如屋顶叠瓦那样重叠轨道而增加了 TPI。非重叠的部分然后用作可以由较窄读取磁头读取的窄轨道。
[0003]虽然对于SMR较大数量的TPI通常是可能的,但是当写输入时轨道的重叠可能会引起问题,这是因为对先前重叠的轨道的新写入会影响在重叠轨道中写入的数据。为此,对轨道进行顺序写入以避免影响先前写入的数据。
[0004]针对SMR介质管理顺序写入的数据通常包括DSD使用间接系统来在不同的寻址方案之间进行转换以确保数据被顺序写入。当针对特定的逻辑块地址(LBS)修改数据时,间接系统允许DSD将修改后的数据顺序写入到新的位置,并将数据的LBS重新映射到新的位置。在先前位置的老版本数据将变成过时的或无效的数据。
[0005]为了释放磁盘上的空间,可以执行垃圾收集(GC)过程以使得磁盘中存储无效或过时数据的部分可用于存储有效数据。这可以在GC过程期间通过对来自磁盘上特定区域的有效数据重定位并使得无效数据被覆写而完成。使用间接的其它类型的存储介质(例如固态存储器)也可以使用GC来释放存储器中存储无效数据的部分。
【附图说明】
[0006]根据以下结合附图阐述的详细描述,本公开的实施例的特征和优点将变得更清晰。提供附图和相关联的描述以说明本公开的实施例,且不限制所要求保护的范围。
[0007]图1是根据实施例描绘数据存储系统的框图。
[0008]图2是根据实施例的包括图1的数据存储设备(DSD)的框图。
[0009]图3A是根据实施例的用于垃圾收集(GC)过程的流程图。
[0010]图3B是根据实施例的在数据重定位期间用于数据一致性过程的流程图。
[0011]图4是根据实施例的实现环境。
[0012]图5是根据实施例的另一实现环境。
[0013]图6A是根据实施例的用于GC过程的流程图。
[0014]图6B是根据实施例的在数据重定位期间用于数据一致性过程的流程图。
[0015]图7是根据实施例示出将各区分配给不同逻辑卷以及将区分配作为目的地部分的概念图。
[0016]图8是根据实施例示出将多个区分配给逻辑卷以及将区分配作为目的地部分的概念图。
【具体实施方式】
[0017]在后续详细描述中,阐述了多个具体细节以提供对本公开的全面理解。然而,可以理解的是,对于本领域普通技术人员而言,可以在不具有一些这种具体细节的情况下实践所公开的各个实施例。在其它实例中,未详细示出公知的结构和技术,以避免不必要地模糊各个实施例。
[0018]系统概述
[0019]图1示出了根据实施例的数据存储系统100,其包括主机101和数据存储设备(DSD)107、108和109。系统100例如可以包括计算机系统(例如,服务器、台式计算机、云存储设备、数据归档系统等)或其它电子设备(例如,数字录像机)。就此,系统100可以是独立系统或网络(例如,网络122)的一部分。本领域的普通技术人员将理解系统100和DSD 106可以包括比图1所示的那些部件更多或更少的部件,并且可以在其它环境中实现所公开的过程。
[0020]在图1的示例性实施例中,DSD 106、107、108和109可以位于同一位置或可以分离在不同位置。如图1所示,DSD 106是主机101的一部分,并存储用于在主机101上执行的应用,而DSD 107、108和109主要存储主机101的用户数据。
[0021]输入设备102可以是键盘、滚动轮或定位设备,其允许系统100的用户向系统100输入信息和命令,或者允许用户操纵在显示器设备104上显示的对象。在其它实施例中,输入设备102和显示器设备104可以组合成单个部件,例如显示对象并接收用户输入的触摸屏。
[0022]在图1的实施例中,主机101包括中央处理单元(CPU)llO,可以使用用于执行指令的一个或多个处理器实现所述CPU 110,所述一个或多个处理器包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。如下文所提及的主机101的处理器可以是上述处理器中的一个或多个、或者是被配置为执行本文描述的功能的其它处理器。CPU 110与主机总线113以接口连接。与主机总线113以接口连接的还有随机存取存储器(RAM)112、用于输入设备102的输入接口 114、用于显示设备104的显示接口 116、只读存储器(ROM) 118、以及用于与网络122以接口连接的网络接P120o
[0023]RAM 112是主机101的易失性存储器,其与主机总线113以接口连接以在执行软件程序(例如,设备驱动器14或操作系统(OS) 20)中的指令期间向CPU 110提供存储于RAM 112中的信息。更具体地,CPU 110首先将来自DSD 106的计算机可执行指令加载到RAM 112的区域中。CPU 110然后可以执行来自RAM 112的所存储的过程指令。数据(诸如将存储于DSD106、107、108或109中的数据,或从DSD 106、107、108和109取回的数据)也可以存储于RAM112中,使得在执行软件程序期间如果这种软件程序需要访问和/或修改该数据的话,可以通过CPU 110访问该数据。
[0024]如图1所示,DSD106可以配置为存储以下各项中的一个或多个:垃圾收集(GC)管理器10、应用12、设备驱动器14、文件系统16、转换模块18、0S 20和映射表28AC管理器10包括用于DSD 106、107、108和109的计算机可执行指令,用于执行如下文更详细讨论的垃圾收集过程。
[0025]在其它实施例中,GC管理器10、应用12、设备驱动器14、文件系统16、转换模块18、OS 20或映射表28中的任一个或多个可以驻留在DSD 106、107、108或109中。在一个这种例子中,GC管理器10可以驻留在DSD 106、107、108和109中的每个处,以便遍及系统100分布执行GC管理器10。
[0026]应用12例如可以包括主机101可以执行例如数据归档程序或多媒体程序的程序,其可以请求或修改存储于DSD 107、108或109中的用户数据。设备驱动器14在主机101上提供用于设备的软件接口,所述设备例如是输入设备102、显示器设备104或DSD 106、107、108和109。另外,DSD 106可以存储操作系统(0S)20,其包括内核22、文件系统(FS)拦截24以及存储栈26 ASD 106的内容可以加载到主机101的常驻存储器(例如,RAM 112),用于在操作主机1I期间执行和/或状态跟踪。
[0027]文件系统(FS)16可以是在具有转换模块18的主机101的用户空间中实现的文件系统,以与FS拦截24以接口连接,如下文参考图5的示例性实现环境更详细讨论的。
[0028]DSD 106还可以存储映射表28,其可以用于在主机101所使用的逻辑地址(例如,逻辑块地址)之间进行转换或映射,以指代数据和对应的指示在DSD 106、107、108或109中的数据位置的物理地址(例如,物理块地址)。如下文参考图2更详细讨论的,映射表28可以用作用于叠瓦式磁记录(SMR)介质或固态介质的间接系统的一部分,以允许将逻辑地址重新分配到DSD 106、107、108或109中的不同的物理位置。
[0029]如图1所示,DSD 107、108和109分别存储用户数据30、33和34。用户数据是主机101存储或访问的数据。
[0030]图2描绘了根据实施例的DSD107的框图。在图2的实施例中,DSD 107包括用于存储数据的固态存储器130和磁盘138。对此,DSD 107可以被视为固态混合驱动器(SSHD ),因为其包括固态非易失性存储器(NVM)介质和磁盘NVM介质。在其它实施例中,磁盘138或固态存储器130中的每一个可以由多个硬盘驱动器(HDD)或多个固态驱动器(SSD)所分别替代,从而DSD 107包括HDD或SSD池。
[0031]DSD 107包括控制器124,其包括例如用于执行指令的一个或多个处理器的电路,并且可以包括微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、硬连线逻辑、模拟电路和/或其组合。在一种实现方式中,控制器124可以包括片上系统(SoC)。
[0032]主机接口 128配置为使得DSD 107与主机101以接口连接,并可以根据标准(例如,快速PCI (PCIe )、串行高级连接技术(SATA)或串行连接SCSI (SAS))进行接口连接。如本领域普通技术人员可以理解地,主机接口 128可以作为控制器124的一部分被包含。
[0033]传感器141也连接到控制器124上。传感器141可以向控制器124提供表明例如DSD17的高温度或高振动条件的环境条件的输入。
[0034]在图2的例子中,通过主轴电动机(未示出)旋转磁盘138 ASD 107还包括与致动器132的远端连接的磁头136,所述致动器132由音圈电动机(VCM) 134旋转以相对磁盘138定位磁头136。控制器124可以使用VCM控制信号36控制磁头136的位置。
[0035]如本领域普通技术人员可以理解地,磁盘138可以以在磁盘138下径向地对准的额外的磁盘形成磁盘组的部分。另外,磁头136可以形成磁头栈组件的包括额外的磁头的部分,每个磁头布置为从磁盘组中的磁盘的对应表面读取数据或将数据写入其中。
[0036]磁盘138包括用于在磁盘138的表面上存储数据的多个径向间隔的同心轨道(未示出)。磁盘138上的轨道可以被一起分组到轨道区中,其中每个轨道被划分为沿着轨道在周向间隔的多个扇区。在图2的例子中,磁盘138针对数据的重分配或垃圾收集(GC)包括可以用作来源部分的区140以及可以用作目的地部分的区142。
[0037]磁盘138可以包括具有由SMR导致的重叠轨道的一个或多个区,以增加可以在磁盘的给定区域中存储的数据量。如上所述,SMR轨道通常被顺序写入以避免影响先前写入的数据,并可以涉及使用间接系统来确保数据被顺序写入。当针对特定逻辑块地址(LBA)修改数据时,间接系统允许DSD将修改后的数据顺序写入到新位置,并将该数据的LBA从先前位置重新映射到新的位置。
[0038]在使用间接的SMR存储系统中,GC可以用于再捕捉过时的数据所使用的空间。然而,执行GC和重定位数据可以减少系统100的可以以其它方式用于主机101的性能带宽。
[0039]考虑到上述情况,本公开提供了一种用于改善控制对数据的GC和重定位的可调谐方法。根据另一方面,本公开的一些实施例还包括数据管理过程和系统,用于减少重定位数据的性能影响。
[0040]除了磁盘138外,DSD106的NVM介质还包括具有块131的固态存储器130用于存储数据。虽然本文的描述一般涉及固态存储器,但可以理解地是,固态存储器可以包括各种类型的存储器设备中的一个或多个,例如,闪速集成电路、硫属RAM( C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向联合存储器(0UM)、阻抗RAM(RRAM)、NAND存储器(例如,单层单元(SLC)存储器、多层单元(MLC)存储器或其任意组合)、NOR存储器、EEPR0M、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它离散NVM芯片或其任意组合。
[0041]固态存储器130可以使用间接系统来允许将LBA映射到不同的物理位置,作为用于更均匀使用块132的损耗均衡过程的一部分。在一种实现方式中,将修改后的数据写入到固态存储器130中的新物理位置,并将数据的LBA从先前的物理位置重新映射到新的物理位置。至于SMR介质,固态存储器130也可以使用GC过程来重新捕捉过时的或不再有效的数据所使用的空间。固态存储器130可以包括在下文讨论的GC和数据重定位过程中的来源或目的地部分。在一些实施例中,DSD 107可以包括固态存储器130、包括磁盘138的旋转磁介质、和/或两种非易失性存储设备的组合。
[0042]在图2中,易失性存储器139例如可以包括动态随机存取存储器(DRAM),其可以由DSD 107用于临时存储数据。在易失性存储器139中存储的数据可以包括从NVM介质(例如,磁盘138或固态存储器130)中读取出的数据、将写入到NVM介质中的数据、从DSD 107的固件40加载以由控制器124执行的指令、或用于执行固件40的数据。对此,图2的易失性存储器139示出为存储固件40,其可以包括由控制器124执行以实现如下所讨论的数据重新分配和垃圾收集过程的指令。固件可以存储于示出的非易失性存储设备(例如,固态存储器130和/或包括磁盘138的旋转磁介质)之一中。
[0043]在操作中,DSD 107经由主机接口 128从主机101接收读取和写入命令,用于从DSD107的NVM介质读取数据和写入数据到DSD 107的NVM介质。响应于来自主机101的写入命令,控制器124可以在易失性存储器139中缓冲针对写入命令将写入的数据。
[0044]对于将存储于固态存储器130内的数据,控制器124从主机接口128接收数据,并可以在易失性存储器139中缓冲该数据。在一种实现方式中,该数据随后被编码为电荷值,用于对固态存储器130中的单元充电以存储数据。
[0045]响应于对存储于固态存储器130中的数据的读取命令,在一种实现方式中,控制器124读取固态存储器130中单元的当前值,并将当前值解码为可以被转移到主机101的数据。在经由主机接口 128将数据转移到主机101之前,可以通过控制器124缓冲这种数据。
[0046]对于将写入到磁盘138中的数据,控制器124可以将缓冲的数据编码为写入信号38,其被提供给磁头136以将数据磁性地写入到磁盘138的表面。
[0047]响应于针对存储于磁盘138上的数据的读取命令,控制器124经由VCM控制信号36定位磁头136,以磁性地读取存储于磁盘138的表面上的数据。磁头136将作为读取信号38的读取数据发送到控制器124以供解码,并且在易失性存储器139中缓冲该数据以供转移到主机 1010
[0048]示例性垃圾收集和数据重定位过程
[0049]图3A是根据实施例的由主机101或DSD(例如,DSD107)执行的垃圾收集过程的流程图。在框302中,基于主机101定义的至少一个属性,确定针对要存储的数据的初始位置。主机101可以使用GC管理器10来定义至少一个属性或GC策略,以调谐或控制应该在何处执行垃圾收集(即,来源部分)、应该何时执行GC、应该在何处重定位由GC获得的有效数据(SP,目的地部分)、如何组织在目的地部分中的重定位的数据、或者在文件创建期间在何处初始存储数据。
[0050]主机101可以定义的属性可以包括数据的属性,例如,数据的有效日期、数据的访问频率、数据的所有权或者数据的碎片化程度。主机101还可以定义作为垃圾收集的来源部分的条件或者用于存储由GC操作获得的有效数据的目的地部分的条件的属性。
[0051]例如,主机101定义的属性可以包括用于确定特定数据是否已经到期的“数据年龄”或有效日期。数据年龄或有效日期可以基于诸如用以便移除超过特定年龄的所有或基本所有文件、或移除在特定时间段内标记为删除的文件的数据保持策略。在这种例子中,可以通过有效日期将数据分组到一起,使得具有相同有效日期的数据被一起分组到系统100的一部分(例如,特定逻辑卷、DSD或DSD的部分)中,使得整个部分被同时弃用,而无需重定位大量有效数据。
[0052]在另一例子中,主机101可以基于数据的访问频率定义属性(即,“热/7令”属性),使得可以将被较不频繁访问的数据(即,“冷数据”)一起分组到系统100的部分中,或者使得可以将被较频繁访问的数据(即,“热数据”)一起分组到系统100的部分中。较频繁访问的数据通常导致相比较不频繁访问的数据而言较多的数据用于GC或导致需要更频繁地进行重定位的数据。将频繁访问的数据分组到一个来源部分中可以因此普通地增强单个GC操作的效果,这是因为在频繁访问的数据中的来源部分中的单个GC操作相比在不包含同样多的无效数据的来源部分中的多个GC操作将释放较多的空间。换句话说,通过将较频繁访问的数据分组到一起,通常可以预处理系统100的特定部分以供数据重定位,并因此减少GC或数据重定位操作的总次数。
[0053]对此,主机101还可以定义属性来包括在识别用于GC的来源部分时的碎片化级别的考虑,例如,通过在特定来源部分中执行GC以提供最大的容量增益利用而获得的容量或性能量。
[0054]主机101还可以基于数据的所有权来定义GC的属性,使得特定用户所拥有的数据被一起分组到系统100的部分中。如果该用户的数据随后需要被删除或重定位,则对该用户的数据的GC或重定位被更加隔离到系统100的特定部分,并且对系统的广泛的性能具有较少影响。
[0055]如上所述,执行GC管理器10的主机101还可以基于来源或目的地部分的条件来定义属性。来源或目的地部分的这种条件可以例如包括:可靠性条件、环境条件、损耗级别、可用数据容量、距数据的先前用户的距离、在来源和目的地部分之间可用的网络带宽、来源或目的地部分的可用性、或者在操作来源或目的地部分时的能量成本。
[0056]在一个例子中,属性可以包括来源部分或目的地部分的可靠性条件,例如,磁头136的状态(例如,需要禁用的磁头)或者当在磁盘138上写入数据时遇到的错误级别。在另一例子中,主机101所定义的属性可以识别遇到高级别错误的用于垃圾收集的来源部分,使得可以将数据重定位到具有较低级别错误的目的地部分。
[0057]在其它例子中,主机101可以定义属性,使得将数据从已较经常使用的来源部分重定位到较少使用的目的地部分(例如,基于损耗级别)。这通常可以允许介质(例如,固态介质)有更长的寿命,或能够减少重复向磁盘介质的同一位置写入的负面影响,如下文更详细讨论地。主机101还可以基于可用的数据容量来定义属性,使得将数据重定位到具有较大可用数据容量的目的地部分。
[0058]在另一例子中,主机101可以定义环境条件,例如温度或振动条件,使得将数据从经历高温或高震动条件的来源部分重定位到经历较低温或较低震动条件的目的地部分。
[0059]—个或多个属性也可以考虑网络考量,使得可以越快地访问重定位的数据,越有效地重定位数据,或者使得数据重定位对系统性能具有较小的影响。在一个这种例子中,主机101基于数据的先前用户的位置来定义至少一个属性,使得将数据定位到离数据的先前用户较近的物理位置。主机101还可以定义属性,使得在来源部分和目的地部分存在最小的网络带宽,以改善在系统100中重定位数据的效率。
[0060]也可以考虑来源或目的地部分的可用性。在这种例子中,主机101可以基于来源或目的地部分的可用性来定义属性,使得在来源或目的地部分处执行较少的活动或操作。
[0061]在另一实现方式中,主机101可以定义关于对于操作来源和目的地部分的成本的属性,使得例如将数据从具有较高操作成本的来源部分重定位到具有较低操作成本的目的地部分。
[0062]返回图3A的过程,在框304中,基于至少一个属性,从多个来源部分中识别用于GC操作的来源部分。在GC管理器10识别来源部分的实施例中,来源部分可以是系统100中特定的逻辑卷、DSD、或DSD的一部分。在DSD的控制器(例如,DSD 107的控制器124)识别来源部分的实施例中,来源部分可以是DSD 107的一部分,例如磁盘138上的区140。
[0063]在框306中,基于至少一个属性,识别用于存储由对来源部分进行垃圾收集而获得的数据的目的地部分。在GC管理器10识别目的地部分的实施例中,目的地部分可以是系统100中特定的逻辑卷、DSD或DSD的一部分。在DSD的控制器识别目的地部分的实施例中,目的地部分可以是DSD的一部分,例如磁盘138上的区142。
[0064]在框308中,在来源部分中执行向目的地部分的GC。如上所讨论的,可以通过从来源部分向目的地部分拷贝有效数据并释放来源部分中将被覆写的无效或过时区域来执行GC0
[0065]在框310中,将来源部分指定为用于新的GC操作的新的目的地部分。通过旋转目的地部分,通常可以减少系统100的被重复用作目的地部分的特定部分上的不均匀损耗的可能性。对目的地部分的这种旋转还可以帮助减轻与重复写入磁盘介质上的同一位置相关联的问题,例如,邻道干扰(AT I)或者宽域轨道擦除(WATER)。
[0066]图3B是根据实施例的可以由主机101或由DSD(例如,DSD 107)执行的数据一致性过程的流程图。该过程可以结合图3A的GC过程执行,或者可以作为另一数据重定位过程的一部分执行,以确保来自来源部分的被重定位的数据与目的地部分中的被重定位的数据之间的一致性,且减少对来源部分中性能的影响。
[0067]在框312中,基于由主机101定义的属性来识别将被重定位的数据和/或目的地部分。如结合图3A在上文讨论的,属性可以包括数据的属性或系统100的条件。
[0068]在框314中,根据在框312中对数据和/或目的地部分的位置的识别,将数据从来源部分重定位到目的地部分。来源部分和目的地部分可以在例如具有图2中的区140和142的同一DSD中,或者来源和目的地部分可以驻留在或包括不同的DSD,例如DSD 107和DSD 108。
[0069]在框316中,确定在框314中重定位数据时,是否对来源部分中的相关数据做出了改变。相关数据可以包括在框314中已经以其它方式重定位的数据。例如,基于至少一个属性未识别出用于框312中的重定位的、来源部分中的数据的改变,将不被认为是对相关数据的改变。在一些实现方式中,可以基于比较在框314中重定位数据之前和之后的元数据来确定改变。可以由使用基于写入时拷贝(COW)的文件系统而获得所述元数据,所述文件系统在文件中有改变时生成元数据中的改变。扫描文件系统的元数据,然后可以显示是否发生了改变以及在何处改变。
[0070]如果在重定位期间改变了来源部分中的相关数据,则在框318中将经改变的相关数据从来源部分重定位到目的地部分,并在框320中结束过程。
[0071]图3B的过程通常提供在来源和目的地部分之间的一致性,同时仍允许在框314中重定位数据时改变来源部分中的数据这一行为。在一些实施例中,改变来源部分中的相关数据可能在框318中被阻止,以进一步确保在来自来源部分的重定位的数据与在目的地部分中的重定位的数据之间的一致性。如果在重定位期间没有改变相关数据,则过程在框320中结束,而不执行框318。
[0072]在其它实施例中,控制器124或主机101可以重复执行框316和318,直到不存在对相关数据的改变。在对框316和318的每次迭代时,期望的是较少的改变,这是因为应该降低用于重定位数据的时间。一旦在来源部分中不再存在对相关数据的改变,则过程可以结束。
[0073]图4根据实施例,描绘了包括主机101和DSD 106、107、108和109的示例性实现环境。如图4所示,主机101包括用户空间和内核空间。
[0074]用户空间包括GC管理器10、应用12以及用于在错误之后重构文件系统的恢复模块
19。恢复模块19可以包括类似于检查磁盘(CKDSK)或文件系统一致性检查(FSCK)的恢复工具,但是在全系统级别上处理跨不同文件系统和/或系统100的DSD识别出的不一致性或错误。另外,恢复模块19可以与GC管理器10协商以在重定位数据时确定来源或目的地部分。
[0075]如图4所示,GC管理器10接受至少一个属性或策略,其可以包括用于控制GC或DSD中的数据重定位的用户可调谐参数。如上所讨论的,至少一个属性可以包括系统100的条件或存储于系统100中的数据的属性。至少一个属性可以用于识别系统100的来源部分、目的地部分、执行GC或数据重定位的时间、或将被重定位的特定数据。
[0076]在确定何时或何处执行GC时,GC策略或属性可以包括针对DSD的期望的输入输出(1)使用,从而当期望具有较少的1使用时在驱动器上执行GC,以便对系统性能具有较小的影响。1使用的历史可以来自由主机101提供的信息或来自系统100中的DSD。在另一例子中,主机101可以基于与当日时间相关联的1使用来定义属性,从而在对系统性能具有较小影响时发生GC。
[0077]至少一个属性还可以考虑系统资源(例如,处理、存储或带宽)的可用性,其可以包括评估系统100中的主机101的活动级别。在一个例子中,至少一个属性可以指定在来源部分和目的地部分之间的连接资源的级别,以便减少用于重定位数据的时间。
[0078]参考图4,GC管理器10可以将数据从目的地部分重定位到来源部分,并还可以影响文件系统的数据布置策略,如从GC管理器10到FS 32的虚线所指示的,其可以例如包括文件系统(如,在内核空间中的Ext4或NILFS)。这可以允许基于由主机101定义的至少一个属性来确定将存储于系统100内的数据的初始位置。通过基于至少一个属性来对数据进行初始分组或合并,通常使得重定位数据更有效,这是因为数据是更少地跨系统100的不同部分来分散的。
[0079]在示出的实施例中,GC管理器10位于文件系统层之上,并可以查询系统100的一部分以确定用于基于至少一个属性来执行GC的时间或部分。GC管理器10还可以包括较低级别的模块,其可以执行图3A和3B的过程。在GC管理器10位于文件系统层之上的该例子中,可以识别有效的与到期的/删除的数据,而不依赖于SCSI/ΑΤΑ暗示或通知(例如,TR頂或UNMAP命令)。
[0080]内核空间可以是由主机101执行的OS20的一部分,并包括用于与DSD 106、107、108和109接口和联网的存储栈26AS 32通过与存储栈26接口来组织存储于系统100中的数据。另外,应用12可以使用FS 32来取回DSD 106、107、108和109中的作为用户数据的数据或在DSD 106、107、108和109中将数据作为用户数据来存储。
[0081 ] 图5描绘了根据实施例的包括主机101和DSD 106、107、108和109的另一实现环境。在图5的例子中,主机101执行GC管理器10、应用12和恢复模块19,如图4的示例性实现环境一样。不像图4的实现环境,图5的例子还包括在用户空间中的FS 16和转换模块18以及在内核空间中的FS拦截24。
[0082]FS拦截24与应用12接口,并可以拦截读取和写入命令,并将命令传递给用户空间中的FS 16oFS 16可以包括实现COW的文件系统,例如线性磁带文件系统(LTFS)。如上所述,基于COW的文件系统可以允许在数据重定位期间通过针对改变来扫描文件系统的元数据而相对快速地识别相关数据的改变。
[0083]对其本身,FS16生成包括块地址的命令,所述块地址表示与该命令相关联的元数据或数据的逻辑地址。转换模块18接受所述命令,并可以将逻辑地址转换为针对特定DSD的设备地址和/或在不同接口协议(例如,ATA、SCSI)之间进行转换。设备地址还可以识别在存储介质的区(例如,DSD 107的区142)中的位置。
[0084]转换模块18利用针对存储介质的相应的读取或写入命令来将经转换的设备地址传递给存储栈26。实际上,转换模块18可以是插件式(plug-1n)驱动器,而不需要修改FS16。
[0085]其它实施例可以包括不同于图4和5所示的例子的系统实现方式。例如,在其它实施例中,转换模块18可以反而是内核空间的一部分。对此,可以将一些模块分配给与所示不同的层/空间,并且可以将一些分裂成额外的模块或组合成较少的模块。
[0086]图6A是根据实施例的可以由主机1I或由DSD(例如,DSD 107)执行的GC过程的流程图。在框602中,基于由主机101定义的至少一个属性,确定将存储于系统100中的数据的初始位置。如上所述,基于该至少一个属性的数据的该初始布置稍后可以提高基于该至少一个属性的GC或数据重定位的效率,这是因为用于重定位的相关数据不是跨系统100中的不同位置散布的。
[0087]在框604中,确定用于执行GC的时间。可以确定用于GC的时间,以便减少对系统1性能的影响。因此,主机101或DSD控制器(例如,控制器124)可以基于处理资源的可用性、来源部分或目的地部分的可用性、当日时间或主机101的活动级别来确定何时执行GC。对此,可以在期望在服务(serving)其它主机命令中存在较少的活动时发生GC,从而在服务主机命令时GC对系统100的性能具有较少影响。例如,用于GC的时间可以是历史上具有较少活动的当日时间,从而GC并不干扰从主机101服务命令。1使用模式可以由DSD控制器学习或可以由主机101观察/提供。另外,如果修改了来源部分中的相关数据,则主机101或DSD控制器可以将针对来源部分的GC延期。
[0088]在框606中,基于至少一个属性,从多个来源部分识别用于GC操作的来源部分。在GC管理器10识别来源部分的实施例中,来源部分可以是系统100中的特定逻辑卷、DSD或DSD的一部分。在DSD的控制器(例如,DSD 1 7的控制器124)识别来源部分的实施例中,来源部分可以是DSD 107的一部分,例如磁盘138上的区140。
[0089]在框608中,基于至少一个属性,识别用于存储由对来源部分进行垃圾收集而获得的数据的目的地部分。在GC管理器10识别目的地部分的实施例中,目的地部分可以是系统100中的特定逻辑卷、DSD或DSD的一部分。因此,来源和目的地部分可以位于同一卷/DSD/DSD的一部分上或位于不同的卷/DSD/DSD的一部分上。在DSD 107的控制器124识别目的地部分的实施例中,目的地部分可以是DSD 107的一部分,例如磁盘138上的区142。
[0090]在框610中,通过识别来源部分中的有效数据来执行GC。有效数据是尚未过时的、数据的最近版本。在框612中,将有效数据复制到目的地部分,并根据至少一个属性对所述有效数据进行组织。在一个例子中,可以对有效数据进行组织,从而通过到期日期、访问频率或数据所有权来对目的地部分中的复制的数据进行组织。
[0091]在框614中,来源部分被指定为用于新的GC操作的新的目的地部分。如上结合图3A所述,旋转目的地部分可以减少系统100的可能被重复用作目的地部分的特定部分上的不均匀损耗。对目的地部分的这种旋转还可以有助于减少与在磁盘介质上的同一位置重复地写入相关联的问题,例如,邻道干扰(ATI)或者宽域轨道擦除(WATER)。
[0092]在框616中,在完成GC之后将目的地部分设置为可用于存储数据。这允许目的地部分除了用于存储来自上述GC过程的复制的数据外,还用于存储用户数据。在将来的GC操作中,目的地部分随后可以用作用于执行GC的来源部分。
[0093]图6B是根据实施例,可以由主机101或由DSD(例如,DSD107)执行的数据一致性过程的流程图。该过程可以结合图3A或6A的GC过程执行,或者可以作为另一数据重定位过程的一部分执行,以在对来源部分的性能具有减少的影响的情况下,确保在来自来源部分的重定位的数据与在目的地部分中的重定位的数据之间的一致性。
[0094]在框618中,确定用于重定位数据的时间。如上所述,可以确定用于数据重定位的时间,从而减少对系统1性能的影响。因此,主机101或DSD控制器(例如,控制器124)可以基于处理资源的可用性、来源部分或目的地部分的可用性、当日时间或主机101的活动级别来确定何时重定位数据。对此,可以在期望在服务(serving)其它主机命令中存在较少的活动时发生数据重定位,从而在服务主机命令时数据重定位对系统100的性能具有较少影响。例如,用于数据重定位的时间可以是历史上具有较少活动的当日时间,从而数据重定位并不干扰从主机101服务命令。1使用模式可以由DSD控制器学习或可以由主机101提供。另外,如果修改了来源部分中的相关数据,则主机101或DSD控制器可以将针对来源部分的GC延期。
[0095]在框62 O中,基于由主机1I定义的属性,识别要被重定位的数据和/或目的地部分。如上所讨论的,属性可以包括数据的属性或系统100的条件。
[0096]在框622中,根据在框620中对数据和/或目的地部分的位置的识别,将数据从来源部分重定位到目的地部分。来源部分和目的地部分可以位于例如具有图2中的区140和142的同一DSD中,或者来源或目的地部分可以驻留在不同的DSD中或包括不同的DSD (例如,DSD107和108)。
[0097]在框624中,确定在框622中重定位数据时是否对来源部分中的相关数据做出了改变。相关数据可以包括在框622中已经以其它方式重定位的数据。例如,基于至少一个属性未识别出用于框620中的重定位的、来源部分中的数据的改变,可以不被认为是对相关数据的改变。在一些实现方式中,可以基于比较在重定位数据之前和之后的元数据来确定改变。通过不在重定位数据期间阻碍来源部分中的改变,则重定位数据不会妨碍向来源部分写入命令的动作。
[0098]如果在框622中在重定位期间没有改变相关数据,则过程进行到框632以将目的地部分设置为可用于存储数据。
[0099]在另一方面,如果在框622中重定位期间改变了来源部分中的相关数据,则在框626中将经改变的相关数据从来源部分重定位到目的地部分。关于框622,重定位经改变的相关数据不能防止在来源部分中写入命令的动作。由于在框626中对任何经改变的相关数据进行重定位的时间可能小于在框622中初始地重定位数据的时间,因此在框626中重定位经改变的相关数据时,不太可能对该相关数据做出额外的改变。
[0100]在框628中执行另一检查,以确定在框626中重定位经改变的相关数据时是否对额外的相关数据做出了任何改变。如果是,则在框630中将额外改变的相关数据从来源部分重定位到目的地部分,同时阻止对来源部分的进一步的改变。
[0101]在其它实施例中,可以对框624和626进行更多次迭代,或者可以重复执行框624和626,直到在不阻止改变的情况下,在来源部分不再改变相关数据。这通常允许在数据重定位期间来源部分的1性能维持基本不变,同时维持在存储于来源部分和目的地部分的相关数据之间的一致性。在对框624和626的每次迭代时,期望的是较少的改变,这是因为应该降低用于重定位数据的时间。
[0102]在框632中,将目的地部分设置为可用于存储数据。这允许目的地部分除了用于存储来自上述数据重定位过程的重定位的数据外,还用于存储用户数据。在将来的数据重定位操作中,目的地部分随后可以用作来源部分。
[0103]在框634中,识别用于进一步重定位数据的、新的目的地部分。识别新的目的地部分可以基于由主机101定义的至少一个属性,而不考虑先前使用的目的地部分,从而目的地部分在系统100中旋转。
[0104]图7是根据实施例,示出了将区分配作为用于GC的目的地部分以及将剩余区中的每个分配作为由主机101用于存储数据的逻辑卷的概念图。在图7中,区0、1和2中的每个经由针对所述区的文件系统和映射表28分别映射至卷B、C和A。在其它实施例中,不同的区中的每个皆可以使用不同的文件系统。
[0105]在图7中的单个区可以包括磁盘的特定物理部分,例如磁盘138的区140或区142;或者单个区可以包括固态存储器的一部分,例如固态存储器130中的一个或多个块131。在其它实施例中,单个区可以包括整个磁盘表面或整个DSD。
[0106]卷的阴影以及区的对应阴影示出了映射对应性以及每个卷/区的碎片化级别。卷/区的较暗阴影表示卷/区的碎片化级别较高。
[0107]区N是图7中的漂浮备用区,用于存储从另一区的GC而获得的数据。例如,按照以上针对图3A或6A描述的GC过程,可以对区I进行垃圾收集,将其收集到区N中或者一组漂浮备用区中的任意一个或多个中。在完成GC之后,区N被作为新的卷C,并且区1(先前映射到卷C)被分配为用于后续GC操作的新的区N。通过旋转目的地部分,通常可以减少用于存储由GC获得的数据的特定区域上的损耗。另外,将具有较少使用的特定区作为目标或识别为目的地部分。然后,主机定义的属性可以基于对目的地部分的先前使用,从而具有较低使用或损耗的区被识别为目的地部分。在其它实施例中,区N可以包括用于存储从GC获得的数据的多个区。
[0108]图8是根据实施例,示出了将多个区分配给逻辑卷以及将一个区分配为用于GC的目的地部分的概念图。在图8中,区O到N-1被映射到单个逻辑卷。将多个区映射或分配到单个逻辑卷可以用于容纳尺寸可能超过区的尺寸的大文件。这种大文件例如可以覆盖磁盘板表面,并具有上千兆字节的尺寸。
[0109]在其它实施例中,将较少数量的区映射到单个逻辑卷。例如,第一对区可以映射到第一逻辑卷,且第二对区可以映射到第二逻辑卷。另外,其它实现方式可以包括多个区到单个区的CG或者单个区到多个区的GC。
[0110]与图7—样,图8中的单个区可以包括磁盘的特定物理部分,例如,磁盘138的区140或区142;或者单个区可以包括固态存储器的一部分,例如,固态存储器130中的一个或多个块131。在其它实施例中,单个区可以包括整个磁盘表面或整个DSD。
[0111]与图7的实现方式形成对比的是,在图8中描绘的实现方式可以允许向用户级别隐藏GC过程,因为其在映射表28外并驻留在比文件系统低的级别。
[0112]灰色阴影指示整个卷的碎片化级别是对应区的碎片化级别的平均。利用具有用作漂浮备份区或可以旋转的目的地部分的区N,以区的级别来执行如图3A或6A中的GC过程。当完成GC过程时,可以经由文件系统和映射表28将区N映射到卷,并且将先前映射到逻辑卷的区之一制定为用作新的漂浮备份区或目的地部分。
[0113]其它实施例
[0114]本领域普通技术人员将理解的是,结合本文公开的例子来描述的各种说明性逻辑块、模块和过程可以实现为电子硬件、计算机软件或两者的组合。此外,上述过程可以具体实现于使得处理器或计算机完成或执行某些功能的计算机可读介质上。
[0115]为了清楚地说明硬件和软件的可交换性,上面对各种说明性部件、块和模块均围绕其功能进行了总体描述。至于这种功能是实现为硬件还是软件,取决于具体的应用和对整个系统所施加的设计约束条件。本领域普通技术人员可以针对每个特定应用以变通的方式实现所描述的功能,但是这种实现决策不应该被解释为导致背离本公开的范围。
[0116]可以利用被设计为执行本文中所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行结合本文所公开的示例所描述的各种示例性的逻辑框、单元、模块和控制器。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。
[0117]结合本文公开的例子所描述的方法或过程的活动可以直接实现在硬件中、由处理器执行的软件模块中、或两者的组合中。方法或算法的步骤还可以以例子中提供的次序的替代次序来执行。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除介质、光介质或本领域已知的任意其它形式的存储介质中。示例性存储介质耦合到处理器上,从而处理器可以从存储介质读取信息以及将信息写入到存储介质中。在可替代方案中,存储介质可以集成到处理器。处理器和存储介质可以驻留在专用集成电路(ASIC)上。
[0118]提供对所公开的示例性实施例的上述描述,以使得本领域任何普通技术人员能够利用或使用本公开内容的实施例。对这些例子的各种修改对本领域普通技术人员而言将是显而易见的,并且在不背离本公开内容的精神或范围的情况下,本文公开的原理可以应用于其它例子。在所有方面讲,所描述的实施例认为是仅是说明性的而非限制性的,并且因此,本公开内容的范围由后续权利要求而不是前述描述指示。落入权利要求的等同物的含义和范围内的所有改变将被涵括于权利要求的范围内。
【主权项】
1.一种用于在包括至少一个数据存储设备(DSD)和主机的数据存储系统中管理数据的方法,所述方法包括: 基于由所述主机定义的至少一个属性,确定将存储于所述至少一个DSD中的数据的初始位置; 基于由所述主机定义的所述至少一个属性,从所述至少一个DSD中的多个来源部分识别用于垃圾收集操作的来源部分; 基于由所述主机定义的所述至少一个属性,识别所述至少一个DSD中的用于存储由垃圾收集操作获得的数据的目的地部分; 执行将在所述来源部分中的数据向所述目的地部分的垃圾收集;以及 在完成垃圾收集之后,将所述来源部分指定为用于新的垃圾收集操作的新的目的地部分。2.根据权利要求1所述的方法,还包括: 在所述垃圾收集期间识别在所述来源部分中的有效数据;以及 根据所述至少一个属性,在所述目的地部分中组织所述有效数据。3.根据权利要求1所述的方法,还包括:基于所述至少一个属性,在所述垃圾收集期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。4.根据权利要求1所述的方法,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权、或所述数据的碎片化级别。5.根据权利要求1所述的方法,其中,所述至少一个属性包括:所述来源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的环境条件、所述来源部分或所述目的地部分的损耗级别、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分距所述数据的先前用户的距离、所述来源部分和所述目的地部分之间的可用的网络带宽、所述来源部分或所述目的地部分的可用性、或者操作所述来源部分或所述目的地部分的能量成本。6.根据权利要求5所述的方法,其中,所述来源部分或所述目的地部分的所述环境条件包括:温度条件或振动条件。7.根据权利要求5所述的方法,其中,所述来源部分或所述目的地部分的可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。8.根据权利要求1所述的方法,还包括:确定用于执行垃圾收集的时间。9.根据权利要求8所述的方法,其中,确定用于垃圾收集的时间是基于以下各项中的至少一项的:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间、或者所述主机的活动级别。10.根据权利要求1所述的方法,其中,在完成垃圾收集之后,所述方法还包括将所述目的地部分设置为可用于存储数据。11.根据权利要求1所述的方法,其中,所述来源部分和所述目的地部分位于所述至少一个DSD中的分别的DSD中。12.根据权利要求1所述的方法,其中,所述来源部分和所述目的地部分位于所述至少一个DSD的同一DSD中。13.根据权利要求1所述的方法,其中,所述至少一个DSD包括用于存储数据的多个区,并且其中,所述方法还包括: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的每个剩余区分配为由所述主机用于存储数据的逻辑卷。14.根据权利要求1所述的方法,其中,所述至少一个DSD包括用于存储数据的多个区,并且其中,所述方法还包括: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的多个剩余区分配为由所述主机用于存储数据的逻辑卷。15.一种用于存储数据的数据存储系统,所述数据存储系统包括: 主机,其包括处理器;以及 至少一个数据存储设备(DSD ),其与所述主机通信; 其中,所述处理器被配置为进行以下操作: 定义用于在所述至少一个DSD中执行垃圾收集操作的至少一个属性; 基于所述至少一个属性,确定将存储于所述至少一个DSD中的数据的初始位置; 基于所述至少一个属性,从所述至少一个DSD中的多个来源部分识别用于垃圾收集操作的来源部分; 基于所述至少一个属性,识别所述至少一个DSD中的用于存储由所述垃圾收集操作获得的数据的目的地部分; 执行将在所述来源部分中的数据向所述目的地部分的垃圾收集;以及在完成所述垃圾收集之后,将所述来源部分指定为用于新的垃圾收集操作的新的目的地部分。16.根据权利要求15所述的数据存储系统,其中,所述处理器还配置为: 在所述垃圾收集期间识别在所述来源部分中的有效数据;以及 根据所述至少一个属性,在所述目的地部分中组织所述有效数据。17.根据权利要求15所述的数据存储系统,其中,所述处理器还配置为:基于所述至少一个属性,在所述垃圾收集期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。18.根据权利要求15所述的数据存储系统,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权、或所述数据的碎片化级别。19.根据权利要求15所述的数据存储系统,其中,所述至少一个属性包括:所述来源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的环境条件、所述来源部分或所述目的地部分的损耗级别、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分距所述数据的先前用户的距离、所述来源部分和所述目的地部分之间的可用的网络带宽、所述来源部分或所述目的地部分的可用性、或者操作所述来源部分或所述目的地部分的能量成本。20.根据权利要求19所述的数据存储系统,其中,所述来源部分或所述目的地部分的所述环境条件包括:温度条件或振动条件。21.根据权利要求19所述的数据存储系统,其中,所述来源部分或所述目的地部分的所述可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。22.根据权利要求15所述的数据存储系统,其中,所述处理器还配置为确定用于执行垃圾收集的时间。23.根据权利要求22所述的数据存储系统,其中,所述处理器还配置为基于以下各项中的至少一项确定用于垃圾收集的所述时间:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间、或者所述主机的活动级别。24.根据权利要求15所述的数据存储系统,其中,所述处理器还配置为:在完成所述垃圾收集之后,将所述目的地部分设置为可用于存储数据。25.根据权利要求15所述的数据存储系统,其中,所述来源部分和所述目的地部分位于所述至少一个DSD的分别的DSD中。26.根据权利要求15所述的数据存储系统,其中,所述来源部分和所述目的地部分位于所述至少一个DSD的同一DSD中。27.根据权利要求15所述的数据存储系统,其中,所述至少一个DSD包括用于存储数据的多个区,并且其中,所述处理器还配置为: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的每个剩余区分配为由所述主机用于存储数据的逻辑卷。28.根据权利要求15所述的数据存储系统,其中,所述至少一个DSD包括用于存储数据的多个区,并且其中,所述处理器还配置为: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的多个剩余区分配为由所述主机用于存储数据的逻辑卷。29.—种与主机通信的数据存储设备(DSD),所述DSD包括: 非易失性存储器,其用于存储数据;以及 控制器,其配置为: 接收由所述主机定义的用于在所述非易失性存储器中执行垃圾收集操作的至少一个属性; 基于由所述主机定义的所述至少一个属性,在所述非易失性存储器中确定将存储于所述DSD中的数据的初始位置; 基于由所述主机定义的所述至少一个属性,从所述非易失性存储器中的多个来源部分识别用于垃圾收集操作的来源部分; 基于由所述主机定义的所述至少一个属性,识别在所述非易失性存储器中的用于存储由所述垃圾收集操作获得的数据的目的地部分; 执行将在所述来源部分中的数据向所述目的地部分的垃圾收集;以及 在完成垃圾收集之后,将所述来源部分指定为用于新的垃圾收集操作的新的目的地部分。30.根据权利要求29所述的DSD,其中,所述控制器还配置为: 在所述垃圾收集期间识别在所述来源部分中的有效数据;以及 根据所述至少一个属性,在所述目的地部分中组织所述有效数据。31.根据权利要求29所述的DSD,其中,所述控制器还配置为:基于所述至少一个属性,在所述垃圾收集期间识别在所述来源部分中的有效数据,从而将所述有效数据与在所述目的地部分中具有所述至少一个属性的其它数据分组到一起。32.根据权利要求29所述的DSD,其中,所述至少一个属性包括以下各项中的至少一项:所述数据的到期日期、对所述数据的访问频率、所述数据的所有权、或所述数据的碎片化级别。33.根据权利要求29所述的DSD,其中,所述至少一个属性包括:来所述源部分或所述目的地部分的可靠性条件、所述来源部分或所述目的地部分的可用数据容量、所述来源部分或所述目的地部分的可用性、或者所述来源部分或所述目的地部分的损耗级别。34.根据权利要求33所述的DSD,其中,所述来源部分或所述目的地部分的所述可靠性条件包括:用于写入数据的磁头的状态或者当写入数据时遇到的错误级别。35.根据权利要求29所述的DSD,其中,所述控制器还配置为:确定用于执行垃圾收集的时间。36.根据权利要求35所述的DSD,其中,所述控制器还配置为基于以下各项中的至少一项来确定用于垃圾收集的所述时间:处理资源的可用性、所述目的地部分或所述来源部分的可用性、当日时间、或者所述主机的活动级别。37.根据权利要求29所述的DSD,其中,所述控制器还配置为:在完成所述垃圾收集之后,将所述目的地部分设置为可用于存储数据。38.根据权利要求29所述的DSD,其中,所述非易失性存储器包括用于存储数据的多个区,并且其中,所述控制器还配置为: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的每个剩余区分配为由所述主机用于存储数据的逻辑卷。39.根据权利要求29所述的DSD,其中,所述非易失性存储器包括用于存储数据的多个区,并且其中,所述控制器还配置为: 将所述多个区中的一个区分配为所述目的地部分;以及 将所述多个区中的多个剩余区分配为由所述主机用于存储数据的逻辑卷。40.—种用于在包括多个数据存储设备(DSD)和主机的数据存储系统中管理数据的方法,所述方法包括: 基于由所述主机定义的至少一个属性,识别将从所述多个DSD的来源部分重定位到所述多个DSD的目的地部分的数据和/或针对所述目的地部分的位置; 根据对将重定位的所述数据和/或针对所述目的地部分的所述位置的所述识别,将所述数据从所述来源部分重定位到所述目的地部分; 确定在将所述数据从所述来源部分重定位到所述目的地部分时,是否对存储于所述来源部分中的相关数据做出了改变;以及 如果在将所述数据重定位到所述目的地部分时对存储于所述来源部分中的相关数据做出了改变,则将经改变的相关数据从所述来源部分重定位到所述目的地部分。41.根据权利要求40所述的方法,还包括:通过比较在重定位所述数据之前和之后所述来源部分的元数据,来确定是否对存储于所述来源部分中的相关数据做出了改变。42.根据权利要求40所述的方法,还包括: 确定在将经改变的相关数据从所述来源部分重定位到所述目的地部分时,是否对所述来源部分中的额外的相关数据做出了进一步的改变;以及 如果在将经改变的相关数据重定位到所述目的地部分时,对所述来源部分中的额外的相关数据做出了进一步的改变,则: 将由所述进一步的改变所获得的额外的经改变的相关数据从所述来源部分重定位到所述目的地部分;以及 在重定位所述额外的经改变的相关数据时,阻止对所述来源部分的进一步的改变。43.—种数据存储系统,包括: 主机,其包括处理器;以及 至少一个数据存储设备(DSD ),其与所述主机通信; 其中,所述处理器配置为: 基于由所述主机定义的至少一个属性,识别将从所述多个DSD的来源部分重定位到所述多个DSD的目的地部分的数据和/或针对所述目的地部分的位置; 根据对将重定位的所述数据和/或针对所述目的地部分的所述位置的所述识别,将所述数据从所述来源部分重定位到所述目的地部分; 确定在将所述数据从所述来源部分重定位到所述目的地部分时,是否对存储于所述来源部分中的相关数据做出了改变;以及 如果在将所述数据重定位到所述目的地部分时对存储于所述来源部分中的相关数据做出了改变,则将经改变的相关数据从所述来源部分重定位到所述目的地部分。44.根据权利要求43所述的数据存储系统,其中,所述处理器还配置为:通过比较在重定位所述数据之前和之后所述来源部分的元数据,来确定是否对存储于所述来源部分中的相关数据做出了改变。45.根据权利要求43所述的数据存储系统,其中,所述处理器还配置为: 确定在将经改变的相关数据从所述来源部分重定位到所述目的地部分时,是否对所述来源部分中的额外的相关数据做出了进一步的改变;以及 如果在将经改变的相关数据重定位到所述目的地部分时,在所述来源部分中对额外的相关数据做出了进一步的改变,则: 将由所述进一步的改变所获得的额外的经改变的相关数据从所述来源部分重定位到所述目的地部分;以及 在重定位所述额外的经改变的相关数据时,阻止对所述来源部分的进一步的改变。
【文档编号】G06F12/02GK105934749SQ201580006048
【公开日】2016年9月7日
【申请日】2015年1月23日
【发明人】A·H·陈, J·N·马利纳
【申请人】西部数据技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1