CN104063184A - 磁盘记录方法及其非易失性存储媒体与电子装置 - Google Patents
磁盘记录方法及其非易失性存储媒体与电子装置 Download PDFInfo
- Publication number
- CN104063184A CN104063184A CN201310744510.5A CN201310744510A CN104063184A CN 104063184 A CN104063184 A CN 104063184A CN 201310744510 A CN201310744510 A CN 201310744510A CN 104063184 A CN104063184 A CN 104063184A
- Authority
- CN
- China
- Prior art keywords
- data
- medium
- disk
- queue
- sector
- 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.)
- Granted
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本揭露提出一种磁盘记录方法,所述方法用于包括临时非易失性存储媒体的电子装置,以将来自易失性存储器的数据记录到所述存储媒体,且所述方法包含以下步骤:从外部源接收具有第一批量的数据,并将所述数据存储到所述存储媒体的队列将所述数据写入到所述存储媒体的磁盘中;以及传输一中断以响应于完成将所述数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述数据的所述步骤相较于接收并存储所述数据的所述步骤花费更多或相同的时间。
Description
技术领域
本揭露涉及一种磁盘记录方法,所述方法供临时非易失性存储媒体将来自易失性存储器的数据记录到所述存储媒体,且所述方法用于具有所述存储媒体的电子装置。本揭露还涉及使用所述磁盘记录方法的非易失性存储媒体以及使用所述磁盘记录方法的电子装置。
背景技术
计算机应用程序通常将数据存储在随机存取存储器(random accessmemory,RAM)中以供快速存取,这是因为RAM的存取速度相较于非易失性磁盘快得多。然而,如果托管所述计算机应用程序的系统崩溃,那么存储在RAM中的内容便无法恢复,这是因为RAM是易失性的存储器。对于许多应用程序来说,例如密集写入型应用程序,已利用将存储在RAM中的数据记录到一种形式暂时但具持久性的存储器或记录磁盘,以使得如果发生系统崩溃时,将执行恢复进程以将数据从记录磁盘复原到易失性存储器。记录到记录磁盘的数据将随后被传送到系统的正常磁盘机以进行永久存储。
然而,对于用作记录磁盘的最佳类型的持久存储器并没有普遍共识。基于闪存的存储器,例如非易失性存储器(NVRAM)等目前来说是昂贵的,而硬盘机(Hard Disk Drive,HDD)已经不予考量是因为其速度较慢,其不适合用作记录磁盘。相变存储器(Phase Changing Memory,PCM)可成为基于闪存的存储器的一个较快的替代方案,但是由于PCM的小密度以及高成本而在未来不易被采用为记录磁盘。优化(optimizing)磁盘记录过程的等待时间(latency)和吞吐量(throughput)也是一项至关紧要的任务。
吞吐量可被定义为由记录磁盘完成的记录操作的总数,包含读取和写入。等待时间可被定义为在由记录磁盘的队列接收到记录请求时与在记录请求被成功地写入到记录磁盘并准备好向用户应用程序进行确认时之间的时间。等待时间和吞吐量将是记录系统将要优化的多个参数中的两个,这是因为理想的磁盘记录系统将具有低等待时间和高吞吐量。对记录系统的记录请求的所感知的响应时间将由记录操作及其相关联的操作的等待时间来支配。
提供高吞吐量和低等待时间给具有小的有效负载的记录操作是至关重要的,其中所述的小的有效负载例如是64字节或128字节等,这是因为许多应用程序仅需要记录与高层级操作相关联的信息,例如对平衡搜寻树(Balance tree,B-tree)页或散列表包(hash table bucket)中的记录的更新。信息的大小通常较小。低记录等待时间的重要性,在于因为其直接影响用户感知到的响应时间,并且因为许多应用程序将受限于记录磁盘的等待时间,而这是因为,在先前提交的请求尚未完成之前是无法处理较多的请求的。
然而,要实现记录操作的高吞吐量和低等待时间(尤其针对细粒度(fine-grained)操作)已证明绝非易事。目前已意识到三个关键的挑战。首先,在细粒度记录与现代文件系统之间存在失配。更具体来说,所述文件系统将4KB的块用作读取和写入的基本单元,且因此将64字节或128字节的记录记录到日志文件可能需要读取日志文件的最后一个块以及在将所述日志记录附加到所述块之后对同一块进行写入。第二,调用接口到磁盘之间的数据路径上存在多个处理步骤,所述多个处理步骤需要横越记录操作(logging operation)的有效负载(payload),且这些步骤中的一些步骤可能招致每个操作的开销(overhead)。因此,连续的记录操作请求被适当地合并,以便有效地分摊这些每个操作的开销,且仍然控制住平均的记录等待时间之內。第三,为了提高现代磁盘的原始数据传送能力,将提出一种针对较小的数据大小将高层级记录操作请求转变为低层级磁盘存取请求的方式,以用来将防止记录磁盘大部分时间都是闲置的。
在这些问题下,现有技术可能无法完全解决所有这些挑战。举例来说,紧随的异步写入的涉及记录和的延迟写入将会把瓶颈转移到记录操作。如果记录的记录大小假设较小,则内部的存储装置在较小的随机记录更新的情况下必须以低等待时间管理高吞吐量。而且,许多优化技术将涉及对磁盘几何形状细节进行准确控制,所述磁盘几何细节例如是旋转等待时间、搜寻等待时间、每一磁轨中的扇区的数量、区编码、坏扇区映射以及其它较细的细节。此时,由于高级磁盘压缩技术,将寻求一种实施需要这些细节的想法的实施方式,且一些磁盘制造商由于复杂的磁盘管理技术和竞争性市场而不再供应磁盘布局的内部细节。而且,还应提及的是,磁盘头预测技术可能不易被采用,这是因为该技术对于现代的磁盘机来说较难以实现。
另一种方法涉及维护磁盘上的已使用和空闲的块的图,以便将传入的数据准确地放置在未占用的块上,并且同时避免磁轨切换延迟;然而,维持映射信息将使记录结构变成不必要地复杂,且可能需要对磁盘的几何形状进行估计。
还有一种让使用独立磁盘冗余阵列(Redundant Array of IndependentDisks,RAID)技术的记录磁盘阵列已被提出,用来处置较小的写入问题且让NVRAM缓冲器来给高速缓冲存储器提供持久性使用。然而,写入到NVRAM缓冲器时的等待时间非常低(以微秒计),并将NVRAM缓冲器刷新到磁盘不是无关紧要的任务。虽然以条带大小为单位来选择最佳大小,但存在决定磁盘是否被最佳地利用的各种其他因素。要注意的另一个重要因素是,NVRAM是成本较高的硬件资源,在这之前已经提到过。在许多情形中,写入到NVRAM可产生非常慢的响应时间。
另一种替代方案可经开发以处置较小的缓冲器大小的写入。整个文件系统被组织为连续的记录,其转换来自用户应用程序的写入,且附加到文件系统中的基础记录结构。但是记录操作需要对磁盘的持久写入,且因此需要同步写入,并将明显对尚无经验的记录结构文件系统(naive logstructured file system,LFS)造成非常低的性能。虽然经修改的技术使用NVRAM或闪存来使LFS有效地处置同步写入,但NVRAM和闪存都是成本较高的硬件替代方案。虽然基于闪存的磁盘提供高吞吐量和低等待时间,但擦除循环较慢,且因此当闪存磁盘的利用率提高时,其性能会变低。而且,闪存的基本块大小的范围是千字节到兆字节,且相较于典型的磁性硬盘的扇区大小高得多。闪存装置中的擦除操作需要块大小是较大的大小,从而获得最佳的结果。然而,具有较大的块大小会增加较小的请求的等待时间,所述请求需要聚集以形成较大的块大小。
基于前述原因,本揭露将提出磁盘记录的替代方案。
揭露内容
本揭露一实施例提出一种磁盘记录方法,所述方法用于临时非易失性存储媒体,以将来自易失性存储器的数据记录到所述存储媒体,且所述方法用于具有所述存储媒体的电子装置。
本揭露一实施例提出一种磁盘记录方法,所述方法用于临时非易失性存储媒体,以将来自易失性存储器的数据记录到所述存储媒体,且所述方法包含以下步骤:从外部源接收具有第一量(batch size)的第一数据,并将所述第一数据存储到所述存储媒体的队列;将所述第一数据写入到所述存储媒体的磁盘;以及传输一中断以响应于完成将所述第一数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述第一数据的步骤相较于接收并存储所述第一数据的步骤花费更多的时间。
本揭露一实施例提出一种磁盘记录方法,所述方法用于含有至少包含但不限于第一临时非易失性第一存储媒体的元件的电子装置,以将来自易失性存储器的数据记录到所述第一存储媒体,且所述方法包含以下步骤:将来自电子装置的应用程序的第一数据聚集在第一队列中;将第一队列的第一数据传送到所述第一存储媒体的第二队列,其中所述第二队列仅提供所述第一储存媒体使用,而从所述第一数据产生具有第一批量的第二数据;将所述第二数据传送到所述第一存储媒体本地的第三队列;将所述第二数据写入到所述第一存储媒体的磁盘;以及传输一中断以响应于完成将所述第二数据写入到所述第一队列,其中动态地调整所述第一批量,以使得写入所述第二数据的步骤相较于将所述第二数据传送到第三队列的步骤花费更多的时间。
本揭露一实施例提出一种包括控制器的非易失性存储媒体,其中所述控制器用于从操作外部源接收具有第一批量的第一数据,并将所述第一数据存储到所述存储媒体的队列;将所述第一数据写入到所述存储媒体的磁盘;以及传输一中断以响应于完成将所述第一数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述第一数据的步骤相较于接收并存储所述第一数据的步骤花费更多或实质上相同的时间。
本揭露一实施例提出一种用于磁盘记录的电子装置,所述电子装置包括临时非易失性第一存储媒体以将来自易失性第一存储器的数据记录到所述第一存储媒体,且包括控制器,所述控制器用于操作:将来自电子装置的应用程序的第一数据聚集在第一队列中;将第一队列的第一数据传送到所述第一存储媒体的第二队列,其中所述第二队列仅提供所述第一储存媒体使用,而从所述第一数据产生具有第一批量的第二数据;将所述第二数据传送到所述第一存储媒体本地的第三队列;将所述第二数据写入到所述第一存储媒体的磁盘;以及传输一中断以响应于完成所述将所述第二数据写入到所述第一队列,其中动态地调整所述第一批量,以使得写入所述第二数据的步骤相较于将所述第二数据传送到第三队列的步骤花费更多的时间。
为了使本揭露的上述特征和优点可理解,下文中将参照附图详细描述一些实施例。应理解,以上的一般描述以及以下详细描述都是示范性的,只希望提供对如所主张的本揭露的进一步解释。
然而,应理解,此技术方案的概述可能不含有本揭露的所有方面以及实施例,但并不因此意味受限于任何方式。而且,本揭露将包含对于所属领域的技术人员来说可作明显的改进以及修改。
附图说明
附图有助于对本揭露的进一步理解,且附图构成本说明书的一部分。所述附图用于说明本揭露的实施例,且与说明书文字部分一起用于解释本揭露的原理。
图1说明的是根据本揭露的一实施例的磁盘记录的概念;
图2是说明使用512字节作为记录操作请求大小的的表,此表基于文件的和原始磁盘记录的等待时间和吞吐量所排列;
图3说明的是根据本揭露的作为示范性实施例之一的连续磁盘写入的玩具火车技术;
图4A说明的是根据本揭露的作为示范性实施例之一的管线级时序图;
图4B说明的是根据本揭露的作为示范性实施例之一的四级磁盘写入管线;
图5说明的是根据本揭露的作为示范性实施例之一的多个磁盘中的磁盘记录;
图6说明的是根据本揭露的作为示范性实施例之一使用哨兵写入请求;
图7说明的是根据本揭露的作为示范性实施例之一在较少的时隙中提交磁盘写入请求;
图8说明的是根据本揭露的作为示范性实施例之一的用于低功率操作的实例哨兵磁盘写入请求;
图9说明的是根据本揭露的作为示范性实施例之一使用不同RPM的磁盘的层次结构来实现稀疏模式记录;
图10说明的是根据本揭露的作为示范性实施例之一的具有在每一合并记录中提交的较少数据的稀疏模式记录;
图11A到图11D说明的是本揭露的方法的性能测量;
图12说明的是根据本揭露的作为示范性实施例之一的从记录磁盘的角度进行磁盘记录的方法;
图13说明根据本揭露的作为示范性实施例之一的从电子装置的角度进行磁盘记录的方法;
图14说明的是使用根据本揭露的作为示范性实施例之一的方法的存储媒体;
图15说明的是使用根据本揭露的作为示范性实施例之一的方法的电子装置。
【主要附图标记说明】
100:记录系统
101:用户应用程序
102:缓冲器队列
103:记录磁盘
104:数据磁盘
301:用户空间
302:OS内核
303:磁盘控制器
304:磁盘
401:传入记录请求
402:聚集队列
403:内核请求队列
404:磁盘上的队列
404a:磁盘写入请求
502:记录磁盘
503:记录磁盘
1001:第一新扇区
1002:最后一个新扇区
1401:存储媒体
1402:控制器
1500:电子装置
1501:易失性存储器
1502:控制器
1503:第一临时非易失性存储媒体
R1~R5:记录请求
S451:累积
S452:提交
S453:传送
S454:完成
S455:完成中断
S511:磁盘写入请求
S512:完成中断
S513:磁盘写入请求
S514:完成中断
S1201:步骤
S1202:步骤
S1203:步骤
S1301:步骤
S1302:步骤
S1303:步骤
S1304:步骤
S1305:步骤
T1:虚拟写入
T2:虚拟写入
T3:虚拟写入
具体实施方式
现将详细描述本揭露的实施例,其范例在附图中得以说明。在附图和文字描述中相同参考数字尽可能地用以表示相同或相似部分。
鉴于前述,已经提出一种以浮动记录操作API为特征的磁盘记录系统层次结构,其允许应用程序执行记录操作,而不需要指定所述操作的有效负载的目标地址。所述磁盘记录系统将磁盘写入管线精简化,其旨在最适宜化聚集记录操作请求且随后以利用硬盘的原始数据传送能力的方式将所聚集的操作移动穿过所述管线。
因此,本揭露的一实施例提出使用一般被称作“Hard Disk Drive,HDD”的传统硬盘机。HDD可以是串行高阶技术附加(Serial Advanced TechnologyAttachment,SATA)磁盘或串行连接小型机系统附加(Serial Attached SCSI,SAS)磁盘或小型机系统接口(Small Computer System Interface,SCSI)磁盘,只要它们全部含有盘片且被划分为若干扇区和磁轨即可。换句话说,本揭露一实施例提出利用HDD的某些属性,并将HDD用作记录磁盘。虽然HDD已经被一些人认为不适合用于记录磁盘,但对三个磁盘的完全操作集合的初步测量已经表明,可实现每秒120万个256字节的记录操作,且每一记录操作的等待时间被保持在1毫秒以下。另外,甚至当记录操作请求稀疏地到达时,本揭露一实施例也仍然能够实现亚毫秒记录操作等待时间。虽然固态磁盘(solid-state disk,SSD)可能是用于磁盘密集型工作负载的有前景的技术,但其对于记录操作来说可能不一定比硬盘(hard disk,HDD)适合,这是因为主流SSD使用多层级单元,每单元写入数极限将减小到10000,这可能不与记录操作的密集写入型性质良好配合。而且,HDD将相较于SSD拥有显著的每字节成本优势,并将通过给予每一记录装置冗余的空间以便将垃圾回收开销减少到最小而较可行地权衡空间与性能。此外,对于HDD来说,与SSD不同的是,不存在对每扇区写入数量的限制。
本揭露一实施例将可被设计成用于建构高层级记录(logging)与恢复(recovery)子系统的构建块,并将提供一种循环持久记录装置,所述循环持久记录装置足够大(数十兆字节),以使得基于FIFO的垃圾回收(garbagecollection)将充分起作用。也就是说,在记录过程到达应用程序的记录装置的末尾或记录磁盘的末尾时,将不再需要记录装置的开始处的日志记录,从而磁盘将绕回,以便从开始处进行记录。已写入到记录磁盘的数据还将被写入到永久存储磁盘,但是以被延迟的方式写入。一旦数据被写入到永久磁盘,记录磁盘上便将不再需要此笔数据。通过确保记录磁盘充分大,在记录磁盘的全部位置已被写入时,还将所记录的数据放在永久磁盘上。通常对于1太字节(Terabyte,TB)的记录磁盘,假定磁盘以7200RPM旋转,写入记录磁盘上的其所有位置将花费大约3到4个小时。且因此,在数据被记录之后,从记录磁盘到永久存储装置的后续异步写入将通常在数分钟内发生,也因此HDD可被再用作临时持久存储装置。
应注意的是,在数据被写入到最后一个磁轨上的最后一个扇区时,本揭露的记录装置一实施例可不需要进行垃圾回收,这是因为第一个磁轨上的第一扇区上的数据被假定提交给数据磁盘。对于维持存储器内的缓冲器且在3个小时内将数据提交给数据磁盘的大量应用程序来说,所述假定将是有效的。举例来说,在1TB磁盘上,可能花费3到4个小时之久来进行记录磁盘的完全扫掠。但是对于维持较大的存储器内的缓冲器的应用程序来说,将存储器内的缓冲器中的数据提交给数据磁盘所花费的时间可能要大于3到4个小时。因此,记录装置可能无法承担擦除记录磁盘的一些部分。因此,在另一示范性实施例中,将提出一种用于该目的的文件磁盘。这意味着每当磁盘头到达记录磁盘的末尾时,替代绕回到所述记录磁盘上的第一扇区、第一磁轨,将为记录数据选择全新的记录磁盘。随后将完全写入的记录磁盘备份到文件存储装置,且随后使所述记录磁盘可用于将来的记录操作。文件存储装置中的记录数据将保持完整是取决于存储器内的缓冲器的大小以及应用程序,以及将数据提交给数据磁盘所花费的时间。
在功能性方面,在运行时间,记录系统将每一记录操作的有效负载同步写入到记录磁盘,且在恢复时间,记录系统从记录磁盘的有效部分恢复数据,并将所述数据返回到应用程序。而且,本揭露一实施例将不需要解译所检索的日志记录的有效负载,这是因为记录系统完全无法理解(opaque)每一应用程序特定的日志记录的大小和结构。而是,应用程序的恢复子系统将对由记录系统返回的日志记录执行此类解译。较高层级的应用程序将需要决定记录哪些信息(例如,元数据更新或检查点概要),且随后利用记录系统来将所述信息记录到磁盘。
图1说明根据本揭露一实施例的磁盘记录的概念。用户应用程序101可产生将被存储在临时缓冲器队列102中的数据,所述临时缓冲器队列102可为高速缓冲存储器或RAM。缓冲器队列102将是易失性存储器,且在主机系统崩溃或断电时将被擦除。记录系统100的实施例将以一种方式使用记录磁盘103为存储在缓冲器队列102中的数据提供持久存储,以使得缓冲器队列102中存在的任何数据将被记录或同步复制到记录磁盘103。一旦缓冲器队列102中的数据被记录在记录磁盘103中,便以后台进程(background process)将所记录的数据传送到数据磁盘104进行永久存储。如先前提及的记录磁盘103将是HDD磁盘。
图2是说明基于文件的和原始磁盘记录的等待时间和吞吐量而使用512字节作为记录操作请求大小的表。通过将有效负载附加到日志文件而获得图2中的数字(numbers),且通过具有等于512字节的有效负载大小的用户层级Linux应用程序来产生所述有效负载。基于图2的数字,可观察到,文件系统(file system)将使记录操作的等待时间和吞吐量恶化。原因将与因额外的数据复制而引起的等待时间损失相关,且文件写入系统调用也可由于对文件系统元数据的存取而触发多个磁盘I/O。通过文件系统使用基于装置的磁盘记录或原始磁盘记录总共两次将增大吞吐量且减小等待时间。因此,依据本揭露一实施例的操作步骤可不需要文件系统来管理。
可观察到,具有8个线程将不会提高总系统性能,且在没有优化的情况下,平均记录等待时间也将仍然非常高。高等待时间的源将是同步发布的连续记录操作的结果。更具体来说,仅在完成第N个记录操作之后才发布第N+1个记录操作。这意味着,在用于第N+1个记录操作的磁盘I/O到达磁盘时,其错过了其目标扇区,且需要等待一整转(full rotation),其对于7200RPM的磁盘机来说大致是8.3毫秒。
本揭露的可实施方式之一是将现代HDD的原始数据传送带宽转变为用于记录操作的高吞吐量和低等待时间。因此,朝着这个目标,将提出一种玩具火车磁盘记录操作。玩具火车技术将不断地以记录磁盘的连续目标磁盘地址来提交新的磁盘写入请求,以便保持完全占用磁盘,甚至在没有应用程序层级记录操作请求的情况下也是如此。此所提出的玩具火车模型使得磁盘I/O软件能够严格控制磁盘头位置,而不需要对磁盘的内部结构和几何形状的详细了解。磁盘写入管线类似于不断地围绕具有两个站的闭合回路移动的玩具火车,其中货物在一个站被装载到火车中,且货物在另一站从火车卸载。即使车上没有货物,火车也将仍然围绕所述回路全速行进,且从不间断,其中假定火车可在运行中装载和卸载货物而无需减速。磁盘的固定磨损将不是问题,因为对于例如2TB的磁盘,每天仅被完全覆写5次,并将要花费5年来覆写磁盘10,000次。
图3说明根据本揭露的示范性实施例之一的连续磁盘写入的玩具火车技术。假定应用程序层级中的用户空间301已产生标记为R1到R5的五个记录请求以同步传送到OS内核302,OS内核302将随后聚集记录请求并,并将其列队(例如,R3到R5)。磁盘控制器303将随后控制磁盘304上的写入请求的写入操作。应注意的是,写入来自记录请求的数据将是固定的,且这意味着当将第一数据写入到磁盘304的位置100中中时,必须准备好将下一数据写入位置200中。如果假定下一数据未准备好写入200中而是写入220中,那么磁盘控制器将失去写入操作的时序且随后对失去记录操作的控制。
常规的磁盘写入请求需要磁盘头横越到磁盘上的确切的用户请求位置,且如此会招致若干类型的等待时间,包含搜寻等待时间、旋转等待时间和列队等待时间。为了避免这些等待时间,写入操作将需要通过使用准确的磁盘几何形状细节而处于磁盘头想要的确切地方,但是预测确切的磁盘几何形状细节将非常困难,这是因为当前的市场供应商不再公开必要的细节。因此,本揭露一实施例提出将来自用户请求的数据连续地写在磁盘304上,以使得磁盘头将不必切换磁轨,并将不招致不必要的等待时间。
对于图3的实例,根据本揭露的适当操作将一个接一个地写入数据。这将意味着当将R1写入位置100中时,R2必须准备好写入位置200中,同时R3到R5将在队列中等待被传送到记录磁盘的板载队列(onboardqueue)。因此,有效的转换将是以下操作的结果:以一种方式以连续的开始地址向磁盘馈送写入请求,以使得磁盘上的控制器303不间断地将数据不断地放到磁盘304上。支持命令列队的磁盘机可一个接一个地服务于请求,而在其间没有间隙。大多数现代的SATA机从有效的命令列队实施(被称为本地命令列队(Native Command Queuing,NCQ))开始,其将提供优化机制,所述优化机制包含:将磁盘机中的磁盘存取命令列队以使得磁盘上的控制器303能够在完成前一命令时立即服务于所述队列中的下一命令;对所列队的命令进行分批且/或调度以减少需要服务的命令的数量和磁盘存取开销;以及支持中断合并(coalescing),其聚集多个完成中断,且针对所述中断向主机发送一次信号,从而减少总中断处理开销。而且,通过将NCQ队列长度设定为2,磁盘上的控制器303将不能够选择在磁盘304上写入哪些写入请求,但在磁盘上(on-disk)的队列中排好队的写入请求除外。如果在将请求R1写入位置100中之后,用户空间201根本不产生数据,那么磁盘控制器将协调虚拟数据以写入位置200中。
举例来说,写入连续数据将意味着如果位置100处的R1的数据是32千字节(KB),则位置200处的R2的数据也将是32(KB),而在100与200之间没有空的空间。如果不存在准备写入的数据,那么磁盘上的控制器303将在200处插入虚拟数据,且虚拟数据的大小将是32kB。因此,不同于现有的技术,本揭露的一实施例方法将不需要知晓确切的磁盘几何形状细节,例如每个磁轨的扇区、区边界、RPM、角速度等。本揭露的一实施例的方法将以连续的开始地址向记录磁盘馈送写入请求,以使得磁盘上的控制器不间断地将数据不断地放到磁盘上,且因此准确地定位写入管线而以较细的准确度预测磁盘头的移动。
本揭露一实施例的优化目标之一将是将磁盘的原始数据传送速率尽可能多地转化为按比例高的I/O速率,例如将100兆字节/秒的字节速率转变为每秒100000个1KB的写入的I/O速率。本揭露一实施例提出以兆字节/秒(MBPS)为单位的吞吐量将等于每秒的输入/输出(IOPS)乘以I/O请求大小(吞吐量(MBPS)=IOPS*I/O请求大小)。换句话说,为了维持固定的吞吐量,IOPS应与I/O请求大小的减小成比例地增大。但对于较小的I/O请求大小来说并非看起来那样显而易见,这是因为针对较小的I/O请求大小要做大量的元数据工作,且因此使用较小的I/O请求大小将产生非常低的吞吐量。而且,盲目地合并I/O请求无助于实现高吞吐量,这是因为较大的I/O请求大小将导致高等待时间。
图4A说明根据本揭露的示范性实施例之一的四级磁盘写入管线。图4B说明根据本揭露的示范性实施例之一的管线级时序图。如先前所提及,使记录操作速率最大化的关键将包含对传入的记录操作请求适当地分批以在等待时间与数据输送效率之间进行平衡,并将数据不断地移动到磁盘。为了体现这两个想法,将提出一种用以处理固定大小的磁盘写入请求的四级管线。
在第一级(累积,S451)中,来自高层级记录操作的传入记录请求401将被插在主机存储器(例如,图1的元件102)的聚集队列402中,且被聚集为低层级磁盘写入请求以存储在每个装置的内核请求队列403中。在第二级(提交,S452)中,将把所聚集的磁盘写入请求从主机存储器(102)的内核请求队列403复制到由NCQ管理的磁盘上的队列404。在第三级(传送,S453)中,将把所列队的磁盘写入请求(例如,404a)的有效负载传送到HDD(405)的磁盘上的相关联的位置。在第四级(完成,S454)中,磁盘将针对每个完成的磁盘写入请求把完成中断(S455)递送到主机,其又可触发主机上的额外处理,以完成与所完成的磁盘写入请求相关联的每一高层级记录操作。在此管线设计中,磁盘上的控制器将关注提交(S452)级的第二半部、传送级(S453)以及完成级的第一半部(S454),且剩余部分将完全由主机软件控制。因为磁盘上的控制器对主机软件是难理解的,所以此管线的循环时间将主要由传送级(S453)来决定。由于传送级(S453)所花费的时间将取决于磁盘写入请求的有效负载的大小,所以设计问题将涉及决定最佳的磁盘写入请求大小,以使得在此管线中的四个级中所花费的时间得到平衡。
当第N个磁盘写入请求的有效负载将被完全传送到HDD405的磁盘时,HDD405的磁盘上的控制器可开始将第N+1请求的有效负载传送到磁盘,且可将完成中断发送到主机,主机将布置DMA以将第N+2请求的有效负载的有效负载移动到磁盘中。如果第N+2请求的有效负载未及时到达磁盘,即,在第N+1请求的有效负载的传送完成之前到达,那么磁盘上的控制器将不能够在完成第N+1请求的有效负载之后立即传送第N+2请求的有效负载,因此浪费一个整转延迟。为了避免整转延迟,将使包含磁盘上的中断产生、主机上的中断处理以及有效负载DMA上的中断处理的关键路径最小化。为了使中断产生时间最小化,可停用NCQ的中断合并。为了使中断处理时间的影响最小化,主机软件可在接收到硬件中断之后尽可能快地调度有效负载DMA。
虽然现代的PCIe总线(第二代或第三代)的原始数据速率高于磁盘传送带宽的原始数据速率,但每一磁盘写入请求的粒度将充分高以分摊每一PCIe总线事务(transaction)将招致的相对大的固定开销。因为NCQ自身也可对磁盘上的队列中的磁盘写入请求分批并调度,所以其可潜在地由于对邻近的请求进行分批而增加传送级(S453)所花费的时间,或由于其旋转延迟感知式调度(rotation delay-aware scheduling)而破坏连续服务的请求的循序性。假设在磁盘上的队列中存在五个64KB的磁盘写入请求,有可能NCQ的调度逻辑可在服务了第一请求之后选择服务第五请求,这是因为第五请求比第二请求靠近第一请求。然而,由于如此会破坏管线,所以本揭露一实施例可保留NCQ的命令列队机制且废除其他机制。
包含在每个装置的内核请求队列403中的低层级磁盘写入请求可具有固定的批量,直到所述批量被重新调整为止。移动穿过管线的每一低层级磁盘写入请求的粒度或批量将影响记录系统的性能。如果批量太小,那么由于每一写入请求中所需的每个事务的相对大的开销,将磁盘写入请求从主机存储器提交给磁盘上的队列的时间将长于将写入请求从磁盘上的队列传送到磁盘所需的时间。在磁盘写入请求到达磁盘时,紧接的前一磁盘写入已完成,且磁盘写入请求错过其目标扇区且因此被延迟整个旋转循环。当批量过高时,每一磁盘写入请求将在累积队列中经历较高的列队延迟,且传送时间也将较高,且因此平均记录等待时间将较高。
当批量正好时,提交级(S452)时间将小于传送级(S453)时间,以使得没有磁盘写入请求将经历整转延迟。以此方式,理想的批量将是使得提交级(S452)时间能够小于传送级时间(S453)的最小批量。有效的管线时间将是传送级(S453)时间,这是因为在给定最佳批量的情况下,其将有可能是管线的最慢级。假设就是这种情况,且提交级(S452)与传送级(S453)时间几乎相同,那么平均记录等待时间将被最小化。可基于自动化的试错法来决定批量。特定来说,可产生具有特定批量的高层级写入请求,且随后可测量写入请求的等待时间。可随后基于测量的结果而使用不同的批量,且因此可通过尝试不同的批量而精细调谐批量。
对于所述方法的操作来说,可存在两个不同的操作模式。一种操作模式将是“密集模式(dense-mode)”记录,其中高层级记录操作以等于记录子系统(logging subsystem)的最大吞吐量的速率到达记录子系统,且另一种操作模式将是“稀疏模式(sparse-mode)”记录,其中高层级记录操作以慢于记录子系统的最大吞吐量的速率到达记录子系统。密集模式记录的目标将是为了高记录吞吐量以及低记录等待时间,而稀疏模式记录的目标将主要是低记录等待时间。对于密集模式,在接收到高层级记录操作之后,高层级记录操作将在主机的存储器缓冲器中列队,且随后高层级操作将被分批到最佳大小的低层级所聚集的磁盘写入请求中。随后,当完成中断到达时,将把另一较低层级磁盘写入请求提交给记录磁盘的板载队列以由NCQ进行管理。将停用操作系统的合并和调度功能性,以使得缓冲和分批将根据精简化的磁盘写入管线设计来进行。为了开启NCQ的调度功能性,可将NCQ队列长度设定为2,以使得磁盘上的控制器将一次不具有一个以上选择。此精简化的磁盘写入管线将类似于CPU管线而被设计成以锁步(lock-step)的方式移动固定大小的数据有效负载,从而充分地利用磁盘的原始数据传送能力,并将其数据传送速率(兆字节/秒)有效地转换为相称的I/O速率(IO/秒)。
根据本揭露一实施例,所聚集的磁盘写入请求的目标逻辑块地址仅在其被分派时才决定。当在磁盘记录系统中使用多个物理磁盘时,提供后期地址绑定,其中这些磁盘之间的请求完成的相对时序可因运行时间条件而变化,且因此不完全决定。因此,每一高层级记录操作的目标逻辑块地址也将主要仅在其相关联的所聚集的磁盘写入请求被分派时才决定。在完成磁盘写入请求之后,将把完成信号多路(demultiplexed)分用到记录操作,其通过调用所述记录操作的对应的完成后请求完成逻辑来构成磁盘写入请求。记录操作的等待时间将是介於在记录操作进入系统存储器缓冲器时与在完成记录操作的完成后处理时之间的时间间隔。
为了起动所提出的流线化的磁盘写入管线,将把背对背的两个磁盘写入请求发布到磁盘以填补传送和提交级,且随后拖延第三磁盘写入请求,直到第一磁盘写入请求的完成中断到达为止。此后,在现有的磁盘写入请求退出管线之后,将把新的所聚集的磁盘写入请求馈送到所述管线。
对于多个记录磁盘的情况,这可通过针对每一个别磁盘而分配单独的每个装置的请求队列来完成。图5说明根据本揭露的示范性实施例之一的多个磁盘中的磁盘记录。对于多个磁盘,例如磁盘1502、磁盘2503,或更多,使累积级(S451)成为中心,并将在例如磁盘1502和磁盘2503等多个记录磁盘之间共享聚集队列501。这意味着当针对聚集队列501中的所有记录磁盘将传入的高层级记录操作聚集为低层级磁盘写入请求,且来自记录磁盘(502或503)的完成中断(S512或S514)一到来,便将把所聚集的磁盘写入请求(S511或S513)提交给特定记录磁盘,以便避免记录磁盘之间的竞争。可按照交错的方式起动记录磁盘以防止记录磁盘之间的不想要的同步。服务器上的磁盘写入管线的最佳的批量可取决于影响提交级(S452)时间的磁盘写入管线的PCIe总线和磁盘接口(SATA、SAS或SCSI)以及影响传送级(S453)时间的磁盘的RPM速率。因为某一大小的磁盘写入请求的传送级(S453)时间可取决于其目标地址在磁盘表面上位于何处而变化,所以磁盘写入管线的最佳的批量可随着管线横越磁盘表面的不同部分而改变。举例来说,可动态地调整第一批量,以使得存储媒体的外部磁轨中的第一批量大于存储媒体的内部磁轨中的第一批量。另外,因为最外面的磁轨(较靠近磁轨0)具有相较于最里面的磁轨高的扇区密度,所以最外面的磁轨的数据传送速率将高于最里面的磁轨的数据传送速率。因此,将预期最佳的批量随着目标地址在磁盘表面的不同部分中横越而改变。
实质上,对于密集模式来说,NCQ将维持在2,以使得磁盘头一完成将请求写入到磁盘时,则一个请求便将一直在本地磁盘控制器队列(NCQ)中准备好被服务。而且,通过一些试错法,可获得最佳的批量,以使得在管线中针对所有4个级(S451到S454)所花费的时间将得到平衡。
作为流线化的磁盘写入管线的基础的一个暗含的假设是,将存在正等待填充管线的无限的磁盘写入请求流。这个假设可适用于密集模式记录,但不适用于稀疏模式记录。更具体来说,如果记录操作请求在一段无活动(inactivity)周期之后出现,那么此记录操作请求可能单独地进入磁盘写入管线,且因此无法受益于可从相邻的请求收集的任何磁盘头位置信息,而在密集模式记录中可受益。因此,此类记录操作请求的平均等待时间将较高,这是因为可能难以确保指派给稀疏模式记录操作请求的目标地址接近在提交请求时的磁盘头位置。不断地预测磁盘头位置且使用所述预测来得到每一稀疏模式记录操作的目标逻辑块地址可能不可行,因为现代的磁盘变得越来越复杂,这种方法变得越来越低效,这是因为磁盘机内的内部控制机制(例如,NCQ、磁盘上的高速缓冲、中断合并等)往往会遮掩磁盘头移动,且因此妨碍磁盘头位置预测。
因此,本揭露的一实施例方法充分利用其密集模式记录架构来实施密集模式记录。更具体来说,当应用程序层级不再产生记录请求时,虚拟的所聚集的磁盘写入请求将不断地被填充在所聚集的缓冲器中,且随后虚拟的所聚集的磁盘写入请求将与实际的记录请求一起被写入以便不断地写入到记录磁盘。而且,每当已接收到应用程序层级记录操作请求时,记录请求可与虚拟磁盘写入请求一起聚集在所聚集的磁盘队列中。当下一磁盘完成中断到来时,此磁盘写入请求将正常分派。换句话说,磁盘写入管线将一直忙于从应用程序层级记录操作请求累积的实际的磁盘写入请求或者虚拟的磁盘写入请求,但是一些虚拟的磁盘写入请求可能含有由应用程序发布的高层级记录操作。
使磁盘写入管线由例如请求完成中断等事件来驱动而不是由硬件时钟驱动可使记录系统自身适应磁盘写入管线的时序变化,这是因为由每一磁盘写入请求经历的时序可能变化。然而,通过保持磁盘写入管线装满虚拟的写入请求,因固件、软件或硬件而引起的所有时序变化将自动被考虑到且因此从稀疏模式磁盘记录的实施复杂性移除。将在以下揭露内容中解决与虚拟的磁盘写入请求相关联的额外的电力消耗。
假设记录系统连续地分派目标地址相距S的大小为S的磁盘写入请求,其中S对应于批量。可有两种可能的方法来减少因不必要的虚拟写入而引起的电力消耗。如图6中所说明的一种方法将是以与密集模式相同的方式提交磁盘写入请求的同一序列,但替代地,当不存在未决的记录操作请求时,提交哨兵写入请求,其意味着将每一所提交的磁盘写入请求的大小减小到仅一个磁盘扇区(512个字节)。以此方式,当不存在未决的记录操作请求时,写入到磁盘的字节的数量可减小一到两个数量级。换句话说,如果含有实际数据的批量是32kB,那么磁盘写入操作将在磁盘上写入整个32kB。但是,如果磁盘写入操作是针对不含有实际数据的虚拟写入,那么磁盘写入操作将仅写入512个字节。在图6中,如果不存在记录请求,那么T1、T2和T3将是大小为512个字节的虚拟写入。记录请求可与实际或虚拟数据一起聚集,且被提交以写入到磁盘,但是目标是背负式装运(piggyback)早先发布的哨兵请求。换句话说,去往T3的写入请求可写入T2中,而不是T3中。
节省能量的第二种方法将是与密集模式中一样每N个磁盘写入请求发布仅1个磁盘写入请求。图7说明根据本揭露的示范性实施例之一在较少的时隙中提交磁盘写入请求。当合并的记录必须被提交给磁盘时,密集模式设置将具有特定的时隙。通过每N个时隙提交一个请求,此将节省不写入N-1个时隙的能量。以此方式,当不存在未决的记录操作请求时,写入到磁盘的字节的数量将减小为1/N。举例来说,参看图7,图7说明提交每两个时隙中的仅1个时隙,通过不写入R200和R400中,可将能量消耗减半。
遗憾的是,实施这些想法并不简单,因为磁盘上的调度器对未良好协调的请求进行合并和重新排序。为了避免请求合并机制,可在每一所提交的磁盘写入请求到达磁盘上时在与磁盘头位置相距(例如)1毫秒(ms)处设定每一所提交的磁盘写入请求的目标地址。这将防止每一所提交的磁盘写入请求经历整转延迟。为了避免磁盘上的请求调度器,NCQ队列中的活动请求的有效数量可限于4,且此将确保活动请求的有效数量将相隔充分远。考虑到这些约束条件,可如下实施稀疏模式磁盘记录的低功率版本。
假定哨兵磁盘写入请求的序列将被分派给记录磁盘,而不管应用程序是否发布任何记录操作请求。当第N哨兵请求完成时,低功率应用程序将发布第N+2哨兵请求。连续的哨兵请求的目标地址之间的距离将是D个扇区,其中磁盘头通过D个扇区所花费的时间将是至少1毫秒。假设哨兵请求的目标地址是扇区T,那么在磁盘头通过扇区T-M-D时的时间与磁盘头通过扇区T-M时的时间之间到达的所有的应用程序发布的记录操作请求将被聚集为一个磁盘写入请求,所述磁盘写入请求将与此哨兵请求合并在一起。由这两个时间点标记的间隔将为与此哨兵请求相关联的可行间隔。M将在以下意义上代表经验安全裕度(empirical safety margin):如果新的请求将在不破坏服务次序的情况下与现有的哨兵请求合并在一起,那么所述新的请求将在磁盘头通过现有请求的目标地址之前到达磁盘的至少M个扇区。每一哨兵请求的大小将是4KB,因为这是可合并的请求的最小大小。此低功率操作不仅以简单的虚拟写入或完整的操作来分派相较于常规操作少的磁盘写入请求,而且保持每一请求小于完整操作或密集模式中的请求。
图8说明根据本揭露的示范性实施例之一的用于低功率操作的实例哨兵磁盘写入请求。图8展示低功率Beluga中的哨兵请求的实例时间表,其中D是250且M是100。哨兵请求的目标地址将假定为扇区250、500、750、1000、1250、1500等。具有目标地址扇区750的哨兵请求将在目标地址扇区250的请求完成时或在服务所述哨兵请求之前约500个扇区被分派。磁盘头掠过500个扇区可能花费1毫秒以上。另外,一次至多两个哨兵请求可处于磁盘上的队列中。对于此哨兵请求(跨越扇区750到757),在磁盘头通过扇区400时的时间与磁盘头通过扇区650时的时间之间到达的所有的应用程序发布的记录操作请求将被聚集为一个磁盘写入请求,所述磁盘写入请求的目标地址是扇区758且在磁盘头通过扇区650时被提交给磁盘。如果将不存在应用程序发布的记录操作请求,那么写入低功率操作中的字节的数量可为每250个扇区中的8个扇区,或大致是完整操作的扇区的1/30。
图9说明根据本揭露的示范性实施例之一使用不同RPM的磁盘的层次结构来实现稀疏模式记录。用于稀疏模式记录中的低功率操作的另一可行替代方案是使用不同RPM的磁盘的层次结构。由于硬盘中的能量消耗与磁盘旋转的速度成正比,所以使用较低的RPM的磁盘会以较小的吞吐量为代价而节省能量。对于密集模式中的快速记录,可使用图9中的15000RPM的磁盘。然而,在稀疏模式记录中,吞吐量不再是重要的准则,保证较低的等待时间将仍有较高的优先级。因此,通过使用例如5400RPM的磁盘等较小RPM的磁盘来节约能量。通过完全切断很少使用的磁盘,以使得还可节约因旋转而引起的能量,而可进一步优化具有最佳能量消耗的性能。
图10说明根据本揭露的示范性实施例之一的具有在每一合并记录中提交的较少数据的稀疏模式记录。通过智能地在每个写入操作中将每一合并记录中的较少数据提交给基础磁盘,可节约因不想要的密集模式写入而引起的能量。在记录磁盘系统用于稀疏模式记录时,通过将每N个扇区中的第一扇区写入合并记录中,或通过将每N个扇区中的最后一个扇区写入合并记录中,将预期记录请求会以慢于基础磁盘的最大吞吐量的速率到达。换句话说,可将用于前几个扇区1001或用于最后几个新扇区1002的数据写入合并记录中。任一种方法均有助于写入较少的数据,同时维持磁盘写入管线完整。待写入的数据的量可与记录请求摄取速率成比例地动态地选择,从而节约将数据写入到磁盘所花费的能量。
图11A到图11D说明本揭露的一实施例方法的性能测量。图11A展示在记录操作请求大小是256字节时当在磁盘上以不同的偏移量写入数据时的平均记录等待时间。图11B展示当使用不同的批量将256字节记录操作的日志记录写入到磁盘的不同部分时的256字节记录操作的等待时间和吞吐量。由于磁盘的不同部分的最佳批量可能不同,所以自适应批量选择机制将根据当前的磁盘头位置来选择最佳的批量。自适应批量选择机制能够保持整个磁盘上的平均记录等待时间低于1ms,而当磁盘头到达磁盘的中心时,使用固定的批量(例如,32kB)可导致平均记录等待时间增大70%以上。图11C展示在记录操作请求大小是256字节时,当磁盘的数量从1增大到3时,平均记录等待时间保持稳定且吞吐量急剧增大。图11D展示256字节记录操作下的1.2百万IOPS的吞吐量,同时端到端等待时间对于每一记录操作均在1ms以下。这些数字是此时所报告的最好的数字。1.2百万IOPS的意义在于,在7200RPM的磁盘上,100MBPS将是原始连续带宽。然而,每秒将100MBPS(其为100,000KBPS)转换为400,000个256字节操作不是无关紧要的任务。通过在本揭露一实施例中使用3个记录磁盘,IOPS将线性缩放且递送3*400K256字节请求/秒=1.2百万256字节记录/秒。
图12说明根据本揭露的示范性实施例之一的从记录磁盘的角度进行磁盘记录的方法。将假定示范性方法将用于例如HDD等临时非易失性存储媒体,以便将数据从例如高速缓冲存储器或RAM等易失性存储器记录到所述存储媒体。所述方法如下。在步骤S1201中,存储媒体从外部源接收具有第一批量的第一数据,并将所述第一数据存储到所述存储媒体的队列。在步骤S1202中,所述存储媒体将所述第一数据写入到所述存储媒体的磁盘。在步骤S1203中,所述存储媒体响应于所述将所述第一数据写入到所述外部源的完成而传输一中断。应注意的是,动态地调整所述第一批量,以使得写入所述第一数据的步骤相较于接收并存储所述第一数据的步骤花费更多的时间。
图13说明根据本揭露的示范性实施例之一的从电子装置的角度进行磁盘记录的方法。将假定所述电子装置至少具有但不限于执行本揭露的一实施例方法的处理器和控制器复合体、例如HDD等一个或一个以上临时非易失性存储媒体,以将数据从例如RAM或高速缓冲存储器等易失性存储器记录到所述存储媒体,且如下提出所述方法。在步骤S1301中,所述电子装置将来自电子装置的应用程序的第一数据聚集在(全局)队列中。在步骤S1302中,电子装置将(全局)队列的第一数据传送到存储媒体之一的每装置队列,其中每装置队列特定用于目标存储媒体,且从第一数据产生具有某一批量的第二数据。在步骤S1303中,将所述第二数据传送到所述目标存储媒体本地的板载队列。在步骤S1304中,将所述第二数据写入到所述目标存储媒体的磁盘。在步骤S1305中,存储媒体的磁盘控制器产生一中断以响应于完成将所述第二数据写入到所述电子装置,其中动态地调整所述第一批量,以使得写入所述第二数据的步骤相较于将所述第二数据传送到第三队列的步骤花费更多的时间。
图14说明具有控制器1402的存储媒体1401,且控制器1402用于:从外部源接收具有第一批量的第一数据,并将所述第一数据存储到所述存储媒体的队列;将所述第一数据写入到所述存储媒体的磁盘;以及传输一中断以响应于完成将所述第一数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述第一数据的步骤相较于接收并存储所述第一数据的步骤花费更多或实质上相同的时间。图15说明电子装置1500(即,磁盘记录子系统),其包括第一临时非易失性存储媒体1503以将来自易失性存储器1501的数据记录到所述第一存储媒体1503,且所述电子装置还包括控制器1502,所述控制器用于:将来自电子装置的应用程序的第一数据聚集在第一队列中;将第一队列的第一数据传送到第一存储媒体1503的第二队列,其中所述第二队列仅提供所述第一储存媒体1503使用,而从所述第一数据产生具有第一批量的第二数据;将所述第二数据传送到所述第一存储媒体1503本地的第三队列;将所述第二数据写入到所述第一存储媒体1503的磁盘;以及传输一中断以响应于完成将所述第二数据写入到所述第一队列,其中动态地调整所述第一批量,以使得写入所述第二数据的步骤相较于将所述第二数据传送到第三队列的步骤花费更多的时间。
而且应注意的是,从硬件角度来看,所述存储媒体可为执行本揭露的一实施例方法的典型硬盘机(HDD)。所述HDD将把数字数据存储在涂布有磁性材料的旋转盘片上,并将使用安置在移动致动器臂上的磁头在旋转盘片上读取和写入数据。所述硬盘机还将含有至少包含但不限于板载控制器/处理器、缓冲器存储器以及I/O端口的元件。
用于本申请案的所揭露实施例的详细描述中的元件、动作或指令不应解释为对本揭露而言为绝对关键或必要的,除非明确地如此描述。而且,如本文中所使用,用词“一”可包含一个以上项目。如果打算指仅一个项目,那么将使用术语“单一”或类似语言。此外,如本文中所使用,在多个项目和/或多个项目种类的列表之前的术语“中的任一者”希望包含所述项目和/或项目种类个别地或结合其它项目和/或其它项目种类“中的任一者”、“中的任何组合”、“中的任何多个”和/或“中的多个的任何组合”。另外,如本文中所使用,术语“集合”希望包含任何数量个项目,包含零个。另外,如本文中所使用,术语“数量”希望包含任何数量,包含零。
所属领域的技术人员将明白,在不脱离本揭露的范围或精神的情况下,可对所揭露的实施例的结构进行各种修改和变化。鉴于以上内容,希望本揭露涵盖本揭露的修改和变化,只要所述修改和变化落入所附权利要求书和其等效物的范围内。
此外,除非如此陈述,权利要求书不应视为限于所描述的次序或元件。
Claims (44)
1.一种磁盘记录方法,用于临时非易失性存储媒体,以将来自易失性存储器的数据记录到所述存储媒体,所述方法包括:
从外部源接收具有第一批量的第一数据,并将所述第一数据存储到所述存储媒体的队列;
将所述第一数据写入到所述存储媒体的磁盘;以及
传输中断以响应于完成将所述第一数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述第一数据的所述步骤相较于接收并存储所述第一数据的所述步骤花费更多或相同的时间。
2.根据权利要求1所述的方法,所述存储媒体是硬盘机(HDD),所述硬盘机将数字数据存储在涂布有磁性材料的旋转盘片上,并使用安置在移动致动器臂上的磁头在所述旋转盘片上读取和写入数据。
3.根据权利要求1所述的方法,仅响应于传输所述中断,所述存储媒体从所述外部源接收具有所述第一批量的所述第一数据,并将所述第一数据存储到所述存储媒体的所述队列中。
4.根据权利要求1所述的方法,动态地调整所述第一批量还包括,动态地调整所述第一批量,以使得写入所述第一数据的所述步骤与接收并存储所述第一数据的所述步骤花费相同的时间。
5.根据权利要求2所述的方法,所述存储媒体从所述存储媒体的第一磁轨的第一扇区到所述存储媒体的最后一个磁轨的最后一个扇区将数据不断地写入到所述磁盘而不间断。
6.根据权利要求5所述的方法,还包括:
在所述存储媒体写入到所述最后一个磁轨的所述最后一个扇区之前将所述第一数据传送到永久存储装置。
7.根据权利要求5所述的方法,还包括:
所述存储媒体不断地从所述存储媒体的所述第一磁轨的所述第一扇区到所述存储媒体的所述最后一个磁轨的所述最后一个扇区将数据写入到所述磁盘,而在其间没有空的扇区。
8.根据权利要求5所述的方法,还包括所述存储媒体不断地从所述存储媒体的所述第一磁轨的所述第一扇区到所述存储媒体的所述最后一个磁轨的所述最后一个扇区将数据写入到所述磁盘,而无需知晓所述存储媒体的确切几何形状细节。
9.根据权利要求1所述的方法,动态地调整所述第一批量,以使得所述存储媒体的外部磁轨中的所述第一批量大于所述存储媒体的内部磁轨中的所述第一批量。
10.根据权利要求9所述的方法,所述存储媒体维持固定的吞吐量,所述吞吐量是基于每秒的输入和输出的总数乘以所述动态地调整的第一批量来决定。
11.根据权利要求1所述的方法,该方法的所述步骤不是由操作系统的任何文件系统来管理。
12.根据权利要求1所述的方法,所述临时非易失性存储媒体的所述队列是由本地命令列队(NCQ)来管理。
13.根据权利要求12所述的方法,当所述存储媒体从所述外部源接收应用程序驱动的数据的固定串流时,所述本地命令列队设定为2。
14.根据权利要求1所述的方法,所述第一数据包括非应用程序驱动的虚拟数据。
15.根据权利要求14所述的方法,所述将所述第一数据写入到所述磁盘是仅一个扇区。
16.根据权利要求14所述的方法,所述第一数据还包括与所述虚拟数据在一起的所述应用程序驱动的数据。
17.根据权利要求14所述的方法,所述临时非易失性存储媒体的所述队列是由本地命令列队被设定为等于或大于2的值来管理。
18.根据权利要求14所述的方法,所述存储媒体在每N个写入时隙实行1个写入请求,其中N是大于1的整数。
19.根据权利要求14所述的方法,所述存储媒体将每n个扇区中的第一扇区写入合并记录中,或将每n个扇区的最后一个扇区写入合并记录中,其中n是大于1的整数。
20.根据权利要求1所述的方法,所述存储媒体属于由聚集所述外部源的数据的全局队列管理的磁盘阵列。
21.一种非易失性存储媒体,包括控制器,其中所述控制器用于
从外部源接收具有第一批量的第一数据,并将所述第一数据存储到所述存储媒体的队列;
将所述第一数据写入到所述存储媒体的磁盘;以及
传输一中断以响应于完成将所述第一数据写入到所述外部源,其中动态地调整所述第一批量,以使得写入所述第一数据的所述步骤相较于接收并存储所述第一数据的所述步骤花费更多或相同的时间。
22.根据权利要求21所述的存储媒体,所述存储媒体是硬盘机(HDD),所述硬盘机将数字数据存储在涂布有磁性材料的旋转盘片上,且使用安置在移动致动器臂上的磁头在所述旋转盘片上读取和写入数据。
23.一种磁盘记录方法,用于包括第一临时非易失性第一存储媒体的电子装置,以将来自易失性存储器的数据记录到所述第一存储媒体,所述方法包括:
将来自所述电子装置的应用程序的第一数据聚集在第一队列中;
将所述第一队列的所述第一数据传送到所述第一存储媒体的第二队列,其中所述第二队列仅提供所述第一储存媒体使用,而从所述第一数据产生具有第一批量的第二数据;
将所述第二数据传送到所述第一存储媒体本地的第三队列;
将所述第二数据写入到所述第一存储媒体的磁盘;以及
传输一中断以响应于完成将所述第二数据写入到所述第一队列,其中动态地调整所述第一批量,以使得写入所述第二数据的所述步骤相较于将所述第二数据传送到所述第三队列的所述步骤花费更多的时间。
24.根据权利要求23所述的方法,所述第一存储媒体是硬盘机,所述硬盘机将数字数据存储在涂布有磁性材料的旋转盘片上,并使用安置在移动致动器臂上的磁头在所述旋转盘片上读取和写入数据。
25.根据权利要求23所述的方法,仅响应于传输所述中断,所述第一存储媒体才接收所述第二数据,并将所述第二数据存储在所述第一存储媒体的所述第三队列中。
26.根据权利要求23所述的方法,动态地调整所述第一批量还包括,动态地调整所述第一批量,以使得写入所述第二数据的所述步骤与将所述第二数据传送到所述第三队列的所述步骤花费相同的时间。
27.根据权利要求24所述的方法,所述第一存储媒体从所述第一存储媒体的第一磁轨的第一扇区到所述第一存储媒体的最后一个磁轨的最后一个扇区将数据不断地写入到所述磁盘而不间断。
28.根据权利要求27所述的方法,还包括:
在所述第一存储媒体写入到所述最后一个磁轨的所述最后一个扇区之前将所述第二数据传送到永久存储装置。
29.根据权利要求27所述的方法,还包括所述第一存储媒体不断地从所述第一存储媒体的所述第一磁轨的所述第一扇区到所述第一存储媒体的所述最后一个磁轨的所述最后一个扇区将数据写入到所述磁盘而在其间没有空的扇区。
30.根据权利要求27所述的方法,还包括所述第一存储媒体不断地从所述第一存储媒体的所述第一磁轨的所述第一扇区到所述第一存储媒体的所述最后一个磁轨的所述最后一个扇区将数据写入到所述磁盘而无需知晓所述第一存储媒体的确切几何形状细节。
31.根据权利要求23所述的方法,动态地调整所述第一批量,以使得所述第一存储媒体的外部磁轨中的所述第一批量大于所述第一存储媒体的内部磁轨中的所述第一批量。
32.根据权利要求31所述的方法,所述第一存储媒体维持固定的吞吐量,所述吞吐量是基于每秒的输入和输出的总数乘以所述动态地调整的第一批量来决定。
33.根据权利要求25所述的方法,该方法的所述步骤不是由所述电子装置的操作系统的任何文件系统来管理。
34.根据权利要求23所述的方法,所述第一存储媒体的所述第三队列是由本地命令列队来管理。
35.根据权利要求34所述的方法,当所述第一存储媒体从所述外部源接收应用程序驱动的数据的固定串流时,将所述本地命令列队设定为2。
36.根据权利要求23所述的方法,所述第一队列包括非应用程序驱动的虚拟数据。
37.根据权利要求36所述的方法,所述将所述第二数据写入到所述磁盘是仅一个扇区。
38.根据权利要求36所述的方法,所述第二数据还包括与所述虚拟数据在一起的应用程序驱动的数据。
39.根据权利要求36所述的方法,所述临时非易失性第一存储媒体的所述队列是由本地命令列队(NCQ)被设定为等于或大于2的值来管理。
40.根据权利要求36所述的方法,所述第一存储媒体在每N个写入时隙实行1个写入请求,其中N是大于1的整数。
41.根据权利要求36所述的方法,所述存储媒体将每n个扇区中的第一扇区写入合并记录中,或将每n个扇区的最后一个扇区写入合并记录中,其中n是大于1的整数。
42.根据权利要求36所述的方法,所述电子装置还包括以不同于所述第一存储媒体的速度旋转的第二存储媒体,其中所述第一存储媒体和所述第二存储媒体电耦接到所述第一队列。
43.根据权利要求42所述的方法,所述电子装置基于所述应用程序驱动的数据的量而选择所述第一存储媒体或所述第二存储媒体。
44.一种电子装置,包括临时非易失性第一存储媒体以将来自易失性存储器的数据记录到所述第一存储媒体,且包括控制器,所述控制器用于:
将来自所述电子装置的应用程序的第一数据聚集在第一队列中;
将所述第一队列的所述第一数据传送到所述第一存储媒体的第二队列,其中所述第二队列仅提供所述第一储存媒体使用,而从所述第一数据产生具有第一批量的第二数据;
将所述第二数据传送到所述第一存储媒体本地的第三队列;
将所述第二数据写入到所述第一存储媒体的磁盘;以及
传输一中断以响应于完成将所述第二数据写入到所述第一队列,其中动态地调整所述第一批量,以使得写入所述第二数据的所述步骤相较于将所述第二数据传送到所述第三队列的所述步骤花费更多的时间。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361803120P | 2013-03-19 | 2013-03-19 | |
US61/803,120 | 2013-03-19 | ||
US14/080,813 US9176820B2 (en) | 2013-03-19 | 2013-11-15 | Disk logging method applicable to storage medium and electronic device, storage medium using the same and electronic device using the same |
US14/080,813 | 2013-11-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063184A true CN104063184A (zh) | 2014-09-24 |
CN104063184B CN104063184B (zh) | 2017-08-04 |
Family
ID=51550917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310744510.5A Active CN104063184B (zh) | 2013-03-19 | 2013-12-30 | 磁盘记录方法及其非易失性存储媒体与电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063184B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159649A (zh) * | 2015-09-21 | 2015-12-16 | 上海无线电设备研究所 | 一种基于旋转队列体制的多功能fifo存储器及其读写方法 |
CN108604164A (zh) * | 2015-11-27 | 2018-09-28 | Netapp股份有限公司 | 用于存储区域网络协议存储的同步复制 |
CN108881770A (zh) * | 2015-07-27 | 2018-11-23 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN108920101A (zh) * | 2018-06-27 | 2018-11-30 | 河北工业大学 | 一种软硬协同动态负载存储方法 |
CN111026335A (zh) * | 2019-12-12 | 2020-04-17 | 天地伟业技术有限公司 | 一种优化存储性能提升硬盘兼容性的方法 |
CN111796765A (zh) * | 2019-04-03 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 优化数据存储系统性能的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462038A (zh) * | 2001-05-31 | 2003-12-17 | 株式会社半导体能源研究所 | 非易失存储器及其驱动方法 |
WO2005109213A1 (en) * | 2004-05-03 | 2005-11-17 | Gemini Storage Corporation | Adaptive cache engine for storage area network including systems and methods related thereto |
CN101443726A (zh) * | 2006-05-10 | 2009-05-27 | 马维尔国际贸易有限公司 | 包括具有闪存接口的硬盘驱动器的自适应存储系统 |
-
2013
- 2013-12-30 CN CN201310744510.5A patent/CN104063184B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462038A (zh) * | 2001-05-31 | 2003-12-17 | 株式会社半导体能源研究所 | 非易失存储器及其驱动方法 |
WO2005109213A1 (en) * | 2004-05-03 | 2005-11-17 | Gemini Storage Corporation | Adaptive cache engine for storage area network including systems and methods related thereto |
CN101443726A (zh) * | 2006-05-10 | 2009-05-27 | 马维尔国际贸易有限公司 | 包括具有闪存接口的硬盘驱动器的自适应存储系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881770A (zh) * | 2015-07-27 | 2018-11-23 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN108881770B (zh) * | 2015-07-27 | 2021-01-05 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN105159649A (zh) * | 2015-09-21 | 2015-12-16 | 上海无线电设备研究所 | 一种基于旋转队列体制的多功能fifo存储器及其读写方法 |
CN105159649B (zh) * | 2015-09-21 | 2018-08-14 | 上海无线电设备研究所 | 一种基于旋转队列体制的多功能fifo存储器及其读写方法 |
CN108604164A (zh) * | 2015-11-27 | 2018-09-28 | Netapp股份有限公司 | 用于存储区域网络协议存储的同步复制 |
CN108604164B (zh) * | 2015-11-27 | 2020-02-21 | Netapp股份有限公司 | 用于存储区域网络协议存储的同步复制 |
CN108920101A (zh) * | 2018-06-27 | 2018-11-30 | 河北工业大学 | 一种软硬协同动态负载存储方法 |
CN108920101B (zh) * | 2018-06-27 | 2021-03-30 | 河北工业大学 | 一种软硬协同动态负载存储方法 |
CN111796765A (zh) * | 2019-04-03 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 优化数据存储系统性能的方法 |
CN111796765B (zh) * | 2019-04-03 | 2024-04-02 | 阿里巴巴集团控股有限公司 | 优化数据存储系统性能的方法 |
CN111026335A (zh) * | 2019-12-12 | 2020-04-17 | 天地伟业技术有限公司 | 一种优化存储性能提升硬盘兼容性的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104063184B (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1768014B1 (en) | Storage control apparatus, data management system and data management method | |
US10223272B2 (en) | Latency sensitive metadata object persistence operation for storage device | |
US7962704B2 (en) | Storage system of storage hierarchy devices and a method of controlling storage hierarchy devices based on a user policy of I/O performance and power consumption | |
CN104063184B (zh) | 磁盘记录方法及其非易失性存储媒体与电子装置 | |
Wu et al. | Reducing SSD access latency via NAND flash program and erase suspension | |
TWI537937B (zh) | 磁片記錄方法及其非暫時性儲存媒體與電子裝置 | |
US6941420B2 (en) | Log-structure array | |
JP5296664B2 (ja) | 仮想テープ記録装置およびそのテープマウント制御方法 | |
EP0080875B1 (en) | Data storage system for a host computer | |
US8862819B2 (en) | Log structure array | |
CN101976178B (zh) | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 | |
JPH07271521A (ja) | 計算機システム | |
US11436159B2 (en) | Using multi-tiered cache to satisfy input/output requests | |
US9927981B2 (en) | Hybrid data storage device with partitioned local memory | |
US20220334970A1 (en) | Using multi-tiered cache to satisfy input/output requests | |
US20170344269A1 (en) | Storage system, control apparatus, and method of transmitting data | |
JP7131053B2 (ja) | 記憶装置,情報処理プログラムおよび情報処理システム | |
US8627126B2 (en) | Optimized power savings in a storage virtualization system | |
US10628045B2 (en) | Internal data transfer management in a hybrid data storage device | |
US20140068214A1 (en) | Information processing apparatus and copy control method | |
JP2007272721A (ja) | ストレージ装置及びその制御方法 | |
US10459658B2 (en) | Hybrid data storage device with embedded command queuing | |
CN110825314B (zh) | 一种数据调度方法及装置 | |
CN1312570C (zh) | 进行硬盘阵列数据迁移的方法及相关装置 | |
JPWO2016001959A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |