管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法

上传人:ting****789 文档编号:310036688 上传时间:2022-06-14 格式:DOCX 页数:8 大小:26.14KB
返回 下载 相关 举报
管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法_第1页
第1页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法》由会员分享,可在线阅读,更多相关《管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法(8页珍藏版)》请在金锄头文库上搜索。

1、管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法专利名称:管理对在存储器件之间迁移的磁道延伸区的写入操作的制作方法技术领域:本发明涉及一种用于管理对在存储器件之间迁移的磁道延伸区(extentsoftracks)的写入操作的方法、系统以及计算机程序产品。背景技术:在层级存储环境中,磁道延伸区可在诸如硬盘驱动器、固态存储器件之类的不同存储器件层之间迁移,这取决于存储器件的特征与存取频率和数据优先级。例如,较常存取的延伸区和/或较高优先级的延伸区可从较慢存取层迁移到较快存取层,而不常存取的延伸区和/或较低优先级的延伸区可迁移到较慢存取层。在当前层级存储环境中,在给定时段内在上层/池和下层/

2、池之间多次来回迁移延伸区。在此前提下,下层将升级给定延伸区,而不会认识到该延伸区在整体或部分上仍在 上层中保持未被修改。当迁移延伸区时,可能将来自延伸区的所有数据从一个存储器件复制到另一个存储器件。此类迁移将花费大量时间。在当前分层存储架构中,上层可包含从先前降级的延伸区到下层的旧的未修改(冗余)区(tracts),其可用作第二级缓存。当前解决方案的主要缺点是效率较低,因为固态存储器件(SSD)驱动器的读取性能显著高于硬盘驱动器的读取性能。从已被停止供电的硬盘驱动器不必要地读取数据还会 缩短硬盘的寿命 降低电源效率 增加数据请求的存取时间,因为必须首先为驱动器供电本领域中需要用于在存储器件之间

3、迁移磁道延伸区并解决上述问题的改进的技术。发明内容提供了一种用于管理对在存储器件之间迁移的磁道延伸区的写入操作的计算机程序、计算机程序产品、系统以及方法。处理将磁道延伸区从第二存储器迁移到第一存储器的操作。判定对于要迁移的延伸区是否存在延伸区对象。如果所述延伸区在先前时间预先被从所述第一存储器迁移到所述第二存储器,则所述延伸区对象存在。对于每个磁道,所述延伸区对象包括写入指示符,指示当所述延伸区被预先迁移到所述第二存储器时,自所述先前时间以来是否已在所述第二存储器中更新该磁道。响应于判定所述延伸区对象存在,确定所述延伸区中具有这样的写入指示符的磁道所述写入指示符指示自所述先前时间以来已在所述第

4、二存储器中更新该磁道。将所确定的磁道的数据从所述第二存储器复制到所述第一存储器中的空闲位置。对于每个所确定的磁道,在所述延伸区对象中更新所确定的磁道的表项,以将该磁道的数据被复制到的空闲位置指示为该磁道的有效地址。现在将仅通过实例的方式参考附图中所示的优选实施例描述本发明,这些附图是:图I示出根据现有技术并且其中可实现本发明的一个优选实施例的计算环境的一个实施例;图2示出根据本发明的一个优选实施例的延伸区对象中的表项的一个实施例;图3示出根据本发明的一个优选实施例的作为延伸区表的延伸区对象的一个实施例;图4示出根据本发明的一个优选实施例的将延伸区从第二存储器迁移至第一存储器的操作的一个实施例;

5、图5示出根据本发明的一个优选实施例的用于处理对第一存储器中存在的延伸区中的磁道的写入请求的操作的一个实施例; 图6示出根据本发明的一个优选实施例的用于处理对第二存储器中存在的延伸区中的磁道的写入请求的操作的一个实施例。具体实施例方式图I示出在第一存储器4与第二存储器6中存储数据磁道的服务器2的一个实施例。服务器2包括处理器8,处理器8包括一个或多个处理器器件与内存10,在内存10中,加载操作系统12以由处理器8执行。操作系统12包括延伸区迁移代码14,以管理在第一存储器4与第二存储器6之间由延伸区对象16所表示的磁道延伸区的迁移。磁道延伸区可以在第一存储器4或第二存储器6之一中是有效的,并可在

6、第一存储器4与第二存储器6之间迁移。服务器2可以以循环架构等,通过存储接口的单独电缆在网络上与第一存储器4和第二存储器6通信。第一存储器4与第二存储器6可包括不同类型的存储器件,诸如固态存储器件(SSD),其包含固态电子器件,诸如电可擦除可编程只读存储器(EEPR0M)、闪存、快闪磁盘(FlashDisk)、随机存取内存(RAM)驱动器、存储级内存(SCM)等、磁性存储盘、光盘、磁带等。内存8可包括一个或多个易失性或非易失性内存器件。延伸区迁移代码14可以备选地实施为操作系统12外部的应用代码,或可以以硬件逻辑实施,诸如专用集成电路(ASIC)、或计算机可读存储介质中的可编程处理器执行代码。在

7、一个实施例中,第一存储器4与第二存储器6可包括存储器件层级配置内的存储层,其中层基于诸如输入/输出(I/o)存取规范(profile)速度、冗余之类的特征来定义存储器。例如,第一存储器4可包括高速存储器,诸如SSD或RAM驱动器,且第二存储器6可包括较慢存取存储器,诸如硬盘驱动器或磁带介质。采用本领域中公知的层级管理存储技术,操作系统12可调用延伸区迁移代码14,以将较不常被存取和/或具有较低优先级的延伸区从第一存储器4迁移至第二存储器6,并将较常被存取和/或较高优先级的磁道延伸区从第二存储器6迁移至第一存储器4。除了数据存取频率与数据优先级之外的数据特征可用来判定是否要在存储层级的较高与较低

8、层存储器件之间迁移延伸区。在特定实施例中,延伸区对象16标识在第二存储器6中连续存储的磁道,这在第二存储器6包括对于介质中连续存储磁道具有改进的读取/写入存取的存储器件(诸如硬盘驱动器与磁带驱动器)的实施例中是有利的。但是,延伸区中的磁道数据可能未连续存储在第一存储器内,所述第一存储器可包括未改进连续存储磁道存取的存储器件,诸如固态存储器件(SSD)或随机存取内存(RAM)驱动器。延伸区对象16包括在一个延伸区内管理的每个磁道的表项。每个磁道可包括相同大小的单个数据单元。服务器2可在第一存储器4与第二存储器6中,维护服务器2管理的每个单独延伸区的多个延伸区对象16。另外,可存在额外的存储器件,

9、使得服务器2可在两个以上存储器中管理磁道延伸区的迁移,其中不同存储器可具有不同I/O存取规范。图2示出延伸区对象16中的表项50的一个实施例,所述表项提供有关延伸区中的一个磁道的信息。磁道标识符(ID)52标识延伸区中的磁道。修改指示符54指示当延伸区与磁道预先从第一存储器4迁移至第二存储器6时,自先前时间以来,是否已在第二存储器6中更新该磁道,因此指示当第二存储器6上存在磁道与延伸区时,第一存储器4是否具有磁道的最新版本。有效地址56指示第一存储器4中具有第二存储器6中的磁道的最新 版本的地址。有效校验和58包括从有效地址56处的数据计算的校验和值。所述校验和值可利用本领域中公知的校验和或散

10、列算法计算,以确定数据的独特或可能独特的表示。如 果修改指示符52指示已在第二存储器6更新磁道且第一存储器4没有最新数据版本,则由于在第二存储器6处的更近的更新,有效地址56所标识的数据不包括有效版本,而是包括先前版本。在特定实施例中,可将数据更新写入第一存储器4中的新的空闲位置。在此情况下,磁道的延伸区表项50可维护第一存储器4中存储的磁道的每个先前版本a. . . 的先前版本地址6(V . . . 60n以及从磁道的先前版本计算的先前版本校验和62p . . . 62n。延伸区表80中的先前版本地址6(V . . 60n的顺序可指示先前版本的年龄,其中最新的先前版本地址是第一个,即60i,

11、最旧的先前版本地址为最后一个,即60n。服务器2可基于各种因素(诸如可用空间、预定的版本限制数、可用来存储先前版本的预定空间等)限制在第一存储器4中所维护的数据版本数。在第一存储器4包括SSD的实施例中,当更新时常存取的逻辑地址时,作为称为写入平衡(Wear Leveling)的过程的一部分,将最近写入的数据写入到第一存储器4中的新的实际位置以跨存储器件分散写入,这将延长固态存储器件的寿命。持续写入到固态器件的同一物理位置会损耗固态存储器件中的存储块。图3示出实现为延伸区表80的延伸区对象的一个实例,所述延伸区表对于每个磁道具有一个行,并且各列提供有关延伸区对象的信息。图4示出在延伸区迁移代码

12、14中实施的操作的一个实施例,此操作使延伸区从第二存储器6迁移或升级到第一存储器4。在处理迁移延伸区的请求(步骤100)后,判定(步骤102)要迁移磁道的延伸区的延伸区对象16是否存在。如果否,则延伸区迁移代码14进行步骤104,以创建延伸区的新延伸区对象16,并清除每个延伸区表项50(图2)的修改指示符54,以指示未在第二存储器2中修改数据。对于在延伸区16的每个磁道,延伸区迁移代码14对延伸区中每个磁道执行操作循环(步骤106-114)。对于每个磁道,将磁道从第二存储器6复制到第一存储器4中的空闲位置(步骤108)。延伸区迁移代码14计算(步骤110)所复制磁道的校验和,并将磁道的有效地址

13、56设置(步骤112)成第一存储器4中该磁道被复制到的空闲位置;且将有效校验和58设置成所计算的校验和值。在初次将延伸区升级及迁移到第一存储器4时,执行步骤104-114的操作。如果(步骤102)对于正在升级的延伸区,延伸区对象16已存在,则该延伸区预先被从第一存储器4迁移到第二存储器6,且在步骤116至128对延伸区中每个磁道执行循环,以从第二存储器6迁移或升级到第一存储器4。如果(步骤118)所考虑磁道的修改指示符54指示磁道未在第二存储器6中更新,则不对磁道执行任何操作且不会复制数据,因为数据并未改变。如果(步骤118)磁道的修改指示符54指示磁道已被修改,则将磁道的数据从第二存储器6复

14、制(步骤120)到第一存储器4中的空闲位置。将磁道的新的先前版本地址设置成当前有效地址56,使磁道的当前数据成为先前版本,且将磁道的新的先前版本校验和设置成当前有效校验和58。然后,将有效地址56设置(步骤124)成数据被复制到的空闲位置的地址,且将有效校验和58设置(步骤126)成从复制到空闲位置的数据计算的校验和值。然后,先前版本对(先前版本地址6(60n与先前版本校验和62a62n)被重新排序(步骤127),所以先前版本信息会按先前版本的年龄或版本号加以排序。在延伸区对象16包括延伸区表80 (图3)以执行步骤127的重新排序操作及产生当前有效数据与校验和先前版本的一个实施例中,延伸区迁

15、移代码14可将当前的先前版本6(V . . . 60n与62a. . . . 62n的列向右移两列,以覆写及占据先前版本2 n+1的列,然后 将当前有效地址56与当前有效校验和58复制到最新当前先前版本地址60i与62lt)如此,使当前版本地址56与校验和58成为最近先前版本,以在有效字段56与58内腾出空间给复制到空闲位置的已更新数据。在备选实施例中,排序以指示先前版本排序的指针或其他信息表不。对于图4的操作,当延伸区从第二存储器6迁移或升级到第一存储器4时,自延伸区从第一存储器4迁移或降级到第二存储器6以来,只有已在第二存储器6中改变的磁道才被复制到第一存储器4。在第一存储器4包括SSD的

16、实施例中,此描述的操作提供写入平衡,因为新数据被写入到新位置,且可避免对第一存储器4的非必要写入,因为自先前迁移以来,未在第二存储器6修改的数据不会被复制到第一存储器4。图5示出由操作系统12执行的操作的一个实施例,其处理对第一存储器4中存在的延伸区中的磁道的写入。在接收写入后,操作系统12 (或一些其他代码)从目标磁道的写入计算(步骤152)暂时校验和。如果(步骤154)暂时校验和匹配磁道的有效校验和58,则将完成返回给写入请求,因为在磁道有效地址56处的数据与要写入的数据相同。如此,数据不必被写入到第一存储器4,这在第一存储器包括寿命受到连续写入到相同位置的影响而减少的SSD或其他类型器件的实施例中,会降低写入平衡。如果(步骤154)暂时校验和值不匹配有效校验和58,则操作系统12判定(步骤158)暂时校验和值是否匹配先前版本校验和62” .62n中的一个。可能存在零个或更多先前版本地址与校验和值。如果匹配,则操作系统12执行操作160-166,以使用在先前版本地址6(V . . . 60n之一处的先前版本数据,因为先

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号