CN108885539B - 在数据存储设备中预先加载目录数据 - Google Patents

在数据存储设备中预先加载目录数据 Download PDF

Info

Publication number
CN108885539B
CN108885539B CN201780021511.3A CN201780021511A CN108885539B CN 108885539 B CN108885539 B CN 108885539B CN 201780021511 A CN201780021511 A CN 201780021511A CN 108885539 B CN108885539 B CN 108885539B
Authority
CN
China
Prior art keywords
data storage
data
storage drive
directory
host
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.)
Active
Application number
CN201780021511.3A
Other languages
English (en)
Other versions
CN108885539A (zh
Inventor
R·J·托米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108885539A publication Critical patent/CN108885539A/zh
Application granted granted Critical
Publication of CN108885539B publication Critical patent/CN108885539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

本发明公开了用于在数据存储系统中提供目录数据访问的系统和方法。附网存储设备(NAS)包括用于与主机进行通信的主机接口、用于与和NAS相关联的数据存储驱动器通信的接口、高速缓存存储器和控制器,该控制器被配置成通过以下步骤进入节电模式:从数据存储驱动器请求目录数据,将目录数据存储在高速缓冲存储器中,并且在请求目录数据之后,将待机指令发送到数据存储驱动器。

Description

在数据存储设备中预先加载目录数据
相关申请的交叉引用
本专利申请要求2016年4月14日提交的题为“PRELOADING OF DIRECTORY DATA INDATA STORAGE DEVICES”的美国专利申请15/098,853,该专利申请的公开其整体通过引用结合于此。
背景技术
技术领域
本公开涉及数据存储系统。更具体地,本公开涉及用于在数据存储系统中预先加载目录数据的系统和方法。
相关技术的描述
当访问存储在数据存储设备中的数据时,客户端可依赖于数据存储设备诸如盘驱动器提供的目录数据。如果目录数据仅保持在盘介质中,则在盘驱动器加速旋转时可以延迟访问此类目录数据。
附图说明
在附图中出于示例性目的示出了各种实施方案,并且绝不应理解为限制本公开的范围。此外,可组合所公开的不同实施方案的各种特征以形成作为本公开的一部分的另外实施方案。
图1是根据一个或多个实施方案的联网数据存储系统的示图。
图2是根据一个或多个实施方案的数据存储系统的示图。
图3是示出根据一个或多个实施方案的用于管理目录数据的过程的流程图。
具体实施方式
虽然描述了某些实施方案,但这些实施方案仅以举例的方式呈现,并且不旨在限制保护范围。实际上,本文所述的新方法和系统可以多种其他形式实施。此外,可在不背离保护范围的情况下做出本文所述的方法和系统的形式的各种省略,替代和改变。
概述
附网存储(NAS)驱动器/系统能够在计算机网络上提供文件级的数据存储,其中访问所存储的数据对一个或多个本地和/或远程客户端来说是可访问的。NAS可包括硬件,软件或此类组件的组合,其被配置为使得NAS操作为一个或多个客户端的文件服务器。NAS设备/系统可提供用于远程访问用户数据的便利机制。图1是示出NAS系统100的实施方案的示图,其中附网存储设备(NAS)120通过网络170通信地耦接到一个或多个客户端设备,以便通过网络170向设备提供数据存储服务。可具有访问NAS 120的客户端设备的类型可包括但不限于电话137,诸如智能电话、电缆机顶盒136、智能电视135、视频游戏控制台134、膝上型计算机133、平板电脑132、台式计算机131,可穿戴计算机和/或其他网络连接的计算设备。网络170可以是局域网(LAN),广域网(WAN)(例如,互联网)或其他类型的计算机网络。
在某些实施方案中,NAS 120可包括被配置为存储用户文件和/或其他数据的盘介质。例如,NAS 120可包括一个或多个盘驱动器,其中NAS 120被配置为服务存储在连接到客户端的一个或多个盘驱动器上的数据。虽然本文在磁盘介质的上下文公开了某些实施方案,但应该理解的是本文所公开的原则可适用于光盘存储器,或其他类型的盘存储器或可能需要加速旋转或以其他方式准备好以允许从其读取数据的存储器。虽然本文在NAS设备/系统的上下文中描述了某些实施方案,但应当理解,本文提及的NAS还可应用于其他类型的数据存储设备/系统,诸如任何类型的实施软件的计算机设备,从而允许访问盘驱动器数据存储,该盘驱动器数据存储在从其提供数据之前需要加速旋转。
在某些实施方案中,NAS 120仅提供基于文件的服务。另选地,NAS120可被配置为运行软件以提供附加服务器功能。在某些实施方案中,NAS120能够通过客户端设备接口诸如移动或桌面计算设备的web浏览器来配置在网络170上。例如,低水平操作系统可实现在NAS中,诸如FreeNAS或其他开源NAS解决方案。在某些实施方案中,NAS 120实现Linux操作系统等。NAS 120可以使用一个或多个网络文件共享协议,诸如网络文件系统(NFS),服务器消息块(SMB/CIFS),AFP等,提供对文件的访问。
在某些实施方案中,当访问存储在NAS 120上的一个或多个文件时,客户端/主机设备可首先从NAS接收文件目录数据121。文件目录数据121可包括例如文件分配表(FAT)等。例如,NAS 120可执行操作系统(例如,Linux系统),该操作系统保持系统数据(例如,目录数据)限定的文件系统,该系统数据识别文件、文件夹,或与文件系统相关联的其它信息或元数据。由NAS 120保持的目录数据121可基于由NAS 120实现的特定文件系统。任何合适的或期望的文件系统均可根据本公开使用。术语“目录数据”和“目录信息”此处根据其宽泛和普通意义来使用并且可涉及任何系统数据或者与文件系统或体系结构,或与文件本身相关联的元数据。目录数据可以识别文件目录,或者文件夹,这可以允许用户将文件分组到单独的集合。目录数据可以包括将文件名与内容表格中的索引(例如,Unix类文件系统中的索引节点)相关联的数据。与目录数据相关联的文件分级结构可以是任何类型的分级结构,例如平面(即,线性)体系结构,或定义目录和子目录的分级结构。目录数据可包括与由NAS120保持的文件相关联的元数据,诸如文件名,文件内容长度,目录分级结构中的文件位置等,并且可与目录数据与其物理和/或逻辑相关联的文件分开存储。
当客户端向NAS 120请求数据存储访问时,NAS 120可首先向客户端提供目录数据121,以允许客户端查看NAS 120的文件系统。如果目录数据121存储在处于如下状态的数据存储中:当前未在其上存储可被立即访问的数据,则可能在为通过NAS 120请求的存储访问提供服务时存在延迟,这从客户端的角度来看可能是不可取的。例如,如果NAS 120包括盘介质,在给定时刻或时间段,盘介质可能不会加速旋转,诸如当盘介质处于断电状态时。盘或盘驱动器的加速旋转可指代盘驱动器将其一个或多个盘片/盘从停止状态加速到运行速度的过程。驱动器执行该过程所花费的时间段可称为加速旋转时间,并且可引起数据访问延迟,如本文所述。所需的操作速度可能取决于盘驱动器的设计。盘介质的示例性操作速度可以是2400、3600、4200、5400、7200、10000或15000转每分钟(RPM)或一些其他速度。实现和保持一个或多个盘的操作速度可能需要NAS 120的可用电力预算的大部分,并且因此可能要仔细控制对盘施加电力。例如,可加速旋转一个或多个盘以便根据操作的节电模式来节省电力。NAS 120还可被配置为停止盘旋转以便减少噪音和/或振动。
本文所公开的某些实施方案提供了在将盘驱动器减速旋转之前,通过在非盘介质中缓存目录数据来降低服务数据存储设备诸如NAS设备中的存储访问请求时的延迟。通过从高速缓存提供目录数据,而可在提供目录数据之前不需要盘加速旋转,本文公开的系统、设备和方法可在盘介质已被置于节电模式之后增强定位/浏览文件的用户体验。
目录数据保持
图2是示出根据示例性实施方案的附网存储设备(NAS)220的框图。在一些实施方案中,NAS 220可被认为是NAS服务器设备。NAS 220可被配置为将目录数据提供给主机(即,客户端)210,而无需首先使与NAS 220相关联的盘介质250加速旋转。术语“主机”和“客户端”在本文中根据其广义和普通含义使用,并且可在本文所呈现的某些上下文中大体上互换使用。虽然设备220被示出并描述为本公开中的NAS设备,但应当理解,设备220可能不是网络可访问的,并且可以是任何类型的数据存储设备。
参见图2,NAS设备220可包括控制器230和一个或多个盘驱动器240,其可安装在NAS 220的壳体中或以其他方式通信地耦接到NAS 220和/或控制器230。一个或多个盘驱动器240中的每一者可包括非易失性磁盘介质250。在某些实施方式中,NAS 220可以是,例如,包括磁性介质和固态介质两者的混合硬盘驱动器。盘介质250可包括已涂覆有磁性薄膜的一个或多个盘。膜可被配置为通过向磁性读/写头发送电子脉冲而在其上写入数据,该磁读/写头是头部组件244的一部分。
控制器230可提供对NAS 220的总体控制。控制器230可从主机系统210的存储器接口212(例如,设备驱动器)接收数据和存储访问命令。在某些实施方案中,存储器接口212利用与NAS 220通信的域名服务器(DNS)服务器。可以通过web地址统一资源定位器(URL)来调用NAS。由存储器接口212传送的存储访问命令可包括由主机系统210发出的写入和读取命令。存储访问命令可在NAS 220中指定逻辑块地址(LBA)或LBA的范围,并且控制器230可在一个或多个盘驱动器240中执行所接收的存储访问命令。
NAS 220可被配置为实现数据冗余。例如,控制器230可实现独立盘冗余阵列(RAID)技术,其中一个或多个盘驱动器240包括结合到逻辑单元中的多个驱动器、盘或其他数据存储分区,以用于数据冗余和性能改进。此外或另选地,控制器230可被配置为使用与某些实施方案中的一个或多个外部存储设备组合的一个或多个内部存储器模块来实现RAID。
主机系统210和NAS 220之间的连接可以是有线的,诸如通过以太网、USB或其他连接,或者可以是无线的,诸如通过WiFi,蓝牙或其他无线连接。在某些实施方案中,在互联网上实现主机系统210和NAS 220之间的连接,其中主机系统210和NAS 220中的每一者通过有线或无线连接而连接至互联网。主机210可被配置为基本上没有网络映射的情况下来访问NAS 220。主机210可以使用任何合适的通信协议,诸如CIFS、AFP等访问NAS 220。
NAS 220可存储从主机系统210接收的数据,使得NAS 220充当主机系统210的数据存储。为了促进该存储器功能,控制器230可实现逻辑接口。逻辑接口可以向主机系统210呈现NAS的数据存储,作为一组逻辑地址(例如,连续地址),其中数据可以存储在该逻辑地址中。控制器230可将逻辑地址映射到一个或多个盘驱动器240和/或一个或多个其他存储器模块中的各种物理存储器地址。
一个或多个盘驱动器240可包括主轴马达和头部组件硬件244,包括在相应的一个或多个盘上径向致动的一个或多个读/写头,以及用于旋转一个或多个盘的主轴马达。主轴马达可用于将一个或多个盘加速旋转到运行速度,如上所述。另选地或除此盘介质250之外,一个或多个盘驱动器240可包括固态存储器和/或其他非易失性存储器。一个或多个盘驱动器240还可包括高速缓存存储器模块246,该高速缓存存储器模块可与盘介质250分开或与其集成。一个或多个盘驱动器240还可包括控制器242,该控制器可包括用于在盘介质中执行操作的一个或多个处理器和/或硬件逻辑。
控制器230可包括一个或多个处理器,该处理器被配置为执行操作系统,诸如Linux操作系统。控制器230可实现基于文件的文件系统,而一个或多个盘驱动器240可被配置为在块级别或其他数据抽象级别执行存储命令。
控制器230可以例如通过串行AT附件(SATA)连接与一个或多个盘驱动器240通信。在某些实施方案中,控制器230包括电力管理功能236,其可被设计用于通过一个或多个盘驱动器240来管理进入和退出节电模式。例如,电力管理模块236可被配置为通过将一个或多个命令通过两者间的通信信道上发送到一个或多个盘驱动器240来启动睡眠模式等。在某些实施方案中,通过一个或多个盘驱动器240的相对不活动的时间段触发节电模式。例如,电力管理模块236可监测与一个或多个盘驱动器240相关联的空闲时间,其中在空闲时间的量达到一定阈值之后,启动节电模式。
当一个或多个盘驱动器240是断电状态时,响应于从主机系统210接收的数据存储访问请求,驱动器可从断电状态唤醒。例如,主机210可在网络连接上发送命令以发现NAS220。在NAS 220中寻找数据存储访问时,主机210可初始请求目录结构。如果目录数据252仅保持在盘介质250上,则马达244可能必须先加速旋转盘介质250以便为主机210检索目录数据252。
当主机210连接到NAS 220时,如果一个或多个驱动器240处于节电模式(例如,旋转变慢),则可以延迟浏览文件的共享目录,需要盘加速旋转。在一些具体实施中,本公开涉及用于通过加速提供目录数据(252,239)来减少或消除此类延迟的系统、方法和设备,从而为用户提供更快的响应。如上所述,目录数据(252,239)可包含识别用户文件的目录位置的元数据。与文件254自身相比,目录数据可以相对少量的数据。目录数据可标识相关文件系统分级结构/结构。
控制器230可包括或被耦接到高速缓存存储器模块238,其可包括固态随机存取存储器(RAM)或NAND闪存存储器(即,基于逻辑NAND型栅极结构的闪存存储器)。一般来讲,NAS与主机系统210之间的数据路径可包括高速缓存238。因此,在将数据提供到主机系统210时,控制器可从一个或多个盘驱动器或高速缓存238提供此类数据。本文所公开的某些实施方案在初始响应主机请求时提供了由控制器230从高速缓存238提供目录数据239,而不是从盘介质250提供。为了允许从高速缓存238提供此类目录数据239,某些实施方案提供用于在高速缓存238中存储所述目录数据239,理所当然地与启动一个或多个盘驱动器240的减速旋转相关。
在某些实施方案中,控制器被配置为在进入节电模式之前将一个或多个命令提供到一个或多个盘驱动器240;即,在发送待机命令之前(例如,恰好在发送此类命令之前),该控制器可以将一个或多个命令发送到一个或多个盘驱动器240以从盘介质250检索目录数据252用于将目录数据存储在高速缓存238中。待机命令可能导致一个或多个盘驱动器240进入节电模式。节电模式可以通过使得驱动器旋转变慢,例如在预设空闲时间之后来提供节电。
借助存储在高速缓存238中的目录数据239,控制器230可能够向主机210提供目录数据239,而不考虑到一个或多个盘驱动器240的操作状态,这可防止对主机系统210的存储访问请求服务的不期望的延迟。主机210可在盘介质250加速旋转的期间浏览目录数据239。如果主机210浏览的目录数据239至少需要加速旋转盘介质250所需的时间量,在访问存储在盘介质250上的文件254时主机210大体上可能不会经历延迟。
数据访问过程
如上所述,NAS或其他数据存储设备可通过输入节电或睡眠模式来节省电力,其中盘介质可被减慢旋转以实现节电。在一些具体实施中,当主机/客户端尝试访问数据存储设备时,由于需要加速旋转存储介质,可能会经历延迟。这种延迟可能是10秒或更少,或可长达30-60秒。图3是示出根据本文公开的一个或多个实施方案的用于大体上没有延迟地提供目录信息的过程300的流程图。过程300涉及数据存储设备,诸如磁盘驱动器,在框302处输入节电模式,其中节电模式涉及减速旋转盘介质。在一些具体实施中,盘减速旋转设计为定时器期满之后发生。可将待机命令发送到数据存储驱动器,以指引驱动器进入节电模式。
通常,在待机命令通过NAS控制器发送到与之相关联的盘驱动器之后,NAS存储器(例如,RAM)可能包含上一次访问的用户数据,和可能不包括NAS的文件系统的目录数据。盘驱动器可以先使用存储器,然后到达盘以响应I/O请求。本文所公开的实施方案通过利用在盘存储器不处于运行速度时在NAS存储器中包含的数据的可用性的优势而提供减少的数据访问延迟。在一些具体实施中,如在图3所示,本文所公开的原则规定在将待机指令发送至盘驱动器之前执行目录刷新以用目录数据预先加载NAS存储器(例如,RAM),通常在退出节电模式时由客户端访问该目录数据。此类配置允许NAS设备在盘介质为用户访问而加速旋转时利用高速缓存存储器中的目录数据进行响应。
参照图3,节电模式可以至少部分地由预定义的,或预先设定的,空闲时间段的流逝而触发,在图3的示图中的框301处示出。尽管框301被图示为对应于预先设定的时间段的流逝,但是应当理解启动节电模式,如框302所示,或可将盘驱动器置于旋转减速状态的其他条件可能或可能不在时间段或其他空闲时间估计的流逝之前。
在框304,过程300涉及,诸如与启动或进入节电模式或其他盘旋转减速过程相关,从进入节电模式或旋转降速状态的一个或多个盘驱动器请求目录数据。框304的步骤可涉及将目录刷新命令发送到数据存储驱动器。
在框306处,过程300涉及将目录数据存储在与盘介质分开的存储器模块中,诸如高速缓存存储器(例如,NAS设备的主存储器)。从数据存储驱动器请求的目录数据可以在盘断电期间保持在高速缓存存储器,或其他存储器模块,例如固态存储器模块或阵列中。在某些实施方案中,该目录数据被缓存在随机存储存储器(RAM)设备中,如上所述。如上所述,目录数据保持在固态存储器模块或其他高速缓存或存储设备或模块中可允许访问目录数据不论盘存储器当前是否旋转或者处于关闭或待机状态。在某些实施方案中,目录数据不包括可由客户端管理的映射数据。
在框308处,过程300涉及向一个或多个盘驱动器提供待机命令。如上所述,待机命令可引导存储驱动器降速旋转和/或执行一个或多个其他节电操作。
如图3的示图中,集合框303可以包括用于针对与数据存储设备相关联的一个或多个盘驱动器进入节电或待机模式的子过程。例如,在待机或节电模式中,数据存储设备可包括在此类模式下保持在减速旋转状态中的一个或多个盘驱动器。虽然框302-308是按特定的顺序说明,应该理解的是节电模式或待机模式的子过程303可以以任何所期望的或实际的顺序来执行。此外,在某些实施方案中可省略子过程303的一个或多个步骤,和/或图3中未示出的一个或多个附加步骤可包括在子过程303中。根据子过程303,在进入节电模式完成之前(例如,在进入节电模式之前的最后操作),该目录数据被检查并且加载到高速缓存(例如,RAM)中。在某些实施方案中,电力在节电模式期间仍被提供给高速缓存,因此高速缓存可为易失性存储器。
根据某些数据存储协议(例如,SATA协议),刷新目录命令(上文相对于框304所述)和/或待机命令(上文针对框308所述)可为标准命令。除了刷新目录和待机命令,子过程303可以包括一个或多个附加命令,诸如高速缓存刷新命令,或与进入节电模式相关联的其它命令。例如,参考图2,高速缓存刷新命令可涉及将高速缓存238的至少一些内容刷新到与一个或多个盘驱动器240相关联的盘介质250或其他介质。
在某些实施方案中,除了预先加载高速缓存中的目录数据,一个或多个文件或其他数据的片段也可基于有关在将一个或多个盘驱动器从睡眠模式唤醒时客户端初始可能会请求的假设预先加载。
在完成子过程303之后,一个或多个数据存储驱动器,例如盘驱动器,可以处于待机状态,其中该盘驱动器被至少部分地减速旋转。
在框310处,在处于待机状态时,过程300涉及从主机或客户端设备或系统接收数据存储访问请求,以请求访问存储在盘驱动器中的数据。例如,主机或客户端可提出查看与数据存储驱动器相关联的文件系统和/或存储在其上的一个或多个文件的请求。
接收数据存储访问请求可触发一个或多个存储驱动器的唤醒过程。主机可能希望最初查看目录结构,该目录结构定义一个或多个存储驱动器的内容。如上所述,在一些具体实施中,可将目录数据存储在一个或多个减速旋转的存储驱动器中,在提供对数据的访问之前需要将存储驱动器加速旋转。相反,在框312处,过程300涉及将目录数据从高速缓存存储器提供到主机或客户端设备或系统,而不是一个或多个存储驱动器。即,由于目录数据保持在高速缓存中,因此过程300允许直接从高速缓存中提供目录数据,而无需在其之前请求一个或多个盘驱动器的加速旋转。例如,如图3的示图中所示,过程300可以允许在盘驱动器加速旋转之前或者与盘驱动器的加速旋转至少部分同步地将目录数据提供给客户端或主机,在框314处表示。因此,可通过允许基本上同时访问目录数据来减轻和/或防止与加速旋转盘驱动器相关联的上述可能延迟,以用于服务数据访问请求。例如,主机可在与一个或多个加速旋转盘驱动器所需要的时间量相同或比其大的时间段内与目录数据交互,从而有效地消除了与盘驱动器加速旋转相关联的任何延迟。延迟的这种减少可有利地增加用户满意度。
在未在高速缓存存储器中提供目录数据维护的具体实施中,可能经历10秒或更多(例如,13秒)的延迟,而图3的过程可导致小于一秒的延迟。在框316,该过程300涉及在将目录数据直接或间接从高速缓存存储器中提供给主机之后将用户数据从加速旋转的盘驱动器提供给主机。虽然本文在盘驱动器的上下文中描述了实施方案,但是本文所公开的原则可适用于在固态设备,诸如NAND闪存上存储用户文件的系统。该过程300可以至少部分地由NAS设备的控制器执行,诸如由如图2中所示和上述的附网存储设备220的控制器230执行。
附加实施方案
本领域的技术人员将会理解,在一些实施方案中,可实现其他类型的目录数据访问系统,设备和方法,同时保持在本公开的范围内。此外,本文上述过程中采取的实际步骤可能不同于所述或附图中所示的那些步骤。根据实施方案,可以去除上述步骤中的某些步骤,可添加其他步骤。
虽然描述了某些实施方案,但这些实施方案仅以举例的方式呈现,并且不旨在限制保护范围。实际上,本文所述的新方法和系统可以多种其他形式实施。此外,可做出本文所述的方法和系统的形式的各种省略,替代和改变。所附权利要求及其等同物旨在涵盖属于保护范围和实质的此类形式或修改。例如,图中所示的各种部件可被实现为处理器上的软件和/或固件,专用集成电路(ASIC),现场可编程门阵列(FPGA),或专用硬件。另外,上文公开的具体实施方案的特征和属性可以不同的方式组合以形成另外的实施方案,所有这些实施方案落入本公开的范围内。虽然本公开提供了某些优选的实施方案和应用,但对于本领域的普通技术人员而言显而易见的其他实施方案,包括未提供本文所述的所有特征和优点的实施方案也在本公开的范围内。因此,本公开的范围旨在仅通过参考附加权利要求来限定。
以上所述的所有过程可由一个或多个通用或专用计算机或处理器执行的软件代码模块中实施,并且完全自动化。代码模块可存储在任何类型的计算机可读介质或其他计算机存储设备或存储设备的集合上。另选地,所述方法中的一些或全部可在专用计算机硬件中实施。

Claims (12)

1.一种附网存储设备(NAS),包括:
主机接口,所述主机接口用于与主机通信,所述主机与所述NAS分开;
存储器接口,所述存储器接口用于与数据存储驱动器通信,所述数据存储驱动器与所述NAS相关联,所述数据存储驱动器包括盘存储器和盘驱动控制器;
与所述数据存储驱动器分开的固态高速缓存存储器;和
与所述数据存储驱动器分开的控制器,并且所述控制器被配置为:
确定已经过预设的空闲时间;以及
响应于已经过所述预设的空闲时间的所述确定,导致所述数据存储驱动器至少部分通过以下步骤进入节电模式:
从所述数据存储驱动器请求存储在所述盘存储器中的目录数据,所述目录数据包括文件目录结构,所述文件目录结构至少包括目录、子目录、文件名以及存储在所述数据存储驱动器上的所有文件在所述文件目录结构中的文件位置;
从所述数据存储驱动器接收所述目录数据;
将所述目录数据存储在所述固态高速缓存存储器中;和
在接收所述目录数据之后,向所述数据存储驱动器发送待机命令;以及
响应于在处于所述节电模式时接收来自所述主机的访问所述数据存储驱动器的请求,至少部分通过以下操作退出所述节电模式;
将加速旋转信号发送至所述数据存储驱动器;以及
在所述数据存储驱动器完成加速旋转之前并且不访问所述数据存储驱动器,将所述目录数据从所述NAS的所述固态高速缓存存储器提供至所述主机,其中所述主机被配置为显示所述数据存储驱动器的所述文件目录结构。
2.根据权利要求1所述的NAS,其中:
所述控制器被进一步配置为响应于进入所述节电模式,在向所述数据存储驱动器发送所述待机命令之前执行高速缓存刷新命令,以及
所述执行所述高速缓存刷新命令致使所述固态高速缓存存储器的内容被存储在所述数据存储驱动器中。
3.根据权利要求1所述的NAS,其中所述向所述主机提供所述目录数据在所述接收来自所述主机访问所述数据存储驱动器的所述请求的一秒内执行。
4.根据权利要求1所述的NAS,其中所述将所述目录数据存储在所述固态高速缓存存储器中允许通过所述主机浏览所述目录数据而不等待所述数据存储驱动器加速旋转。
5.根据权利要求1所述的NAS,其中所述控制器被进一步配置为,在所述数据存储驱动器完成加速旋转之后,将用户数据从所述数据存储驱动器提供至所述主机。
6.根据权利要求1所述的NAS,其中所述请求所述目录数据包括向所述数据存储驱动器发送目录刷新命令。
7.一种管理附网存储设备(NAS)中的数据的方法,所述方法包括:
至少部分通过以下步骤将与NAS关联的数据存储驱动器置于节电模式:
确定已经过预设的空闲时间;以及
响应于已经过所述预设的空闲时间的所述确定:
从所述数据存储驱动器请求目录数据,所述目录数据包括文件目录结构,所述文件目录结构至少包括目录、子目录、文件名以及存储在所述数据存储驱动器上的所有文件在所述文件目录结构中的文件位置,所述数据存储驱动器包括存储所述目录数据的盘存储器;
从所述数据存储驱动器接收所述目录数据;
将所述目录数据存储在所述NAS的固态高速缓存存储器中,所述固态高速缓存存储器与所述数据存储驱动器分开;以及
在将所述目录数据存储在所述固态高速缓存存储器中之后,向所述数据存储驱动器发送待机命令;以及
响应于在处于所述节电模式时接收来自主机的访问所述数据存储驱动器的请求,至少部分通过以下操作使所述数据存储驱动器退出所述节电模式;
向所述数据存储驱动器发送加速旋转信号;以及
在所述数据存储驱动器完成加速旋转之前并且不访问所述数据存储驱动器,将所述目录数据从所述NAS的所述固态高速缓存存储器提供至所述主机,其中所述主机被配置为显示所述数据存储驱动器的所述文件目录结构。
8.根据权利要求7所述的方法,还包括在向所述数据存储驱动器发送所述待机命令之前执行高速缓存刷新命令,其中所述执行所述高速缓存刷新命令包括将所述固态高速缓存存储器的内容存储在所述数据存储驱动器中。
9.根据权利要求7所述的方法,其中所述向所述主机提供所述目录数据在所述接收来自所述主机访问所述数据存储驱动器的所述请求的一秒内执行。
10.根据权利要求7所述的方法,其中将所述目录数据存储在所述固态高速缓存存储器中允许通过所述主机浏览所述目录数据而不等待所述数据存储驱动器加速旋转。
11.根据权利要求7所述的方法,还包括,在所述数据存储驱动器完成加速旋转之后,将用户数据从所述数据存储驱动器提供至所述主机。
12.根据权利要求7所述的方法,其中所述请求所述目录数据包括向所述数据存储驱动器发送目录刷新命令。
CN201780021511.3A 2016-04-14 2017-02-28 在数据存储设备中预先加载目录数据 Active CN108885539B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/098,853 US10346044B2 (en) 2016-04-14 2016-04-14 Preloading of directory data in data storage devices
US15/098,853 2016-04-14
PCT/US2017/019977 WO2017180255A1 (en) 2016-04-14 2017-02-28 Preloading of directory data in data storage devices

Publications (2)

Publication Number Publication Date
CN108885539A CN108885539A (zh) 2018-11-23
CN108885539B true CN108885539B (zh) 2021-07-20

Family

ID=58358858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780021511.3A Active CN108885539B (zh) 2016-04-14 2017-02-28 在数据存储设备中预先加载目录数据

Country Status (4)

Country Link
US (1) US10346044B2 (zh)
CN (1) CN108885539B (zh)
DE (1) DE112017002034T5 (zh)
WO (1) WO2017180255A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327670B2 (en) * 2020-01-09 2022-05-10 International Business Machines Corporation Reducing power consumption in a dispersed storage network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770494A1 (en) * 2005-09-20 2007-04-04 Hitachi, Ltd. System for controlling the spinning of disks
CN101622606A (zh) * 2006-12-06 2010-01-06 弗森多系统公司(dba弗森-艾奥) 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法
CN104267912A (zh) * 2014-09-19 2015-01-07 北京联创信安科技有限公司 一种nas加速方法及系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970006398B1 (ko) * 1992-05-26 1997-04-28 후지쓰 가부시끼가이샤 자기디스크 장치
US6016508A (en) 1997-07-02 2000-01-18 Microsoft Corporation Server-determined client refresh periods for dynamic directory services
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
JP3756708B2 (ja) * 1999-09-30 2006-03-15 株式会社東芝 情報処理端末装置およびそのファイル管理方法
US7363429B2 (en) 2004-01-29 2008-04-22 Toshiba Corporation System and method for caching directory data in a networked computer environment
US7730482B2 (en) * 2004-06-08 2010-06-01 Covia Labs, Inc. Method and system for customized programmatic dynamic creation of interoperability content
JP4751153B2 (ja) * 2005-06-08 2011-08-17 株式会社日立製作所 記憶システム
US20070125837A1 (en) * 2005-12-01 2007-06-07 Chan-Won Park Method for processing reception call in mobile RFID service, and a wireless communication terminal employing the same
JP2008181461A (ja) * 2007-01-26 2008-08-07 Hitachi Ltd Nas装置間でのデータ移行を制御する装置及び方法
US7966289B2 (en) * 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US8706976B2 (en) * 2007-08-30 2014-04-22 Commvault Systems, Inc. Parallel access virtual tape library and drives
JP5020774B2 (ja) * 2007-10-24 2012-09-05 株式会社日立製作所 先読みを用いたストレージ消費電力削減方法及びその方法を用いた計算機システム
US20090217067A1 (en) * 2008-02-27 2009-08-27 Dell Products L.P. Systems and Methods for Reducing Power Consumption in a Redundant Storage Array
US9442850B1 (en) * 2008-03-25 2016-09-13 Blue Coat Systems, Inc. Efficient directory refresh operations in wide area file systems
JP5183300B2 (ja) * 2008-05-28 2013-04-17 株式会社日立製作所 ファイルシステムの移行方法、移行計算機及びプログラム
JP5207367B2 (ja) * 2008-06-16 2013-06-12 株式会社日立製作所 ストレージシステムの消費電力を削減する計算機システム及びその制御方法
JP2010015518A (ja) * 2008-07-07 2010-01-21 Hitachi Ltd ストレージシステム
US7849129B2 (en) * 2008-09-30 2010-12-07 Hitachi, Ltd. System and method for preventing throughput depression in power saving NAS system
WO2010077787A1 (en) * 2009-01-05 2010-07-08 Marvell World Trade Ltd. Method and system for hibernation or suspend using a non-volatile-memory device
US8122217B2 (en) * 2009-05-06 2012-02-21 International Business Machines Corporation Method of a full coverage low power mode for storage systems storing replicated data items
US20100313044A1 (en) * 2009-06-03 2010-12-09 Microsoft Corporation Storage array power management through i/o redirection
US20110289331A1 (en) 2009-06-30 2011-11-24 Hitachi, Ltd Storage system and its information processing method
CN104750434B (zh) * 2009-07-20 2018-01-26 卡林戈公司 存储集群中的自适应功率保存
WO2011067806A1 (en) * 2009-12-01 2011-06-09 Hitachi, Ltd. Storage system having power saving function
US8301715B2 (en) * 2010-05-20 2012-10-30 Sandisk Il Ltd. Host device and method for accessing a virtual file in a storage device by bypassing a cache in the host device
US8938582B2 (en) * 2010-07-01 2015-01-20 Infinidat Ltd. Storage systems with reduced energy consumption
JP2012243105A (ja) * 2011-05-19 2012-12-10 Buffalo Inc ファイル管理装置及びその制御プログラム
US8812899B1 (en) * 2011-09-29 2014-08-19 Emc Corporation Managing read caching
US9355036B2 (en) * 2012-09-18 2016-05-31 Netapp, Inc. System and method for operating a system to cache a networked file system utilizing tiered storage and customizable eviction policies based on priority and tiers
US20140082129A1 (en) * 2012-09-18 2014-03-20 Netapp, Inc. System and method for managing a system of appliances that are attached to a networked file system
CN103733588B (zh) * 2012-09-20 2017-02-22 华为终端有限公司 一种播放媒体资源的方法及系统
CN103777725A (zh) * 2012-10-18 2014-05-07 鸿富锦精密工业(深圳)有限公司 存储装置电源管理系统及方法
US20140162687A1 (en) * 2012-12-10 2014-06-12 Qualcomm Incorporated Techniques for determining a state of proximity between mobile devices
KR20150098649A (ko) * 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US9142272B2 (en) * 2013-03-15 2015-09-22 International Business Machines Corporation Dual asynchronous and synchronous memory system
US20160006829A1 (en) * 2013-10-02 2016-01-07 Hitachi, Ltd. Data management system and data management method
CN105264972B (zh) * 2014-05-08 2019-03-01 华为技术有限公司 用户设备和用户设备节电处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1770494A1 (en) * 2005-09-20 2007-04-04 Hitachi, Ltd. System for controlling the spinning of disks
CN101622606A (zh) * 2006-12-06 2010-01-06 弗森多系统公司(dba弗森-艾奥) 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法
CN104267912A (zh) * 2014-09-19 2015-01-07 北京联创信安科技有限公司 一种nas加速方法及系统

Also Published As

Publication number Publication date
US10346044B2 (en) 2019-07-09
WO2017180255A1 (en) 2017-10-19
CN108885539A (zh) 2018-11-23
US20170300234A1 (en) 2017-10-19
DE112017002034T5 (de) 2019-03-07

Similar Documents

Publication Publication Date Title
JP6016939B2 (ja) テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム
KR100246870B1 (ko) 디스크 구동 제어 방법 및 장치
US8301852B2 (en) Virtual storage migration technique to minimize spinning disks
US7644239B2 (en) Non-volatile memory cache performance improvement
US7912994B2 (en) Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US8196034B2 (en) Computer system and method for reducing power consumption of storage system
US20090177836A1 (en) Methods and apparatuses for managing data in a computer storage system
JP2014167760A (ja) 制御装置及び制御プログラム
US20070061509A1 (en) Power management in a distributed file system
US10719118B2 (en) Power level management in a data storage system
TW201643685A (zh) 磁碟驅動器速度管理方法與系統及其相關非暫態電腦可讀取存取媒體
JP2013200868A (ja) 動的に適応されるキャッシュ格納のためのシステム
US8036076B2 (en) Method of reducing storage power consumption by use of prefetch and computer system using the same
CN108885539B (zh) 在数据存储设备中预先加载目录数据
CN106200860B (zh) 硬盘功耗、硬盘功耗管理服务控制方法及装置
JP6100750B2 (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
US7571279B2 (en) Accessing a disk drive at multiple speeds
WO2016069031A1 (en) Managing a storage pool
US20120324077A1 (en) Providing Resource Accessbility During a Sleep State
TWI553462B (zh) 可降低耗電之硬碟裝置以及降低硬碟裝置耗電之方法
US20100299310A1 (en) Method for accessing data storage unit
US11720551B1 (en) Method and system for streaming data from portable storage devices
JP2009070359A (ja) ハードディスクレス型コンピュータの起動効率を向上可能な広域通信網起動システム
KR100927821B1 (ko) 확장 저장 공간을 지원하는 모바일 단말기 및 운용 방법
CN100334545C (zh) 控制计算机系统噪音产生的装置及其方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant