CN105892936A - 性能平缓的数据存储设备 - Google Patents
性能平缓的数据存储设备 Download PDFInfo
- Publication number
- CN105892936A CN105892936A CN201610086650.1A CN201610086650A CN105892936A CN 105892936 A CN105892936 A CN 105892936A CN 201610086650 A CN201610086650 A CN 201610086650A CN 105892936 A CN105892936 A CN 105892936A
- Authority
- CN
- China
- Prior art keywords
- storage
- write
- data
- report
- memory area
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10629—Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
- G11B2020/10657—Cache memories for random data access, e.g. buffers wherein the data output is controlled by a priority parameter other than retention time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Debugging And Monitoring (AREA)
Abstract
为了提供数据存储设备和系统的增强操作,在此提供各种系统、装置、方法和软件。在第一示例中,提供一种数据存储设备,其包括包含叠瓦式磁记录(SMR)存储区域的存储介质。所述数据存储设备还包括:存储控制系统,被配置为接收写入操作,并且响应地在第一存储区域中存储写入数据,然后传送到所述SMR存储区域中。所述存储控制系统被配置为:确定用于将所述写入操作从所述第一存储区域传送到所述SMR存储区域中的报告步速,所述报告步速建立从将所述写入数据存储到第一存储区域中起平缓的目标性能。所述存储控制系统被配置为:以所述报告步速通过主机接口报告所述写入操作的完成。
Description
技术领域
本公开的各方面涉及数据存储系统中的数据存储和硬盘驱动器的领域。
背景技术
计算机和网络系统(诸如,个人计算机、工作站、服务器系统和云存储系统)典型地包括用于存储并且检索(retrieve)数据的数据存储元件。这些数据存储元件可以包括数据存储设备(诸如,硬盘驱动器、固态存储设备、混合存储设备、带式存储设备和其它大容量存储设备)。数据存储设备的制造商典型地制造能够具有除了其它特性之外的不同性能特性(诸如,吞吐量速率、事务缓冲区大小、旋转磁介质的旋转速率或延时)的不同等级的数据存储设备。
随着计算机系统和网络在数量和能力方面增长,需要越来越多的存储容量。云计算和大规模数据处理系统已经进一步增加了对于能够传送和保存庞大数据量的数字数据存储系统的需要。数据中心可以包括处于各种机架安装的并且高密度存储配置下的大量数据存储设备。
这些高密度存储配置可能采用使用不同存储技术的各种存储设备。一种这样的存储技术包括具有用于增加相关联存储介质上的存储密度的叠瓦式(shingled)磁记录(SMR)技术的数据存储驱动器。与诸如并行磁记录(PMR)之类的无重叠记录技术相比,SMR技术在物理上重叠磁存储介质上的相邻数据轨道。然而,包括SMR技术的数据存储驱动器的主机侧吞吐量方面的差异可能导致对于个体数据存储驱动器的不可预测的性能,并且因而导致对于存储设施内的大量数据存储驱动器的不可预测的性能。
发明内容
为了提供数据存储设备和系统的增强操作,在此提供各种系统、装置、方法和软件。在第一示例中,提供一种数据存储设备。所述数据存储设备包括:存储介质,包括第一存储区域和叠瓦式磁记录(SMR)存储区域。所述数据存储设备还包括:存储控制系统,被配置为接收通过主机接口所传送的包括用于在所述存储介质上存储写入数据的写入操作的存储操作,并且响应地在所述第一存储区域中存储所述写入数据,然后传送到所述SMR存储区域中。所述存储控制系统被配置为:确定用于将所述写入操作从所述第一存储区域传送到所述SMR存储区域中的报告步速(pace),所述报告步速建立从将所述写入数据存储到第一存储区域中起平缓的目标性能。所述存储控制系统被配置为:以所述报告步速通过所述主机接口报告所述写入操作的完成。
在另一示例中,提出一种操作数据存储设备的方法。所述方法包括:接收通过主机接口传送的包括用于在所述存储介质上存储写入数据的写入操作的存储操作,并且响应地在所述存储介质的第一存储区域中存储所述写入数据,然后传送到所述存储介质的SMR存储区域。所述方法还包括:确定用于报告将所述写入操作从所述第一存储区域传送到所述SMR存储区域中的报告步速,所述报告步速建立从将所述写入数据存储到第一存储区域中起平缓的目标性能。所述方法还包括:以所述报告步速通过所述主机接口报告所述写入操作的完成。
在另一示例中,提出一种数据存储系统。所述数据存储系统包括:多个数据存储设备,被配置为:接收用于存储并且检索相关联存储介质上的数据的存储操作,所述相关联存储介质中的每一个包括磁记录(SMR)存储区域。所述多个数据存储设备中的每一个包括:存储控制系统,被配置为:接收主机系统所传送的包括用于在所述存储介质上存储写入数据的写入操作的相关联存储操作,并且响应地在所述第一存储区域中存储所述写入数据,然后传送到所述SMR存储区域中。所述存储控制系统被配置为:确定用于报告将所述写入操作从所述第一存储区域传送到所述SMR存储区域中的报告步速,所述报告步速建立从将所述写入数据存储到第一存储区域中起平缓的目标性能,以对跨过所述多个数据存储设备中的数据存储设备的性能进行标准化。所述存储控制系统被配置为:以所述报告步速报告所述写入操作的完成。
附图说明
参照下面附图可以更好地理解本公开的许多方面。附图中的组件并不一定按比例,而是着重于清楚地示出本公开的原理。此外,在附图中,在所有若干视图中相同参考编号指定对应部分。虽然结合这些附图描述若干实施例,但本公开不限于在此所公开的实施例。反之,意图是覆盖所有替换物、修改和等同物。
图1是示出数据系统的系统示图。
图2是示出数据存储驱动器的操作的方法的流程图。
图3是示出数据系统的系统示图。
图4是示出硬盘驱动器的操作的方法的流程图。
图5是示出性能估计表的示图。
图6是示出用于硬盘驱动器的写入信用度过程的示图。
图7是示出用于硬盘驱动器的读取信用度过程的示图。
具体实施方式
高密度磁存储设备采用各种存储技术。一种这样的存储技术包括:具有叠瓦式磁记录(SMR)技术的旋转数据存储驱动器。与诸如并行磁记录(PMR)之类的无重叠记录技术相比,SMR技术允许读取/写入头在物理上重叠存储介质上的相邻数据轨道。然而,采用SMR技术的设备可能导致对于随机写入的“突发式(bursty)”性能以及对于碎片化(fragmented)读取的较慢性能。突发式性能可能源自使用未采用SMR技术的存储介质上的临时存储区域或异常区域。这种临时存储区域可以用于在存档到SMR区域中之前快速地存储数据,并且从主机系统的角度来看,这种临时存储区域允许写入数据的快速处理。在很多示例中,与采用PMR技术的等效设备相比,对采用SMR技术的设备的随机写入可能产生得更快,这部分地归因于使用这种临时存储区域。
在一些情形中,可能期望对于随机写入的较快性能。然而,当在具有同时操作的许多驱动器的大数据中心中采用这些设备时,从主机系统的角度来看,这些许多驱动器的突发式性质可能导致困难。具体地,主机系统可能较不能够预测性能,并且较不能够对使用SMR技术的驱动器维持稳定的数据流。此外,大数据中心的设备到设备的变化可能在由相关联数据系统进行的数据传送、处理调度以及功耗估计方面产生困难。在本文的示例中,采用平缓(temperance)管理以抑制(throttle)随机写入完成的报告,以便调解数据存储设备的突发性能吞吐量并且为主机系统提供更一致的性能。
在数据存储设备中的平缓管理的第一示例中,呈现图1。图1是示出数据系统100的系统示图。系统100包含数据存储设备110和主机系统140。数据存储设备110和主机系统140通过存储接口130进行通信。数据存储设备110包含数据存储元件,所述数据存储元件包括一个或多个旋转存储介质111。数据存储设备110还包含:输入/输出(I/O)队列121,用于缓存从主机系统140接收到的存储操作;以及存储控制系统120,用于控制数据存储设备110的操作。
在操作中,数据存储设备110通过存储接口130接收由主机系统140所发出的读取事务或写入事务。响应于读取事务,数据存储设备110可以检索存储介质111上所存储的数据,以用于传送到主机系统140。响应于写入事务,数据存储设备110将数据存储到存储介质111上。应当理解,图1中为了清楚而省略数据存储设备110的其它组件,诸如读取/写入头、电枢、前置放大器、收发器、处理器、放大器、电机、伺服器、外壳以及其它电气和机械元件。
为了进一步示出数据系统100的操作,提供了图2。图2是示出操作数据存储设备110的方法的流程图。下面以括号方式引用图2的操作。在图2中,数据存储设备110接收(201)由主机系统140所传送的存储操作,所述存储操作包括用于在存储介质上存储写入数据的写入操作。在该示例中,由存储控制系统120通过存储链路130接收存储操作,并且将存储操作放置到I/O队列121中。这些存储操作可以包括读取操作或写入操作,但在图2中所讨论的示例中,为了清楚起见,仅讨论写入操作。
存储控制系统120在第一存储区域中存储(202)写入数据,然后传送到SMR存储区域中。在图1中,首先在第一存储区域115中缓存写入数据,然后传送到SMR存储区域116中。诸如在使用旋转磁存储介质的示例中,第一存储区域115和SMR存储区域116可以处于同一存储介质上。然而,第一存储区域115可以另外是分离的存储介质,诸如固态存储介质。在一些示例中,第一存储区域115包括用于在写入到SMR存储区域116中之前存储写入数据的“写入两次缓存”。在第一存储区域115中存储写入数据是相对快速的处理,并且以图1中的“缓存步速”所示的步速产生,其中迅速连续地处置(handle)许多写入操作。例如当同一存储介质上包含第一存储区域115和SMR存储区域116时,如图1所示,这些写入操作可能因读取操作而中断。
如上面所讨论的,这种“缓存步速”可能通过存储链路130对主机系统140呈现突发式操作,这在一些情形中可能是不期望的。为了有助于数据存储设备110的较平缓的操作,存储控制系统120可以抑制写入数据从第一存储区域115到SMR存储区域116中的传送,或者抑制将写入完成报告给主机系统140。
存储控制系统120确定(203)用于将写入操作从第一存储区域115传送到SMR存储区域116中的报告步速,所述报告步速建立从将所述写入数据存储到第一存储区域中开始平缓的目标性能。报告步速通过至少管理对主机140的写入操作完成的报告,使得写入数据到第一存储区域115中的传送的快速步速平缓成为与数据存储设备110的目标性能相称的步速。写入数据传送到SMR存储区域116中的速率在一些示例中可以修改为以报告步速而产生,并且当写入数据被传送到SMR存储区域116中时,可以产生对主机140的报告。在其它示例中,可以与以报告步速对主机140报告写入完成互不相干(decouple)地产生写入数据到SMR存储区域116中的传送,并且可以突发地执行写入数据到SMR存储区域116中的传送。
可以根据数据存储设备110的当前工作量基于使用写入操作的预计步速将写入数据传送到SMR存储区域116中的预计性能,来确定报告步速。这种预计写入步速可以基于由数据存储设备所处置的存储操作的历史跟踪,这样可以预测I/O队列121中的待定(pending)写入的性能或步速。存储控制系统120可以采用数据结构来跟踪过去存储操作的属性,从而建立由数据存储设备110处置写入数据的运行估计,并且使用该运行估计来建立报告步速,从而满足吞吐量或性能目标。在以下所讨论的示例中(诸如在图5-图7中),对于存储操作确定仿真性能或预计性能,该性能建立报告步速以维持数据存储设备对主机系统所呈现的一致目标性能。
存储控制系统120以报告步速向主机系统140报告写入操作的完成(204)。如在图1中看见的,虽然缓存步速在写入与读取之中是突发式的并且不均匀的,但报告步速是较平缓的并且稳定的。这种报告步速允许主机系统140从数据存储设备110看见可预测的并且一致的性能。在一些示例中,数据存储设备110的性能从最大性能下降,以按目标性能获得报告步速。例如,对于读取操作和写入操作,数据存储设备110可能能够支持第一高吞吐量。然而,出于各种原因,可能期望以第二较慢吞吐量来运作。这些原因可以包括:在具有许多数据存储设备的数据存储系统中跨过多个数据存储设备的匹配性能,或当不期望较高执行设备时将较低执行设备呈现给主机。
返回到图1的元件,数据存储设备110包括经由一个或多个读取/写入头和相关联机电元件可存取的一个或多个计算机可读存储介质111。存储控制系统120被示出为数据存储设备110的处理电路和接口元件的示例。数据存储设备110可以包括其它元件,诸如对于图3中的硬盘驱动器310所讨论的元件,虽然有可能存在变化。数据存储设备110可以包括硬盘驱动器或其它计算机可读存储设备。数据存储设备110的计算机可读存储介质可以包括旋转磁存储介质,但可以附加地包括诸如在I/O队列121中所采用的其它介质或数据存储设备110的其它缓存或缓存系统。这些其它介质可以包括固态存储介质、光学存储介质、非旋转磁介质、相变磁介质、基于自旋存储介质或包括其组合、变化和改进的其它存储介质。在一些示例中,除了旋转磁存储介质之外,数据存储设备110还包括采用固态存储元件的混合硬驱动器。存储介质113可以采用各种磁存储方案,诸如叠瓦式磁记录(SMR)、非叠瓦式磁记录、垂直磁记录(PMR),包括这些的组合、变化和改进。
主机系统140可以包括处理元件、数据传送元件和用户接口元件。在一些示例中,主机系统140是计算设备或计算系统的中央处理单元。在其它示例中,主机系统140还包括存储器元件、数据存储和传送元件、控制器元件、逻辑元件、固件、执行元件以及其它处理系统组件。在另外其它示例中,主机系统140包括RAID控制器处理器或存储系统中央处理器,诸如微处理器、微控制器、现场可编程门阵列(FPGA)或其它处理和逻辑器件,包括这些的组合。主机系统140可以包括用户接口元件,或与用户接口元件进行接口连接,所述用户接口元件可以允许数据存储系统100的用户来控制数据存储系统100的操作或监控数据存储系统100的状态或操作。这些用户接口元件可以包括图形或文本显示器、指示灯、网络接口、web接口、软件接口、用户输入设备或其它用户接口元件。主机系统140还可以包括接口电路以及用于处置总线130上的通信的元件,诸如逻辑、处理部分、缓冲器、收发器等。
总线130可以包括一个或多个串行数据链路或并行数据链路,诸如外围组件互连高速(PCIe)接口、串行ATA接口、串行连接小型计算机系统(SAS)接口、集成驱动电子(IDE)接口、ATA接口、通用串行总线(USB)接口、无线接口、直接介质接口(DMI)、以太网接口、联网接口或包括其组合、变化和改进的其它通信和数据接口。虽然图1中示出一条总线130,但应当理解,在数据存储系统100的各元件之间可以采用一条或多条分立式链路。
作为采用数据存储驱动器的另一示例数据存储系统,呈现了图3。图3是示出数据存储系统300的系统示图。数据存储系统300包括硬盘驱动器(HDD)310和主机系统390。HDD 310和主机系统390通过存储链路330进行通信。图1的数据存储设备110中可以包括HDD 310的各种元件,但可能存在变化。
虽然图3中示出了一个HDD 310,但应当理解,例如在采用阵列中的许多硬盘驱动器的数据存储环境中,一个以上HDD可以被包括并且链接到主机系统390或其它主机系统。作为阵列中的一个以上HDD的示例,图3中包括HDD 350-351,并且HDD 350-351中的每一个可以包括诸如对于链路330所讨论的相关联主机接口或存储链路。
虽然图3中示出了组合链路,但存储链路330可以包括一条或多条链路。存储链路330可以包括存储或盘接口,诸如串行连接ATA(SATA)、串行连接SCSI(SAS)、光纤通道、通用串行总线(USB)、SCSI、无限频带(InfiniBand)、外围组件互连高速(PCIe)、以太网、互联网协议(IP)或包括其变化和组合的其它并行或串行存储或外设接口。
主机系统390可以包括一个或多个计算和网络系统,诸如个人计算机、服务器、云存储系统、分组网络、管理系统或包括其组合和变化的其它计算机和网络系统。在操作中,主机系统390通过存储链路330向HDD 310发出读取和写入命令或操作。
HDD 310包括存储介质311、R/W头312和存储控制系统370。存储控制系统370包括处理电路371、存储器372、主机接口(I/F)374和I/O队列373。应当理解,图3中为了清楚起见,省略了HDD 310的其它组件,诸如前置放大器、放大器、电机、电枢、伺服器、外壳以及其它电气和机械元件。此外,存储控制系统370包括固件373,该固件373包括性能估计器380、缓存处置器381和主机报告器382,该固件373在至少由处理电路371执行时如以下所描述地运作。HDD 350-351可以包括与HDD 310相似的元件,但可能存在变化。
主机接口374包括一个或多个存储接口,以用于与主机系统、网络等进行通信。主机接口374可以包括收发器、接口电路、连接器、缓冲器、微控制器以及其它接口装备。
I/O队列373包括一个或多个非易失性计算机可读存储器设备。除了其它存储器技术之外,I/O队列373还可以包括RAM、SRAM、闪存、磁RAM、相变存储器、电阻式随机存取存储器(ReRAM)。在一些示例中,I/O队列373被包括在一个或多个非易失性存储器设备中。例如,I/O队列373可以被包括在用于缓存存储事务的非易失性存储器设备中。I/O队列373可以被包括在主机接口374、处理电路371或存储器372的元件中。采用I/O队列373作为通过主机接口374接收到的缓存存储操作,其可以包括读取操作或写入操作以及伴随写入操作的任何相关联写入数据。I/O队列373被配置为保存通过链路330接收到的存储操作,以用于由存储控制系统370进行处置。
存储控制系统370还包括处理电路371和存储器372。处理电路371可以包括从存储器372检索并且执行固件373的一个或多个微处理器以及其它电路。处理电路371可以实现于单个处理设备内,但也可以跨过在执行程序指令中协作的多个处理设备或子系统而分布。处理电路371的示例包括通用中央处理单元、专用处理器和逻辑器件以及任何其它类型的处理设备、其组合或变化。
存储器372可以包括可由处理电路371读取并且能够存储固件373的任何非瞬时计算机可读存储介质。存储器372可以包括通过任何方法或技术所实现的用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的易失性和非易失性、可移除和不可移除介质。除了存储介质之外,在一些实现方式中,存储器372还可以包括能够对固件373进行通信的通信介质。虽然存储器372可以实现为单个存储设备,但也可以跨过相对于彼此共置(co-located)或分布的多个存储设备或子系统而得以实现。存储器372可以包括能够与处理电路371进行通信的附加元件(诸如控制器)。存储器372的存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、相变存储器、磁盒、磁带、磁盘存储或其它磁存储设备或任何能够用于存储期望的信息并且能够由指令执行系统存取的其它介质及其任何组合或变形或任何其它类型的存储介质。
固件373、性能估计器380、缓存处置器381和主机报告器382可以实现于程序指令中,并且除了其它功能之外,固件373、性能估计器380、缓存处置器381和主机报告器382在一般地由HDD 310执行或具体地由处理电路371执行时,可以命令(direct)HDD 310或处理电路371如在此所描述地运作。固件373可以包括附加处理、程序或组件,诸如操作系统软件、数据库软件或应用软件。固件373、性能监视器380和缓存处置器381还可以包括可由处理电路371执行的软件或某些其它形式的机器可读处理指令。在至少一个实现方式中,除了其它操作之外,程序指令可以包括第一程序指令,其命令存储控制系统370接收写入操作并且响应地在第一存储区域中存储写入数据,然后传送到SMR存储区域中(缓存处置器381);确定用于将写入操作从第一存储区域传送到SMR存储区域中的报告步速(性能估计器380);并且以报告步速将写入操作的完成报告给主机系统(主机报告器382)。
通常,固件373在被加载到处理电路371中并且执行时,可以使处理电路371整体从通用计算系统变换为定制为如在此所描述地运作的专用计算系统。存储器372上的编码固件373可以将存储器372的物理结构进行变换。在该说明书的不同实现方式中,物理结构的特定变换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现存储器372的存储介质的技术以及计算机存储介质被表征为主存储装置还是次存储装置。例如,如果计算机存储介质被实现为基于半导体的存储器,则当在此对程序进行编码时,固件373可以对半导体存储器的物理状态进行变换。例如,固件373可以变换构成半导体存储器的晶体管、电容器或其它分立式电路元件的状态。相似的变换可以相对于磁介质或光学介质而产生。在不脱离本描述的范围的情况下,物理介质的其它变换是可能的,其中,提供前述示例仅为促进该讨论。
为了进一步说明系统300和HDD 310的操作,呈现了图4。图4是示出HDD 310的操作的方法的流程图。下面以括号方式引用图4的操作。在图4中,HDD 310接收(401)由主机系统390所传送的存储操作320,所述存储操作320包括用于在存储介质上存储写入数据的写入操作以及用于检索数据的读取操作。写入操作可以伴随有写入数据,或HDD 310可以随后响应于接收到对应的写入操作而从主机系统390请求写入数据。读取操作可以针对HDD 310先前所存储的数据,诸如先前写入到存储介质311的数据,或者读取操作可以针对与数据相关联的元数据,所述元数据除了其它元数据之外还可以包括文件名、目录/文件夹列表或文件属性。
一旦通过主机接口374接收到存储操作320,存储操作320就被放置到I/O队列373中,以用于由存储控制系统370在处置前进行分级(stage)。为了更高效地使用HDD 310和R/W头312,可以建立I/O队列中所包括的存储操作的乱序执行。
存储控制系统370将写入数据存储(402)在缓存区(zone)315中,然后传送到SMR区316中。在一些示例中,第一存储区域315包括用于在写入到SMR区316中之前存储写入数据的“写入两次缓存”。当存储操作是写入操作时,相关联写入数据在交付(commit)到SMR区316中之前被分级到存储介质311的缓存区315中。这种进入缓存区315中的分级处理可以在通过主机链路330接收到写入数据之后快速地产生。针对主机系统390可能不期望的随机写入操作,快速分级到缓存区315中可以将突发式操作正常地呈现给主机系统390,如上面在其它示例中所讨论的。因此,通过使用与HDD310的数据操作分离的仿真性能来平缓对主机系统390的写入完成报告,以此来代替在写入数据被分级到缓存区315中时报告随机写入操作的完成。在其它示例中,例如在采用可以包括易失性存储器设备或非易失性存储器设备的固态写入缓存的混合硬驱动器中,采用并非处于存储介质311上的写入缓存。在具有分离的写入缓存的示例中,写入数据可以被分级到分离的写入缓存而非缓存区315中,并且稍后从分离的写入缓存将写入数据解分级
(de-stage)或交付到SMR区316。在此所讨论的技术应用于采用缓存区315的设备或具有分离写入缓存的设备。
存储控制系统370通过基于存储介质上的分区范围以及跨过分区范围的与存储操作相关联的估计队列深度,来确定写入操作中的每一个的期待完成时间,由此来生成(403)写入操作的仿真性能。对于仿真性能,从先入先出(FIFO)数据结构(诸如图5的FIFO 510)的顶部标识写入操作中的当前操作,其指示对于目标操作511而确定估计完成时间。新接收到的写入操作被引入到图5中的“左”侧上的FIFO 510中。仿真性能的示例可见于以下所讨论的图5-图7。
在仿真性能方面,对于当前正处置的每个写入操作来标识分区范围。分区范围用于将写入操作分类为在存储介质311上的用于R/W头312的若干角度扫描范围之一,并且将在以下更详细地讨论。应当注意,分区范围与用于将驱动器盘符(letter)分配给存储部分或用于在逻辑上将较大存储区块再划分为较小区块以便在主机系统390或其它相关联端用户数据系统的文件系统操作中使用的面向用户的逻辑分区是无关的。
估计队列深度用于估计对于主机接口374所使用的队列深度,诸如,在未获知所采用的实际队列深度的情况下估计I/O队列373的深度。主机系统390可能在运行中(on-the-fly)多次调整用于HDD 310的队列深度,并且存储控制系统370对该队列深度可能不具有可视性。因此,存储控制系统370可以估计队列深度,并且这将在以下更详细地讨论。
至少使用分区范围和估计队列深度,存储控制系统370可以确定用于任何特定随机写入操作的估计完成时间。随机写入包括对存储介质311的非确定性或随机位置的写入,并且不同于与对存储介质311上的相似位置的若干其它写入操作相结合而产生的顺序写入。HDD 310的随机写入性能大部分取决于R/W头312必须移动多远以找寻用于写入操作的正确轨道/块以及对于主机系统390的存储操作当前所采用的队列深度。因此,为了对写入性能进行估计,存储控制系统370可以维持分区大小和队列深度的运行历史。
许多时候,主机系统将具有在存储介质311上的时间和物理邻域中存储并且检索数据的一个或多个处理(诸如应用)。例如,由于具有用于应用的彼此邻近的存储块,主机系统390上所执行的第一应用(或使用主机系统390以存储/检索数据的另一数据系统上的第一处理)可以在R/W头312的小角度扫描范围内存储并且检索数据。该角度扫描范围在此称为分区范围。在非旋转存储介质中,分区范围可以另外包括存储介质上彼此邻近的存储器块或地址的范围。
为了确定每个写入操作的分区范围,存储控制系统370维持与对存储介质的多个子部分进行的预定数量的过去存储操作的计数有关的数据结构。存储控制系统370可以基于跨越与写入操作中的当前操作的存储位置邻近的存储介质的子部分中的一个或多个的阈值窗,来对于当前写入操作使用该数据结构,由此标识分区范围。
例如,在图5中,可以建立表520,以标识分区范围。表520将存储介质311再划分为100个子部分,其中每个子部分表示用于R/W头312的小角度扫描范围。如果R/W头312的角度扫描范围等于“X”,则表520中的每一列表示X/100的角度范围。表520的这种行程(stroke)%可以表示块地址的对应数量,以将存储介质311再划分为很多连续的块地址范围。在表520的“扫描范围计数”中登记(tally)对每个扫描范围进行的存储操作的运行计数。例如,除了其它值之外,表520还可以登记最新“Y”数量的存储操作(诸如最新1024或512个存储操作)。存储操作的最新数量可以受表520监控,以基于存储介质311上的R/W头312的相关联角度位置而记录每个存储操作可以指向(direct)存储介质311上的哪个位置。作为特定示例,通过将与目标操作511相关联的块地址与存储介质311的行程%进行比较,目标操作511被示出为指向行程%列6。如表520中所指示的,行程%列6在过去“Y”数量的存储操作中已经具有两个先前存储操作(写入或读取)。
然后可以使用阈值窗来标识与目标操作511相关联的分区范围。可以使用该阈值窗在表520中标识过去某一点过去存储操作的数量在何处在数量方面减少。例如,阈值可以设置为“1”,在列6的任一侧上搜索表520,以标识过去存储事务的数量何时落入阈值数量之下。在图5中,由于列3指示“0”个过去存储操作并且列10指示“1”个过去存储操作,因此该窗示出为跨越列4到列10。因此,目标操作511与对应于7%的扫描范围的七个列4-10所指示的特定分区范围相关联。然后使用目标操作511的该扫描范围作为列标识符,以在表530中查找估计性能。
然而,还必须对于目标操作511确定与表530的特定行对应的估计队列深度。应当注意,表530仅具有有限数量的项,并且因此当用于目标命令的值落入各行或列其间时,就可以执行内插处理以确定估计完成时间。可替代地,可以通过将用于特定目标操作的分区范围或队列深度取整为附近列或行来选择行或列。
为了确定用于目标操作511的估计队列深度,存储控制系统370被配置为:通过建立针对分区范围上的行程%列中的每一个所接收到的新近存储操作的计数并且对分区范围上的新近存储操作的计数进行求和,来对于目标操作511标识跨过分区范围的用于目标操作511的估计队列深度。如图5的表520中可见,分区范围是从列4到列10。跨过该分区范围的“主机队列深度计数”行中的求和项导致了估计队列深度8。对于主机队列深度计数所使用的计数典型地包括比扫描范围计数更小量的过去存储操作。例如,如果扫描范围计数与最新1024或512个存储操作对应,则主机队列深度计数可以与最新10个存储操作对应。主机队列深度计数行中所计数的过去存储事务的数量可以对应于FIFO 510中所使用的FIFO深度,但可以使用其它数量,包括在操作期间所调整的数量。
一旦确定了估计队列深度,那么行(估计队列深度)和列(分区范围)二者就与用于目标操作511的表530中的估计完成时间项对应。使用分区范围和估计队列深度作为对将估计完成时间与HDD 310的分区范围和估计队列深度进行联系的表530的索引。可以在分区范围和估计队列深度的值中的每一个值的上下文中,基于用于示例性随机写入操作的平均完成时间,对HDD 310预先计算估计完成时间。在其它示例中,可以在运行中计算估计完成时间,而非采用预先计算出的值的查找表。
如果写入操作与大于预先计算出的大小的写入数据大小对应,则可以包括用于较大数据大小的附加时间。例如,图5中所示的公式540可以用于基于4千字节(KB)写入大小来预先计算对于表530中的每个行-列组合的项。如果当前写入(例如目标写入命令511)与大于4KB的写入数据对应,则使用公式540来考虑该附加大小。
一旦对于特定写入操作(诸如对于目标写入命令511)确定估计完成时间,那么存储控制系统370就可以在用于在存储链路330上建立报告步速的仿真写入处理中使用该估计完成时间。
作为一个示例仿真处理,呈现了图6。图6包括指示覆盖写入和读取(具体地,writen-1、writen、readn+1以及writen+2)的示例时间轴(timeline)的用于仿真写入处理的时间轴的图600。应当注意,在该示例中,writen-1、writen和writen+2是随机写入。写入和读取持续时间在时间轴之下被指示为界定(bracketed)时间跨段。可以根据用于每个写入的仿真界定时间跨段(例如在每个写入时间跨段的开始或在每个写入时间跨段的结束)将写入报告给主机系统。
可以在写入已经产生并且计算周期性估计写入时间之后,跟踪周期性写入时间信用度(credit)。在时间610,发出或检查写入信用度。在一些情况下,例如当随机写入自从最新写入信用度已经发出到总账(ledger)384以来尚未先前产生时,无需进行写入信用度。假设在时间610无需写入信用度,则写入信用度不发出到总账384中。在时间620,对于作为图6中的writen的写入(具体地,对于待包括于时间轴中的下一写入)计算估计完成时间。接下来,在时间611,检查写入信用度,以查看是否应当发出信用度,并且由于writen-1已经恰好产生在仿真时间轴中,因此与用于writen-1的估计完成时间对应的信用度就发出到总账384中。
在writen-1的所完成的仿真之后,writen的仿真产生。在writen的情况下,顺序写入突发630在顺序写入突发的性能期间中断仿真。顺序写入突发是由与顺序存储位置对应的HDD 310接收到的一系列写入操作,并且可以是在相关联报告中没有缓存或进行平缓的对SMR区316的突发。当主机390在特定时刻及时执行大的写入操作的突发而非随机单独写入操作时,这可能是优选的。一旦已经完成顺序写入突发,则仿真就可以继续。
在时间621,在此情况下对于下一写入(即writen+2)计算另一估计完成时间。在时间612,检查写入信用度,并且由于自从最新写入信用度检查以来尚未完成写入,于是不发出信用度。在时间613,检查另一写入信用度,并且由于自从最新写入信用度检查以来完成了writen,于是向总账384发出写入信用度。
最后,已经发出足够的写入信用度,并且提示写入缓存交付处理631。写入缓存交付处理631是突发操作,其将与写入操作相关联的待定写入数据从缓存区315传送(406)到SMR区316中。虽然在一些示例中,如仿真中的界定时间跨段对于每个写入操作所指示的,写入数据可以从缓存区315传送到SMR区316中,但在该示例中,突发用于将写入数据的群组传送到SMR区316中。例如当全满(fullness)缓存区315达到全满阈值时,触发条件可以发起写入缓存交付处理631。其它触发条件可以包括何时足够的写入时间信用度已经发出到总账384中以超过时间信用度阈值。一旦写入缓存交付处理631产生,则总账384就减去与写入缓存交付处理631所完成的写入操作对应的信用度。
如上所述,对主机系统390的写入操作的完成的报告(450)可以与基于图6所示的写入的仿真时间的界定时间跨段相称地产生,或可以另外在写入缓存交付处理631已经将写入数据传送到SMR区314中时产生。
在时间622,在此情况下对于图6中未示出的稍后写入,计算另一估计完成时间。在时间614,检查写入信用度,并且由于自从最新写入信用度检查以来尚未完成写入,于是不发出信用度。在时间615,检查写入信用度,并且由于已经最新产生读取,于是不发出信用度。在时间623,对于作为图6未示出的写入(具体地,对于待包括于时间轴中的下一写入)计算估计完成时间。对于其它写入操作,可以继续进行例如图6中的仿真。
存储控制系统370确定(404)报告步速,以基于用于非顺序读取的读取损失(penalty)所调整的写入操作中的每一个的期待的完成时间而建立主机接口吞吐量速率。至于图6中所见的仿真写入操作,当建立报告步速时,也可以考虑读取操作的记账(accounting)。图7示出了用于HDD 310的读取操作的示例记账的示例。
当存储操作是读取操作时,典型地以从主机系统390进行接收的步速执行读取操作。通常,期望从存储介质311检索读取数据并且尽快传送到主机系统390,以减少对于主机系统390的延时和操作延迟。然而,当目标为待读取的数据已经存储在SMR区316中时,可以产生至少两种类型的读取操作。第一类型是顺序读取,其中,待读取的目标数据存储在SMR区316中的物理顺序块中。在该第一类型的读取中,一旦R/W头312定位在与待读取的目标数据对应的第一数据块上,就可以相对快速地执行读取,并且没有中断。第二类型的读取是非顺序读取或碎片化读取,其中,待读取的目标数据存储在并非物理顺序的SMR区316中的块中,并且因而R/W头312必须多于一次地定位,以读取所有目标数据,这样由于R/W头312的寻找时间而添加了延时。R/W头312的重新定位将延迟添加到检索所有目标读取数据中,并且可能降低HDD 310对主机系统390所呈现的性能。应当理解,读取可以产生在顺序块和非顺序块的组合中。
返回到图7,读取操作被示出为在其至少一部分与非顺序读取操作对应的情况下而产生。该情况可以被称为碎片化读取,其中,将要从存储介质311读取的数据分散在非顺序存储位置上,并且R/W头312必须重新定位读取操作的中间读取(mid-read)或中间突发(mid-burst)。时间信用度总账383可以被建立为数据结构,以监控碎片化读取的损失。这些时间损失可以用于缩短稍后的写入仿真时间,以抵消用于碎片化读取操作的时间损失。具体地,在图7中,用于writen+1的持续时间缩短了由于先前碎片化读取的损失的量。报告步速可以因此得以建立,以缩短写入报告延迟,从而抵消来自碎片化读取的延迟,并且维持对主机系统390所呈现的一致吞吐量。虽然时间信用度总账383被示出为与图3中的总账384分离,但在其它示例中,它们被包括于同一总账或相关联数据结构中。
存储控制系统370以报告步速将写入操作的完成报告(405)给主机系统。基于写入操作的仿真性能,报告步速得以建立,并且目标性能由HDD 310呈现给主机系统390。例如,如果期望目标性能比HDD 310的潜在吞吐量更慢,则可以建立报告步速,以降低HDD 310的性能,从而满足目标性能。在其它示例中,随机写入操作如主机系统390所观测到的那样太“突发”,并且HDD 310进行的平缓操作是期望的,于是平缓操作可以包括报告步速,其与将数据实际写入到缓存区315或SMR区316中互不相干地报告写入完成。这种互不相干可以针对HDD 310所接收到的写入操作将所抑制的状态报告建立为写入完成的稳定或平缓报告,并且将更一致的完成速率呈现给主机系统390。
在采用许多存储设备(例如HDD阵列或大数据中心)的示例中,在此所讨论的平缓报告可以增强现有的或新的数据存储设备的操作。一致的写入报告可以导致更可预测的性能,这样可以有助于各种存储操作下的主机系统。可以跨过很多存储设备建立关于写入操作对主机系统(或多个主机系统)所呈现的一致吞吐量。例如,多个数据存储设备可以被配置为如在此所讨论地运作,以使得跨过彼此的性能标准化(normalize)或均衡化,例如,以对于多个数据存储设备中的每一个提供一致的或匹配的吞吐量。这些数据存储设备可以被预先配置为以对主机所呈现的预定性能来运作,或可以在操作期间被配置为修改或改动性能目标。此外,当安装新的或替换数据存储设备时,在此所讨论的平缓性能技术可以用于将新的或替换设备的性能与现有数据存储设备的性能进行匹配。在其它示例中,即使新的或替换设备正常地经历更快或更突发的操作,也可以通过平缓性能来实现可能对于较旧型号或类型的数据存储驱动器的性能进行匹配而采用的数据存储设备的后向兼容性。在另外其它示例中,可以使用在此所讨论的平缓来实现包括不同品牌、速度或类型的各种数据存储设备的特性的均衡化或标准化。
为了跨过多个数据存储设备(例如存储阵列中的很多HDD)协调匹配的、均衡的或标准化的性能,吞吐量匹配指令可以传送到每个设备。每个HDD外部的系统可以通过存储链路将目标性能指示符传送到数据存储设备。例如,在图3所示的示例中,主机系统390可以通过相关联存储链路将抑制指令传送到图3所示的每个HDD(310以及350-351)。这些抑制指令可以包括用于每个HDD的目标性能(例如每秒输入/输出操作(IOPS)、比特每秒或使用任何其它相关联度量的目标性能的指示符)。在其它示例中,每个HDD可以传送峰值或最大性能的指示,以用于传递到主机系统390,并且主机系统390可以标识用于每个HDD的目标性能,以满足目标性能并且将其传送到每个HDD,以用于在此所讨论的平缓性能。
所包括的说明书和附图描述特定实施例,以教导本领域技术人员如何进行并且使用最佳模式。为了教导本发明原理的目的,已经简化或省略了一些传统方面。本领域技术人员应当理解落入本发明的范围内的来自这些实施例的适当变化。本领域技术人员还应当理解,以上所描述的特征可以通过各种方式组合,以形成多个实施例。因此,本发明不限于以上所描述的具体示例,而仅由权利要求及其等同物限定。
Claims (20)
1.一种数据存储设备,包括:
存储介质,包括第一存储区域和叠瓦式磁记录SMR存储区域;
存储控制系统,其被配置为通过主机接口接收包括用于在存储介质上存储写入数据的写入操作的存储操作,并且响应地在第一存储区域中存储所述写入数据,然后传送到SMR存储区域中;
所述存储控制系统被配置为确定与将所述写入操作从第一存储区域传送到SMR存储区域中相关联的报告步速,所述报告步速通过主机接口建立从将所述写入数据存储到第一存储区域中起平缓的目标性能;以及
所述存储控制系统被配置为以所述报告步速通过主机接口报告所述写入操作的完成。
2.如权利要求1所述的数据存储设备,包括:
所述存储控制系统被配置为在第一存储区域中存储所述写入数据,而不通过主机接口报告所述写入操作的完成,其中以比所述报告步速更快的步速在第一存储区域中存储所述写入数据。
3.如权利要求1所述的数据存储设备,包括:
所述存储控制系统被配置为生成所述写入操作的仿真性能,以建立报告步速。
4.如权利要求3所述的数据存储设备,包括:
所述存储控制系统被配置为通过至少部分地基于存储介质上的分区范围以及跨过所述分区范围的存储操作的估计队列深度而确定所述写入操作中的每一个的期待完成时间,来生成所述写入操作的仿真性能;以及
所述存储控制系统被配置为至少部分地基于所述写入操作中的每一个的期待完成时间,建立报告步速。
5.如权利要求4所述的数据存储设备,包括:
所述存储控制系统被配置为维持与对存储介质的多个子部分进行的预定数量的过去存储操作的计数有关的数据结构;
所述存储控制系统被配置为基于跨越所述写入操作中的当前写入操作的存储位置附近的所述多个子部分中的一个或多个的阈值窗,标识所述写入操作中的当前写入操作的分区范围。
6.如权利要求5所述的数据存储设备,包括:
所述存储控制系统被配置为通过建立针对存储介质的所述多个子部分所接收的新近存储操作的计数并且对所述分区范围上的新近存储操作的计数进行求和,来标识跨过所述分区范围的存储操作的估计队列深度。
7.如权利要求4所述的数据存储设备,包括:
所述存储控制系统被配置为通过使用所述分区范围以及所述写入操作中的每一个的估计队列深度作为对将估计完成时间与数据存储设备的多个分区范围和多个估计队列深度进行联系的数据结构的索引,来确定所述写入操作中的每一个的期待完成时间。
8.如权利要求7所述的数据存储设备,其中,在多个分区范围和多个估计队列深度的值中的每一个值的上下文中,基于示例性随机写入操作的平均完成时间,对数据存储设备预先计算估计完成时间。
9.如权利要求1所述的数据存储设备,其中通过主机接口所传送的存储操作还包括用于检索在存储介质上存储的数据的读取操作;并且包括:
所述存储控制系统被配置为标识所述读取操作中的读取操作何时指向SMR存储区域中非顺序存储的数据,响应地确定所述读取操作中的读取操作的时间损失,并且使用所述时间损失来缩短所选择的写入操作的完成时间,以维持报告步速。
10.一种操作数据存储设备的方法,所述方法包括:
接收通过主机接口传送的包括用于在存储介质上存储写入数据的写入操作的存储操作,并且响应地在存储介质的第一存储区域中存储所述写入数据,然后传送到存储介质的SMR存储区域中;
确定用于报告所述写入操作从第一存储区域到SMR存储区域中的传送的报告步速,所述报告步速通过主机接口建立从将所述写入数据存储到第一存储区域中起平缓的目标性能;以及
以所述报告步速通过主机接口报告所述写入操作的完成。
11.如权利要求10所述的方法,还包括:
在第一存储区域中存储所述写入数据,而不通过主机接口报告所述写入操作的完成,其中以比所述报告步速更快的步速在第一存储区域中存储所述写入数据。
12.如权利要求10所述的方法,还包括:
生成用于所述写入操作的仿真性能,以建立所述报告步速。
13.如权利要求12所述的方法,其中,生成所述写入操作的仿真性能包括:至少部分地基于存储介质上的分区范围以及跨过所述分区范围的存储操作的估计队列深度来确定所述写入操作中的每一个的期待完成时间;并且所述方法还包括:
至少部分地基于所述写入操作中的每一个的期待完成时间,建立报告步速。
14.如权利要求13所述的方法,还包括:
维持与对存储介质的多个子部分进行的预定数量的过去存储操作的计数有关的数据结构;
基于跨越所述写入操作中的当前写入操作的存储位置附近的所述多个子部分中的一个或多个的阈值窗,标识所述写入操作中的当前写入操作的分区范围。
15.如权利要求14所述的方法,还包括:
通过建立针对存储介质的所述多个子部分所接收的新近存储操作的计数并且对所述分区范围上的新近存储操作的计数进行求和,来标识跨过所述分区范围的存储操作的估计队列深度。
16.如权利要求13所述的方法,还包括:
通过使用所述分区范围以及所述写入操作中的每一个的估计队列深度作为对将估计完成时间与数据存储设备的多个分区范围和多个估计队列深度进行联系的数据结构的索引,来确定所述写入操作中的每一个的期待完成时间。
17.如权利要求16所述的方法,其中,在多个分区范围和多个估计队列深度的值中的每一个值的上下文中,基于示例性随机写入操作的平均完成时间,对数据存储设备预先计算估计完成时间。
18.如权利要求10所述的方法,其中,通过主机接口所传送的存储操作还包括用于检索在存储介质上存储的数据的读取操作;并且所述方法包括:
标识所述读取操作中的读取操作何时指向SMR存储区域中非顺序存储的数据,响应地确定所述读取操作中的读取操作的时间损失,并且使用所述时间损失来缩短所选择的写入操作的完成时间,以维持报告步速。
19.一种数据存储系统,包括:
多个数据存储设备,其被配置为接收用于存储和检索相关联存储介质上的数据的存储操作,所述相关联存储介质中的每一个包括磁记录SMR存储区域;
所述多个数据存储设备中的每一个包括:
存储控制系统,其被配置为接收由主机系统所传送的包括用于在存储介质上存储写入数据的写入操作的相关联存储操作,并且响应地在第一存储区域中存储所述写入数据,然后传送到SMR存储区域中;
所述存储控制系统被配置为确定用于报告所述写入操作从第一存储区域传送到SMR存储区域中的报告步速,所述报告步速建立从将所述写入数据存储到第一存储区域中起平缓的目标性能,以使得跨过所述多个数据存储设备中的数据存储设备的性能标准化;以及
所述存储控制系统被配置为以所述报告步速来报告所述写入操作的完成。
20.如权利要求19所述的数据存储系统,包括:
所述存储控制系统被配置为通过至少部分地基于存储介质上的分区范围以及跨过所述分区范围的存储操作的估计队列深度而确定所述写入操作中的每一个的期待完成时间,来生成所述写入操作的仿真性能;以及
所述存储控制系统被配置为至少部分地基于所述写入操作中的每一个的期待完成时间,建立报告步速。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/620,397 | 2015-02-12 | ||
US14/620,397 US9417814B1 (en) | 2015-02-12 | 2015-02-12 | Tempered pacing of shingled magnetic storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105892936A true CN105892936A (zh) | 2016-08-24 |
Family
ID=55697549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610086650.1A Pending CN105892936A (zh) | 2015-02-12 | 2016-02-15 | 性能平缓的数据存储设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9417814B1 (zh) |
CN (1) | CN105892936A (zh) |
DE (1) | DE102016001682A1 (zh) |
GB (1) | GB2537713A (zh) |
IE (1) | IE20160049A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776452A (zh) * | 2016-12-14 | 2017-05-31 | 英业达科技有限公司 | 服务器系统 |
CN110134572A (zh) * | 2018-02-02 | 2019-08-16 | 伊姆西Ip控股有限责任公司 | 验证存储系统中的数据 |
CN110827861A (zh) * | 2018-08-13 | 2020-02-21 | 希捷科技有限公司 | 使用多个卷提供复制的多致动器驱动器 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10001932B2 (en) * | 2015-06-09 | 2018-06-19 | Western Digital Technologies, Inc. | Enhanced redundant caching for shingled magnetic recording devices in data storage drive assemblies |
US10698815B2 (en) * | 2015-06-30 | 2020-06-30 | Western Digital Technologies, Inc. | Non-blocking caching for data storage drives |
US11048645B2 (en) * | 2018-02-01 | 2021-06-29 | Samsung Electronics Co., Ltd. | Memory module, operation method therof, and operation method of host |
US11669267B2 (en) * | 2018-02-09 | 2023-06-06 | Western Digital Technologies, Inc. | Completion entry throttling using host memory |
US10884658B2 (en) * | 2018-02-09 | 2021-01-05 | Western Digital Technologies, Inc. | Completion entry throttling using data storage controller |
TWI658360B (zh) * | 2018-04-13 | 2019-05-01 | 宏碁股份有限公司 | 儲存系統及儲存方法 |
US10991387B1 (en) | 2020-03-27 | 2021-04-27 | Western Digital Technologies, Inc. | Data storage device migrating data from non-energy assist disk surface to energy assist disk surface |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458737C (zh) * | 2006-01-03 | 2009-02-04 | 国际商业机器公司 | 在固定大小高速缓存中调整写请求数目的装置、系统和方法 |
US7702871B1 (en) * | 2007-08-31 | 2010-04-20 | Emc Corporation | Write pacing |
US20130321948A1 (en) * | 2012-06-04 | 2013-12-05 | Zvonimir Z. Bandic | Shingled magnetic recording disk drive with compensation for the effect of far track erasure (fte) on adjacent data bands |
US20140029126A1 (en) * | 2012-07-25 | 2014-01-30 | Kabushiki Kaisha Toshiba | Disk storage apparatus and data protection method |
US8707003B1 (en) * | 2010-09-29 | 2014-04-22 | Emc Corporation | Rate control for asynchronous data replication |
US8843714B1 (en) * | 2011-03-30 | 2014-09-23 | Emc Corporation | Write pacing simulation tool |
US20140285923A1 (en) * | 2013-03-19 | 2014-09-25 | Kabushiki Kaisha Toshiba | Disk storage apparatus and data storage method |
US8922930B1 (en) * | 2012-10-11 | 2014-12-30 | Seagate Technology Llc | Limit disc nodes by band usage |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122216B2 (en) | 2006-09-06 | 2012-02-21 | International Business Machines Corporation | Systems and methods for masking latency of memory reorganization work in a compressed memory system |
KR20140040870A (ko) | 2009-07-07 | 2014-04-04 | 엘에스아이 코포레이션 | 계층화된 비휘발성 스토리지를 위한 시스템 및 방법 |
US8913335B2 (en) | 2011-05-23 | 2014-12-16 | HGST Netherlands B.V. | Storage device with shingled data and unshingled cache regions |
US8954689B2 (en) | 2011-06-30 | 2015-02-10 | Seagate Technology Llc | Limiting activity rates that impact life of a data storage media |
US8793431B2 (en) * | 2012-03-17 | 2014-07-29 | HGST Netherlands B.V. | Shingled magnetic recording disk drive with inter-band disk cache and minimization of the effect of far track erasure on adjacent data bands |
US8874875B2 (en) | 2012-06-29 | 2014-10-28 | HGST Netherlands B.V. | ICC-NCQ command scheduling for shingle-written magnetic recording (SMR) Drives |
US8699162B1 (en) * | 2012-11-18 | 2014-04-15 | HGST Netherlands B.V. | Shingled magnetic recording disk drive with multiple data zones containing different numbers of error-correction-code sectors |
US9612956B2 (en) * | 2013-03-15 | 2017-04-04 | Seagate Technology Llc | Multi-tiered caching for data storage management in a device |
US9323630B2 (en) * | 2013-09-16 | 2016-04-26 | HGST Netherlands B.V. | Enhanced data recovery from data storage devices |
US8922925B1 (en) * | 2013-12-09 | 2014-12-30 | HGST Netherlands B.V. | Actively written guard bands in a cold storage or mixed mode drive |
US9489145B2 (en) * | 2013-12-09 | 2016-11-08 | HGST Netherlands B.V. | Disk drive including I-regions having configurable final logical block addresses |
US8941943B1 (en) * | 2013-12-09 | 2015-01-27 | HGST Netherlands B.V. | Dynamic variable capacity hard disk drive |
US8947817B1 (en) * | 2014-04-28 | 2015-02-03 | Seagate Technology Llc | Storage system with media scratch pad |
US9269376B1 (en) * | 2015-06-30 | 2016-02-23 | HGST Netherlands B.V. | Efficient burst data verify in shingled data storage drives |
-
2015
- 2015-02-12 US US14/620,397 patent/US9417814B1/en active Active
-
2016
- 2016-02-11 IE IE20160049A patent/IE20160049A1/en not_active IP Right Cessation
- 2016-02-11 GB GB1602447.3A patent/GB2537713A/en not_active Withdrawn
- 2016-02-12 DE DE102016001682.5A patent/DE102016001682A1/de not_active Withdrawn
- 2016-02-15 CN CN201610086650.1A patent/CN105892936A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100458737C (zh) * | 2006-01-03 | 2009-02-04 | 国际商业机器公司 | 在固定大小高速缓存中调整写请求数目的装置、系统和方法 |
US7702871B1 (en) * | 2007-08-31 | 2010-04-20 | Emc Corporation | Write pacing |
US8707003B1 (en) * | 2010-09-29 | 2014-04-22 | Emc Corporation | Rate control for asynchronous data replication |
US8843714B1 (en) * | 2011-03-30 | 2014-09-23 | Emc Corporation | Write pacing simulation tool |
US20130321948A1 (en) * | 2012-06-04 | 2013-12-05 | Zvonimir Z. Bandic | Shingled magnetic recording disk drive with compensation for the effect of far track erasure (fte) on adjacent data bands |
US20140029126A1 (en) * | 2012-07-25 | 2014-01-30 | Kabushiki Kaisha Toshiba | Disk storage apparatus and data protection method |
US8922930B1 (en) * | 2012-10-11 | 2014-12-30 | Seagate Technology Llc | Limit disc nodes by band usage |
US20140285923A1 (en) * | 2013-03-19 | 2014-09-25 | Kabushiki Kaisha Toshiba | Disk storage apparatus and data storage method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776452A (zh) * | 2016-12-14 | 2017-05-31 | 英业达科技有限公司 | 服务器系统 |
CN106776452B (zh) * | 2016-12-14 | 2020-02-04 | 英业达科技有限公司 | 服务器系统 |
CN110134572A (zh) * | 2018-02-02 | 2019-08-16 | 伊姆西Ip控股有限责任公司 | 验证存储系统中的数据 |
CN110134572B (zh) * | 2018-02-02 | 2023-08-08 | 伊姆西Ip控股有限责任公司 | 验证存储系统中的数据 |
CN110827861A (zh) * | 2018-08-13 | 2020-02-21 | 希捷科技有限公司 | 使用多个卷提供复制的多致动器驱动器 |
CN110827861B (zh) * | 2018-08-13 | 2021-04-13 | 希捷科技有限公司 | 使用多个卷提供复制的多致动器驱动器 |
Also Published As
Publication number | Publication date |
---|---|
GB2537713A (en) | 2016-10-26 |
US20160239241A1 (en) | 2016-08-18 |
DE102016001682A1 (de) | 2016-08-18 |
IE20160049A1 (en) | 2016-08-24 |
GB201602447D0 (en) | 2016-03-30 |
US9417814B1 (en) | 2016-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105892936A (zh) | 性能平缓的数据存储设备 | |
US10970202B1 (en) | Managing input/output (‘I/O’) requests in a storage system that includes multiple types of storage devices | |
CN102171649B (zh) | 用于用单个命令对多个不连续地址范围的传送进行排队的方法和系统 | |
US9632707B2 (en) | Enhancing tiering storage performance | |
US9052826B2 (en) | Selecting storage locations for storing data based on storage location attributes and data usage statistics | |
CN101546252B (zh) | 存储装置及其控制方法 | |
CN103890738A (zh) | 用于保留克隆分离操作之后的存储对象中的消重的系统和方法 | |
JP4837759B2 (ja) | データベース処理方法、データベース処理システム及びデータベースサーバ | |
CN105339903A (zh) | 恢复文件系统对象 | |
US11921633B2 (en) | Deduplicating data based on recently reading the data | |
US20190087437A1 (en) | Scheduling database compaction in ip drives | |
US10698815B2 (en) | Non-blocking caching for data storage drives | |
US20150277805A1 (en) | Communication between a host and a secondary storage device | |
US10705853B2 (en) | Methods, systems, and computer-readable media for boot acceleration in a data storage system by consolidating client-specific boot data in a consolidated boot volume | |
CN108694022A (zh) | 用于识别具有最低尾延迟的固态盘的系统和方法 | |
CN107422989A (zh) | 一种Server SAN系统多副本读取方法及存储架构 | |
US20170060444A1 (en) | Placing data within a storage device | |
US11016700B1 (en) | Analyzing application-specific consumption of storage system resources | |
CN104125285A (zh) | 一种高io吞吐量的云存储读写方法 | |
US8775687B1 (en) | Method to ensure data coherency in a scalable aggregate neighbor-device interface | |
US9703497B2 (en) | Storage system and storage control method | |
CN105827681A (zh) | 一种san网络下备份数据传输方法 | |
CN104008073A (zh) | 具有虚拟机的cdata存储设备 | |
WO2016027370A1 (ja) | アーカイブ制御システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |