CN111459261A - 磁盘唤醒方法、装置、电子设备及存储介质 - Google Patents
磁盘唤醒方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111459261A CN111459261A CN202010258721.8A CN202010258721A CN111459261A CN 111459261 A CN111459261 A CN 111459261A CN 202010258721 A CN202010258721 A CN 202010258721A CN 111459261 A CN111459261 A CN 111459261A
- Authority
- CN
- China
- Prior art keywords
- power saving
- saving unit
- disk
- unit
- read
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3268—Power saving in hard disk drive
-
- 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/0625—Power saving in 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/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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Power Sources (AREA)
Abstract
本申请提出一种磁盘唤醒方法、装置、电子设备及存储介质。该方法包括:接收磁盘访问请求;根据所述磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;在所述已唤醒磁盘集合中没有查找到所述目标磁盘的情况下,对所述目标磁盘所属的节电单元执行唤醒操作;其中,所述节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;所述已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。本申请实施例能够控制磁盘阵列中同时在线的磁盘数量,避免由于同时在线的磁盘数量过多而导致的耗电峰值,进而可保障等功率机柜中能容纳更多的磁盘,提高了机柜中使用磁盘的密度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种磁盘唤醒方法、装置、电子设备及存储介质。
背景技术
在传统的MAID(Massive Arrays of Idle Disks,大规模非活动磁盘阵列存储)技术中,在大部分时间,大多数磁盘是处在非工作状态的。只有需要时才将一部分磁盘唤醒,而其他磁盘通常处于断电状态。例如,在MAID存储中处于开机运转状态的磁盘经过预定的空闲时间后会重新变为断电状态。在一些特定的场景下,由于多个用户同时访问大量的数据,很容易导致唤醒的磁盘个数多,从而出现耗电峰值,即同一时间很多磁盘同时在线使得功耗过高。这种状况的出现极大地限制了机柜中使用磁盘的密度,从而影响存储系统的性能。
发明内容
本申请实施例提供一种磁盘唤醒方法、装置、电子设备及存储介质,以解决相关技术存在的问题中的至少一个,技术方案如下:
第一方面,本申请实施例提供了一种磁盘唤醒方法,包括:
接收磁盘访问请求;
根据磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
在已唤醒磁盘集合中没有查找到目标磁盘的情况下,对目标磁盘所属的节电单元执行唤醒操作;
其中,节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
在一种实施方式中,根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;方法还包括:
创建指定长度的读取淘汰队列,根据最近最少使用算法将最近读取的节电单元添加到读取淘汰队列中;
其中,将最近读取的节电单元添加到读取淘汰队列中,包括:将最后一次读取的节电单元添加到读取淘汰队列的队尾位置。
在一种实施方式中,根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,当前写入节电单元是最后一次写入的磁盘所属的节电单元,即将写入节电单元是根据预定顺序确定的当前写入节电单元的下一个节电单元。
在一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,上述方法还包括:
累计目标磁盘所属的节电单元的引用计数。
在一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,或者在对目标磁盘所属的节电单元执行唤醒操作之后,还包括:
调用预先注册的与访问请求对应的唤醒完毕程序。
在一种实施方式中,磁盘访问请求包括磁盘读取请求;上述方法还包括:
在已唤醒磁盘集合中查找到目标磁盘的情况下,判断目标磁盘是否在读取淘汰队列的节电单元中;
在目标磁盘在读取淘汰队列的节电单元中的情况下,将目标磁盘所属的节电单元移动到读取淘汰队列的队尾位置。
在一种实施方式中,在目标磁盘不在读取淘汰队列的节电单元中的情况下,方法还包括:
判断读取淘汰队列是否已满;
在读取淘汰队列已满的情况下,将淘汰队列的队首元素从淘汰队列中移除,并对队首元素对应的节电单元执行休眠操作。
在一种实施方式中,上述方法还包括:将目标磁盘所属的节电单元增加到读取淘汰队列的队尾位置。
在一种实施方式中,磁盘访问请求包括磁盘写入请求;上述方法还包括:
在目标磁盘所属的节电单元不是当前写入节电单元的情况下,对当前写入节电单元执行休眠操作;
在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,对即将写入节电单元执行休眠操作;
在目标磁盘所属的节电单元是即将写入节电单元的情况下,将即将写入节电单元作为新的当前写入节电单元。
在一种实施方式中,在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,方法还包括:
判断目标磁盘所属的节电单元是否在读取淘汰队列中;
在目标磁盘所属的节电单元在读取淘汰队列中的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元,并将目标磁盘所属的节电单元从淘汰队列中移除;
在目标磁盘不在已唤醒磁盘集合的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元。
在一种实施方式中,上述方法还包括:
根据预定顺序确定新的当前写入节电单元的下一个节电单元;
将新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
在一种实施方式中,上述方法还包括:
判断新的即将写入节电单元是否在读取淘汰队列中;
在新的即将写入节电单元在读取淘汰队列中的情况下,将新的即将写入节电单元从淘汰队列中移除;
在新的即将写入节电单元不在读取淘汰队列中的情况下,对新的即将写入节电单元执行唤醒操作。
在一种实施方式中,执行唤醒操作包括:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
在一种实施方式中,执行休眠操作包括:
在执行休眠操作的节电单元的引用计数减为零的情况下,将执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从已唤醒磁盘集合中移除。
第二方面,本申请实施例提供了一种磁盘唤醒装置,包括:
接收单元,用于接收磁盘访问请求;
查找单元,用于根据磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
执行单元,用于在已唤醒磁盘集合中没有查找到目标磁盘的情况下,对目标磁盘所属的节电单元执行唤醒操作;
其中,节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
在一种实施方式中,根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;
上述装置还包括创建单元,用于:创建指定长度的读取淘汰队列,根据最近最少使用算法将最近读取的节电单元添加到读取淘汰队列中;
其中,将最近读取的节电单元添加到读取淘汰队列中,包括:将最后一次读取的节电单元添加到读取淘汰队列的队尾位置。
在一种实施方式中,根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,当前写入节电单元是最后一次写入的磁盘所属的节电单元,即将写入节电单元是根据预定顺序确定的当前写入节电单元的下一个节电单元。
在一种实施方式中,上述装置还包括累计单元,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,累计目标磁盘所属的节电单元的引用计数。
在一种实施方式中,上述装置还包括调用单元,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,或者在对目标磁盘所属的节电单元执行唤醒操作之后,调用预先注册的与访问请求对应的唤醒完毕程序。
在一种实施方式中,磁盘访问请求包括磁盘读取请求;上述装置还包括操作单元,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,判断目标磁盘是否在读取淘汰队列的节电单元中;
在目标磁盘在读取淘汰队列的节电单元中的情况下,将目标磁盘所属的节电单元移动到读取淘汰队列的队尾位置。
在一种实施方式中,操作单元还用于:
在目标磁盘不在读取淘汰队列的节电单元中的情况下,判断读取淘汰队列是否已满;
在读取淘汰队列已满的情况下,将淘汰队列的队首元素从淘汰队列中移除,并对队首元素对应的节电单元执行休眠操作。
在一种实施方式中,操作单元还用于:将目标磁盘所属的节电单元增加到读取淘汰队列的队尾位置。
在一种实施方式中,磁盘访问请求包括磁盘写入请求;
执行单元还用于:在目标磁盘所属的节电单元不是当前写入节电单元的情况下,对当前写入节电单元执行休眠操作;在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,对即将写入节电单元执行休眠操作;
操作单元还用于:在目标磁盘所属的节电单元是即将写入节电单元的情况下,将即将写入节电单元作为新的当前写入节电单元。
在一种实施方式中,操作单元还用于:
在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,判断目标磁盘所属的节电单元是否在读取淘汰队列中;
在目标磁盘所属的节电单元在读取淘汰队列中的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元,并将目标磁盘所属的节电单元从淘汰队列中移除;
在目标磁盘不在已唤醒磁盘集合的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元。
在一种实施方式中,操作单元还用于:
根据预定顺序确定新的当前写入节电单元的下一个节电单元;
将新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
在一种实施方式中,操作单元还用于:判断新的即将写入节电单元是否在读取淘汰队列中;在新的即将写入节电单元在读取淘汰队列中的情况下,将新的即将写入节电单元从淘汰队列中移除;
执行单元还用于:在新的即将写入节电单元不在读取淘汰队列中的情况下,对新的即将写入节电单元执行唤醒操作。
在一种实施方式中,执行单元包括唤醒子单元,用于:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
在一种实施方式中,执行单元包括休眠子单元,用于:
在执行休眠操作的节电单元的引用计数减为零的情况下,将执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从已唤醒磁盘集合中移除。
第三方面,本申请实施例提供了一种电子设备,该设备包括:存储器和处理器。其中,该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述各方面任一种实施方式中的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机程序,当计算机程序在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
上述技术方案中的优点或有益效果至少包括:能够控制磁盘阵列中同时在线的磁盘数量,避免由于同时在线的磁盘数量过多而导致的耗电峰值,进而可保障等功率机柜中能容纳更多的磁盘,提高了机柜中使用磁盘的密度。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1为根据本申请实施例的磁盘唤醒方法的流程图;
图2为实施本申请实施例的磁盘唤醒方法的磁盘电源控制装置的结构示意图;
图3为根据本申请实施例的磁盘唤醒方法的读唤醒节电单元的控制流程图;
图4为根据本申请实施例的磁盘唤醒方法的写唤醒节电单元的控制流程图;
图5为根据本申请实施例的磁盘唤醒方法的新建节电单元对象的流程图;
图6为根据本申请实施例的磁盘唤醒方法的销毁节电单元对象的流程图;
图7为根据本申请实施例的磁盘唤醒装置的结构示意图;
图8为根据本申请实施例的磁盘唤醒装置的结构示意图;
图9为根据本申请实施例的磁盘唤醒装置的执行单元的结构示意图;
图10为用来实现本申请实施例的电子设备的框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1为根据本申请实施例的磁盘唤醒方法的流程图。如图1所示,该磁盘唤醒方法可以包括:
步骤S110,接收磁盘访问请求;
步骤S120,根据磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
步骤S130,在已唤醒磁盘集合中没有查找到目标磁盘的情况下,对目标磁盘所属的节电单元执行唤醒操作;
其中,节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
在本申请实施例中,为了便于对磁盘阵列中各个磁盘的电源进行有效控制,首先在磁盘阵列中设置若干个节电单元。例如在MAID和RAID(Redundant Arrays ofIndependent Disks,RAID,独立磁盘构成的具有冗余能力的磁盘阵列)中,一个节电单元可包括磁盘阵列中的至少一个磁盘。在进行磁盘电源控制的过程中,以节电单元为统一进行电源管理的存储空间,将节电单元内有所有磁盘统一执行唤醒操作和休眠操作。
在对磁盘阵列统一进行电源管理的过程中,可根据应用需求选择适当的方式在磁盘阵列中设置节电单元。在一种实施方式中,节电单元和磁盘阵列中的磁盘的对应关系可以是一对一的关系,即一个节电单元对应于磁盘阵列中的一个磁盘。在另一种实施方式中,节电单元和磁盘阵列中的磁盘的对应关系还可以是一对多的关系,即一个节电单元包括磁盘阵列中的多个磁盘。在又一种实施方式中,节电单元和磁盘阵列中的磁盘的对应关系也可以是多对多的关系,即一个节电单元包括磁盘阵列中的多个磁盘,同时磁盘阵列中的一个磁盘也可以归属于多个不同的节电单元。在上述各种实施方式中,可考虑将彼此关联较大适于统一唤醒上电的磁盘设置在一个节电单元中。
在一个示例中,节电单元可以包括磁盘阵列中的多个磁盘或磁盘分区。例如,磁盘阵列中包括磁盘A、磁盘B和磁盘C,上述三块磁盘又分别包括分区1、分区2和分区3。可设置磁盘A的分区1,磁盘B的分区2组成节电单元1,磁盘B的分区1和磁盘C的分区2组成节电单元2。对节电单元1执行唤醒操作的过程包括唤醒磁盘A和磁盘B;对节电单元2执行唤醒操作的过程包括唤醒磁盘B和磁盘C;唤醒节电单元1和节电单元2这两个节电单元则对应唤醒3个磁盘:磁盘A、磁盘B和磁盘C。
本申请实施例中,对节电单元执行唤醒操作可由用户对磁盘的访问操作而触发。在步骤S110中,接收到来自用户的磁盘访问请求,其中,用户对磁盘的访问请求可包括读取请求或写入请求。在步骤S120中,可根据磁盘访问请求计算出读取请求或写入请求对应的磁盘信息,也就是计算出用户想到访问的目标磁盘的磁盘信息。例如,可根据磁盘访问请求获得目标磁盘的磁盘编号。磁盘编号可以包括磁盘位置所在的机柜号和槽位号。在步骤S120中,首先查看磁盘访问请求中用户想到访问的磁盘是否在已唤醒磁盘集合中。如果目标磁盘在已唤醒磁盘集合中,说明目标磁盘目前是已唤醒状态,则无需再对目标磁盘执行唤醒操作。
在步骤S130中,如果目标磁盘不在已唤醒磁盘集合中,则根据预先设置的节电单元的信息可以得到目标磁盘所属的节电单元,然后再对目标磁盘所属的节电单元执行唤醒操作。对目标磁盘所属的节电单元执行唤醒操作可包括对该节电单元中的所有磁盘统一执行唤醒操作,将该节电单元中的所有磁盘的电源置于开启(Power ON)状态。相对应地,对目标磁盘所属的节电单元执行休眠操作可包括对该节电单元中的所有磁盘统一执行休眠操作,将该节电单元中的所有磁盘的电源置于关闭(Power OFF)状态。
在已唤醒磁盘集合中包括最近访问过的磁盘。可采用淘汰算法确定执行休眠操作的节电单元,从而控制已唤醒磁盘集合中的磁盘个数。例如,可采用LRU(Least RecentlyUsed,最近最少使用)算法,在最近访问过的节电单元中选择最久未访问的节电单元予以淘汰。一个示例性的LRU算法的实现方法可包括:赋予每个节电单元一个访问字段,用来记录一个节电单元自上次被访问以来所经历的时间t。当须淘汰一个节电单元时,在现有节电单元中选择t值最大的,即最近最少使用的节电单元予以淘汰。对予以淘汰的节电单元执行休眠操作。由此,本发明实施例中,采用淘汰算法确定执行休眠操作的节电单元,减少了处于已唤醒状态的节电单元的个数,进而限制已唤醒磁盘集合中的磁盘个数。
在传统的MAID中,对于在线磁盘总数不做限制,所以很容易出现耗电峰值。即同一时间很多磁盘同时在线使得功耗过高,这种状况的出现极大地限制了机柜中使用磁盘的密度。在本申请实施例中,可通过上述方法限制已唤醒磁盘集合中磁盘的个数,将磁盘阵列中同时在线的磁盘数量控制在有限的范围内,避免由于同时在线的磁盘数量过多而导致的耗电峰值,进而可保障等功率机柜中能容纳更多的磁盘,提高了机柜中使用磁盘的密度。
如前述,已唤醒磁盘集合中包括根据淘汰算法确定的节电单元中的磁盘。其中,根据淘汰算法确定节电单元,可包括:设置读取淘汰队列和写入淘汰队列;根据淘汰算法将最近读取的节电单元和最近写入的节电单元作为队列元素,分别添加到读取淘汰队列和写入淘汰队列中。将节电单元添加到上述两个队列时,会对该节电单元执行唤醒操作。如果将某个节电单元从上述两个队列中移除,在该节电单元不在上述两个队列中的情况下,会对该节电单元执行休眠操作。其中,淘汰算法可包括LRU算法。在采用LRU算法确定节电单元的情况下,可将读取淘汰队列和写入淘汰队列分别称为“读LRU队列”和“写LRU队列”。
在一种实施方式中,根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;方法还包括:
创建指定长度的读取淘汰队列,根据最近最少使用(LRU)算法将最近读取的节电单元添加到读取淘汰队列中;
其中,将最近读取的节电单元添加到读取淘汰队列中,包括:将最后一次读取的节电单元添加到读取淘汰队列的队尾位置。
在一个示例中,在读取淘汰队列的数据结构中,新添加到队列中的节电单元放置在队尾位置,越早加入队列的节电单元越接近队首的位置。由于指定了队列长度,在队列未满时,需要在队尾添加新的队列元素的情况下,可将新的队列元素直接添加到队尾位置;在队列已满时若还需要在队尾添加新的队列元素的情况下,将队首元素移除队列,然后再将新的队列元素添加到队尾位置。
一方面,在传统的MAID中,于多个用户同时访问大量的数据,很容易导致唤醒的磁盘个数多,从而出现耗电峰值。本申请实施例中,由于指定了读取淘汰队列的队列长度,限制了读取淘汰队列中节电单元的个数,从而使得磁盘阵列中同时在线的磁盘数量在有限的范围内,避免由于同时在线的磁盘数量过多而导致的耗电峰值,进而可保障等功率机柜中能容纳更多的磁盘,提高了机柜中使用磁盘的密度。
另一方面,在传统的MAID中,磁盘启动之后,处于Power ON状态的磁盘经过一定空闲时间(例如5秒)后,根据策略重新断电,磁盘电源变成Power OFF(关闭)状态。在这种策略的控制下,假设应用每隔一段时间间隔(例如10秒)进行一次磁盘访问,则磁盘会反复在Power ON状态和Power OFF状态之间进行切换。因此传统的电源控制策略在一些特定的场景下,容易造成对应磁盘的反复无用的上下电,从而影响延长了调度时间,降低了响应速度。
本申请实施例采用LRU算法根据节电单元的历史访问记录在读取淘汰队列中将最近最少访问的节电单元淘汰。其核心思想是“如果节电单元最近被访问过,那么它将来被访问的几率也更高”。采用LRU算法可将最近访问过的节电单元中的磁盘始终处于已唤醒状态,从而避免磁盘发生反复无用的上下电的情况,减少了响应时间,提高了运行效率。
在一种实施方式中,写入淘汰队列中的节电单元也可根据LRU算法确定。在一个示例中,可设置写入淘汰队列的队列长度为2。则写入淘汰队列中包括2个队列元素,分别是当前写入节电单元和即将写入节电单元。
在一种实施方式中,根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,当前写入节电单元是最后一次写入的磁盘所属的节电单元,即将写入节电单元是根据预定顺序确定的当前写入节电单元的下一个节电单元。
基于同样理由,一方面,由于指定了写入淘汰队列的队列长度,限制了写入淘汰队列中节电单元的个数,从而使得磁盘阵列中同时在线的磁盘数量在有限的范围内,避免由于同时在线的磁盘数量过多而导致的耗电峰值。另一方面,采用LRU算法可将最近写入的节电单元中的磁盘始终处于已唤醒状态,从而避免磁盘发生反复无用的上下电的情况。
参见图2所示,实现本申请实施例的磁盘唤醒方法的磁盘电源控制装置中,节电控制层用于对磁盘陈列中各个磁盘的电源状态进行控制。其中,在磁盘陈列中预先设置若干个节电单元。节电单元结构包括节电单元主键、用户对节电单元引用计数、节电单元状态和节电单元相关磁盘数组。其中,节电单元主键用于唯一标识各个节电单元。用户对节电单元引用计数用于累计用户对该节电单元访问的次数。在有用户访问某个节电单元时,将该节电单元的引用计数加1,在结束引用之后将该节电单元的引用计数减1。例如,在用户向磁盘写入数据或从磁盘读取数据时,分别触发相关写唤醒或读唤醒的流程,在写唤醒或读唤醒的流程中将该节电单元的引用计数加1。节电单元状态包括已唤醒状态(上电状态、PowerON)和已休眠状态(下电状态、Power OFF)。节电单元相关磁盘数组是将该节电单元中包括的磁盘信息存储在数组结构中。如图2中节电单元相关磁盘数组中的元素包括磁盘0、磁盘1、磁盘…、磁盘n。
参见图2,活跃磁盘集合是所有处于已唤醒状态的磁盘组成的集合。节电单元相关磁盘数组中的每个元素可以是一个指向磁盘的指针。在该节电单元处于已唤醒状态时,节电单元相关磁盘数组中的每个元素都可以是一个指针,该指针指向活跃磁盘集合中的一个磁盘。在一个示例中,可采用结构体作为描述磁盘信息的数据结构。结构体中的变量可包括磁盘主键、节电单元对磁盘引用计数、磁盘电源状态。磁盘主键用于唯一标识磁盘阵列中的各个磁盘。节电单元对磁盘引用计数用于累计用户对该磁盘访问的次数。在有用户访问某个磁盘时,将该节电单元的引用计数加1,并且将该磁盘所属的节电单元中所有磁盘的引用计数加1;在结束引用之后将该节电单元的引用计数减1,并且将该磁盘所属的节电单元中所有磁盘的引用计数减1。磁盘电源状态包括已唤醒状态(上电状态、Power ON)和已休眠状态(下电状态、Power OFF)。
参见图2,所有处于已唤醒状态的节电单元组成活跃节电单元集合。读LRU队列中的元素也可以是一个指针,该指针指向活跃节电单元集合中的一个节电单元。同样地,当前写入节电单元和即将写入节电单元也可以是一个指向活跃节电单元集合中的一个节电单元的指针。
图3为根据本申请实施例的磁盘唤醒方法的读唤醒节电单元的控制流程图。响应用户从磁盘读取数据,磁盘电源控制装置调用如图3所示的读唤醒节电单元的控制流程。并且,当磁盘电源控制装置确认磁盘唤醒后,会调用预先注册的唤醒完毕程序,用户进行相关数据操作。用户操作结束后,结束引用节电单元,对节电单元中的节电引用计数减1。如图3所示,首先执行步骤3.1,将当前写入节电单元赋值给变量M0,将即将写入节电单元赋值给变量M1。然后执行步骤3.2,判断待唤醒的节电单元是否为M0。其中,待唤醒的节电单元也就是需要执行唤醒操作的目标磁盘所属的节电单元。若步骤3.2的判断结果为是,则执行步骤3.3,把M0标记为N。接下来执行步骤3.4,将N的引用计数加1,并调用唤醒完毕程序。
参见图3,在步骤3.2中,判断待唤醒的节电单元是否为M0。若否,则执行步骤3.5,判断待唤醒的节电单元是否为M1。若是,则执行步骤3.6,把M1标记为N。接下来还是执行步骤3.4,将N的引用计数加1,并调用唤醒完毕程序。
参见图3,在步骤3.5中,判断待唤醒的节电单元是否为M1。若否则执行步骤3.7,判断待唤醒的节电单元是否在读LRU队列中,若是,在执行步骤3.8之后,接下来还是执行步骤3.4,将N的引用计数加1,并调用唤醒完毕程序。
综上,在以下三种情况下执行步骤3.4(将N的引用计数加1,并调用唤醒完毕程序):第一,判断待唤醒的节电单元是当前写入节电单元;第二,判断待唤醒的节电单元是即将写入节电单元;第三,待唤醒的节电单元在读LRU队列中。而在上述三种情况中,读LRU队列中的节电单元、当前写入节电单元和即将写入节电单元都属于根据淘汰算法确定的节电单元。并且,根据淘汰算法确定的节电单元中的磁盘都在已唤醒磁盘集合中。因此,上述三种情况可以总结为:在已唤醒磁盘集合中查找到目标磁盘的情况下,累计目标磁盘所属的节电单元的引用计数,并调用唤醒完毕程序。
在读唤醒节电单元的一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,上述方法还包括:
累计目标磁盘所属的节电单元的引用计数。
另外还有一种情况,在步骤3.7中,判断待唤醒的节电单元是否在读LRU队列中。若否,这种情况属于在已唤醒磁盘集合中查找不到目标磁盘的情况,则在执行步骤3.9、步骤3.12和步骤3.13之后,新建节电单元对象N。其中,新建节电单元对象N的过程中包括对目标磁盘所属的节电单元执行唤醒操作,其中也包括累计节电单元引用计数的步骤。新建节电单元对象N之后,执行步骤3.11之后,接下来执行步骤3.12,调用唤醒完毕程序。也就是说,在对目标磁盘所属的节电单元执行唤醒操作之后,调用唤醒完毕程序。
在读唤醒节电单元的一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,或者在对目标磁盘所属的节电单元执行唤醒操作之后,还包括:
调用预先注册的与访问请求对应的唤醒完毕程序。
其中,用户需要预先将唤醒完毕程序注册给磁盘电源控制装置。唤醒完毕程序中可包括用户自定义设置的与访问请求对应的需要执行的程序。磁盘电源控制装置在唤醒磁盘之后调用唤醒完毕程序。例如,用户的访问请求是向磁盘写入数据,与访问请求对应的唤醒完毕程序中执行的操作可包括:向用户通知设备已上电,可以向磁盘写入数据。
参见图3,在步骤3.7中,判断待唤醒的节电单元是否在读LRU队列中。若是,则执行步骤3.8:将待唤醒的节电单元移动到LRU队列尾部最近访问的位置。参见图3的流程,在执行了步骤3.2结果为否、步骤3.5结果为否,和步骤3.7结果为是的情况下,待唤醒的节电单元在读LRU队列中,但其位置不一定处于队尾位置。按照LRU算法的原则,最近一次访问的节电单元应放置在队尾位置,因此将待唤醒的节电单元移动到LRU队列的队尾位置。
在一种实施方式中,磁盘访问请求包括磁盘读取请求;上述方法还包括:
在已唤醒磁盘集合中查找到目标磁盘的情况下,判断目标磁盘是否在读取淘汰队列的节电单元中;
在目标磁盘在读取淘汰队列的节电单元中的情况下,将目标磁盘所属的节电单元移动到读取淘汰队列的队尾位置。
参见图3,如前述,在步骤3.7中,判断待唤醒的节电单元是否在读LRU队列中。若否,这种情况属于在已唤醒磁盘集合中查找不到目标磁盘的情况。接下来执行步骤3.9:判断读LRU队列是否已满。若读LRU队列未满,则执行步骤3.10新建节电单元对象N。新建节电单元对象可以是一个指向目标磁盘所属的节电单元的指针。若读LRU队列已满,则执行步骤3.12:将读LRU队列的队首位置最早访问的对象,即最早访问的节电单元赋值给变量R,并将变量R中的节电单元从读LRU队列中删除。然后执行步骤3.13:针对从读LRU队列中删除的节电单元执行销毁节电单元对象操作。销毁节电单元对象也就是对节电单元执行休眠操作,包括将节电单元中的所有磁盘的引用计数减1,使引用计数减为零的磁盘休眠。在步骤3.13:销毁节电单元对象之后,执行步骤3.10新建节电单元对象N。
在一种实施方式中,在目标磁盘不在读取淘汰队列的节电单元中的情况下,方法还包括:
判断读取淘汰队列是否已满;
在读取淘汰队列已满的情况下,将淘汰队列的队首元素从淘汰队列中移除,并对队首元素对应的节电单元执行休眠操作。
参见图3,在步骤3.10新建节电单元对象N之后,执行步骤3.11,将新建节电单元对象所指向的目标磁盘所属的节电单元插入到读LRU队列的队尾最近访问的位置。
在一种实施方式中,上述方法还包括:将目标磁盘所属的节电单元增加到读取淘汰队列的队尾位置。
在一种实施方式中,磁盘访问请求包括磁盘写入请求。图4为根据本申请实施例的磁盘唤醒方法的写唤醒节电单元的控制流程图。响应用户向磁盘写入数据,磁盘电源控制装置调用如图4所示的写唤醒节电单元的控制流程。并且,当磁盘电源控制装置确认磁盘唤醒后,会调用预先注册的唤醒完毕程序,用户进行相关数据操作。用户操作结束后,结束引用节电单元,对节电单元中的节电引用计数减1。如图4所示,首先执行步骤4.1,将当前写入节电单元赋值给变量M0,将即将写入节电单元赋值给变量M1。然后执行步骤4.2,判断待唤醒的节电单元是否为M0。其中,待唤醒的节电单元也就是需要执行唤醒操作的目标磁盘所属的节电单元。若是,则执行步骤4.3:将该节电单元的引用计数加1,并调用唤醒完毕程序。
参见图4,在步骤4.2中,判断待唤醒的节电单元是否为M0。若否,则执行步骤4.4:销毁节电单元对象M0。然后执行步骤4.5,判断待唤醒的节电单元是否为M1。若是,则执行步骤4.6,将当前写入节电单元赋值为即将上电的节电单元,记为N0。其中,即将上电的节电单元也就是待唤醒的节电单元。接下来执行步骤4.7,将N0的引用计数加1,并调用唤醒完毕程序。
参见图4,在步骤4.5中,判断待唤醒的节电单元是否为M1。若否则执行步骤4.8:销毁节电单元对象M1。然后执行步骤4.9,判断待唤醒的节电单元是否在读LRU队列中。若是,在执行步骤4.10之后,接下来还是执行步骤4.7,将N0的引用计数加1,并调用唤醒完毕程序。
综上,在以下三种情况下执行将节电单元的引用计数加1,并调用唤醒完毕程序的步骤(对应于步骤4.3或步骤4.7):第一,判断待唤醒的节电单元是当前写入节电单元;第二,判断待唤醒的节电单元是即将写入节电单元;第三,待唤醒的节电单元在读LRU队列中。而在上述三种情况中,读LRU队列中的节电单元、当前写入节电单元和即将写入节电单元都属于根据淘汰算法确定的节电单元。并且,根据淘汰算法确定的节电单元中的磁盘都在已唤醒磁盘集合中。因此,上述三种情况可以总结为:在已唤醒磁盘集合中查找到目标磁盘的情况下,累计目标磁盘所属的节电单元的引用计数,并调用唤醒完毕程序。
在写唤醒节电单元的一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,上述方法还包括:
累计目标磁盘所属的节电单元的引用计数。
另外还有一种情况,在步骤4.9中,判断待唤醒的节电单元是否在读LRU队列中。若否,这种情况属于在已唤醒磁盘集合中查找不到目标磁盘的情况,则在执行步骤4.11:新建节电单元对象N2。其中,新建节电单元对象N2的过程中包括对目标磁盘所属的节电单元执行唤醒操作。然后在执行步骤4.12:调用唤醒完毕程序。也就是说,在对目标磁盘所属的节电单元执行唤醒操作之后,调用唤醒完毕程序。
在写唤醒节电单元的一种实施方式中,在已唤醒磁盘集合中查找到目标磁盘的情况下,或者在对目标磁盘所属的节电单元执行唤醒操作之后,还包括:
调用预先注册的与访问请求对应的唤醒完毕程序。
参见图4,在步骤4.2中,判断待唤醒的节电单元是否为M0。若否,则执行步骤4.4:销毁节电单元对象M0。在写唤醒节电单元的一种实施方式中,上述方法还包括:在目标磁盘所属的节电单元不是当前写入节电单元的情况下,对当前写入节电单元执行休眠操作。
步骤4.4的判断结果为否之后执行步骤4.5,判断待唤醒的节电单元是否为M1。若否则执行步骤4.8:销毁节电单元对象M1。在写唤醒节电单元的一种实施方式中,上述方法还包括:在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,对即将写入节电单元执行休眠操作。
步骤4.5的判断结果为是则执行步骤4.6,将当前写入节电单元赋值为即将上电的节电单元,记为N0。其中,即将上电的节电单元也就是待唤醒的节电单元。在写唤醒节电单元的一种实施方式中,上述方法还包括:在目标磁盘所属的节电单元是即将写入节电单元的情况下,将即将写入节电单元作为新的当前写入节电单元。
参见图4,在步骤4.9中,判断待唤醒的节电单元是否在读LRU队列中。若是,在执行步骤4.10:将在读LRU队列中新找到的节电单元,也就是待唤醒的节电单元从读LRU队列中移除,令当前写入节电单元为新找到的节电单元N0。在读LRU队列与写LRU队列中不包括相同的元素,因此将作为当前写入节电单元的新找到的节电单元从读LRU队列中移除。
在一种实施方式中,在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,方法还包括:
判断目标磁盘所属的节电单元是否在读取淘汰队列中;
在目标磁盘所属的节电单元在读取淘汰队列中的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元,并将目标磁盘所属的节电单元从淘汰队列中移除;
在目标磁盘不在已唤醒磁盘集合的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元。
在步骤4.2、步骤4.5和步骤4.9的判断结果都为否的情况属于在已唤醒磁盘集合中查找不到目标磁盘的情况,则在执行步骤4.11:新建节电单元对象N2。其中,新建节电单元对象N2的过程中包括对目标磁盘所属的节电单元执行唤醒操作。并将目标磁盘所属的节电单元作为新的当前写入节电单元。
参见图4,在步骤4.6和步骤4.11之后,已经确定了当前写入节电单元,则在步骤4.7和步骤4.12之后,执行步骤4.13:按照预先定义的顺序,找到当前节电单元的逻辑上的下一个节电单元。其中,节电单元结构中包括节电单元主键,节电单元主键用于唯一标识各个节电单元。例如节电单元主键可以是磁盘编号。可根据磁盘访问请求获得目标磁盘的磁盘编号。磁盘编号可以包括磁盘位置所在的机柜号和槽位号。根据节电单元主键,可以找到当前节电单元的逻辑上的下一个节电单元。
步骤4.13之后,执行步骤4.14至步骤4.16在读LRU队列中做相关处理,然后执行步骤4.17:给即将写入节电单元重新赋值,令即将写入节电单元等于计算得出的下一个节电单元。
在一种实施方式中,上述方法还包括:
根据预定顺序确定新的当前写入节电单元的下一个节电单元;
将新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
参见图4,在步骤4.13中找到当前节电单元的逻辑上的下一个节电单元之后,执行步骤4.14:计算得出的下一个节电单元是否在读LRU队列中。若是,则执行步骤4.15,将计算得出的下一个节电单元从读LRU队列中移除。由于在后续步骤4.17中会将计算得出的下一个节电单元赋值给即将写入节电单元,且在读LRU队列与写LRU队列中不包括相同的元素,因此将计算得出的下一个节电单元从读LRU队列中移除。若步骤4.14中判断结果为否,即计算得出的下一个节电单元不在读LRU队列中,则执行步骤4.16:新建节电单元对象N1,并将其引用计数设为1。N1可以是一个指向计算得出的下一个节电单元的指针。然后在步骤4.17中令即将写入节电单元等于N1。
在一种实施方式中,上述方法还包括:
判断新的即将写入节电单元是否在读取淘汰队列中;
在新的即将写入节电单元在读取淘汰队列中的情况下,将新的即将写入节电单元从淘汰队列中移除;
在新的即将写入节电单元不在读取淘汰队列中的情况下,对新的即将写入节电单元执行唤醒操作。
在图3和图4的示例中,一方面,由于指定了写入淘汰队列的队列长度,限制了写入淘汰队列中节电单元的个数,从而使得磁盘阵列中同时在线的磁盘数量在有限的范围内,避免由于同时在线的磁盘数量过多而导致的耗电峰值。另一方面,采用LRU算法可将最近写入的节电单元中的磁盘始终处于已唤醒状态,从而避免磁盘发生反复无用的上下电的情况。
另外,在归档类存储的应用场景中,考虑到归档类存储访问的磁盘位置具有连续性的特性,因此只需要保持最近访问的节电单元处于唤醒状态即可快速响应访问需求,提升系统性能。由于归档类存储的向磁盘写入数据的操作是一次性的按照完全顺序的方式写入,而从磁盘读取数据的操作是按照部分连续的顺序进行读取,所以针对写入数据的操作和读取数据的操作可分别使用两个淘汰队列(读取淘汰队列和写入淘汰队列)分别处理。例如,在图3和图4的示例中,读取淘汰队列包括读LRU队列,写入淘汰队列包括当前写入节电单元和即将写入节电单元。
在图4的示例中,为了减少写入引起的调度时间,采用对节电单元进行预唤醒的方式,提前对下一个要写入数据的节电单元进行唤醒。根据归档类存储的上述连续性特性,对即将访问的节电单元进行预估,从而将即将访问的节电单元提前上电,以提高响应速度。在唤醒当前写入节电单元之后,还要唤醒即将访问的下一个节电单元,也就是唤醒即将写入节电单元,这种方式可以使频繁访问的节电单元长期保持唤醒状态。
在一个示例中,在进行写入数据的操作过程中,当访问的第一个磁盘的位置写满时,已经唤醒了第三个访问位置对应的节电单元。在访问第二个访问位置对应的节电单元时,已经唤醒了第四个访问位置对应的节电单元。本申请实施例中,在访问每一个磁盘位置时,当前磁盘均已提前上电,处于带电状态。而在现有技术中,在访问某个磁盘的时候只是唤醒当前访问的磁盘,且没有进行提前上电,在访问某个磁盘的时候才将该磁盘唤醒,因此响应速度慢。采用本申请实施例的磁盘唤醒方法可有效解决现有技术中响应速度慢的问题。
在图3和图4中,新建节电单元对象的具体流程如图5所示。其中,新建节电单元对象的过程中包括对目标磁盘所属的节电单元执行唤醒操作。
在一种实施方式中,执行唤醒操作包括:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
如前述,节电单元结构中包括节电单元主键,节电单元主键用于唯一标识各个节电单元。例如节电单元主键可以是磁盘编号。参见图5,在新建节电单元对象的流程中,首先执行步骤5.1:初始化,将节电单元引用计数置为1,并按照预定义的组织方式计算本磁盘编号对应的节电单元内所有磁盘的主键,current_key为当前处理的磁盘主键。在后面的步骤5.2至步骤5.6中遍历节电单元内的所有磁盘。
由于节电单元和磁盘阵列中的磁盘的对应关系也可以是多对多的关系,即一个磁盘也可以归属于多个不同的节电单元,因此在节电单元没有被唤醒之前,节电单元中包括的一部分磁盘可能处于唤醒状态。例如,节电单元1包括磁盘A和磁盘B,节电单元2包括磁盘A和磁盘C。在对节电单元1执行唤醒操作的过程中将其中包括的磁盘A和磁盘B唤醒了。在下一个访问请求中可能需要访问磁盘C,则需要在对节电单元2执行唤醒操作。这种情况下,节电单元2中包括的磁盘A已经被唤醒。因此在节电单元没有被唤醒之前,节电单元中包括的一部分磁盘可能处于唤醒状态,另一部分磁盘处于休眠状态。对于已经处于唤醒状态的那部分磁盘,只需要将其引用计数加1;对于处于休眠状态的那部分磁盘,需要对其执行唤醒操作。
在步骤5.2中,判断Current_key为主键的磁盘是否已经在活跃磁盘集合中。若否,则执行步骤5.3:新建磁盘对象,新建磁盘对象可以是一个指向Current_key为主键的磁盘的指针,并将新建磁盘对象对应的引用计数初始化为1,唤醒Current_key为主键的磁盘。若是,则执行步骤5.4:Current_key为主键的磁盘的引用计数加1,节电单元中的对应指针指向对应磁盘(参见图2)。在接下来的步骤5.5和步骤5.6中,判断当前Current_key为主键的磁盘是否是节电单元中最后一个未访问磁盘,若否则将下一个要处理的磁盘的主键赋值给current_key变量,以实现遍历节电单元内的所有磁盘。
在图3和图4中,销毁节电单元对象的具体流程如图6所示。其中,销毁节电单元对象的过程中包括对目标磁盘所属的节电单元执行休眠操作。
在一种实施方式中,执行休眠操作包括:
在执行休眠操作的节电单元的引用计数减为零的情况下,将执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从已唤醒磁盘集合中移除。
如前述,在访问某个节电单元时,将该节电单元的引用计数加1,在结束引用之后将该节电单元的引用计数减1。参见图6,在销毁节电单元对象的流程中,首先执行步骤6.1:同步等待节电单元的引用计数减到0。在这一步骤中,若节电单元的引用计数没有减到0,则程序处理阻塞状态;若节电单元的引用计数减到0则继续执行后续步骤6.2至步骤6.7。在步骤6.2中,令变量current_disk为当前节电单元中的第一个磁盘。在步骤6.3至步骤6.7中遍历当前节电单元内的所有磁盘。
首先在步骤6.3中,将current_disk磁盘中的引用计数减1。然后执行步骤6.4:判断current_disk磁盘的引用计数是否为0。若是则执行步骤6.5:令current_disk磁盘休眠,并将current_disk磁盘从活跃磁盘集合中移除。若步骤6.3中判断结果为否,或者在步骤6.5之后,执行步骤6.6和步骤6.7,判断current_disk磁盘是否是最后一个未访问磁盘,若否则令current_disk为下一个要处理的磁盘,以实现遍历节电单元内的所有磁盘。
由于节电单元和磁盘阵列中的磁盘的对应关系也可以是多对多的关系,即一个磁盘也可以归属于多个不同的节电单元,因此在节电单元被销毁之后,节电单元中包括的一部分磁盘可能仍处于唤醒状态。例如,节电单元1包括磁盘A和磁盘B,节电单元2包括磁盘A和磁盘C。在对节电单元1执行唤醒操作的过程中将其中包括的磁盘A唤醒且将其引用计数加1。在下一个访问请求中可能需要访问磁盘C,则需要在对节电单元2执行唤醒操作。这种情况下,节电单元2中包括的磁盘A已经被唤醒,则在原来基础上将其引用计数再加1。这时若销毁节电单元1,则将节电单元1包括的磁盘A的引用计数减1。由于磁盘A又同时归属于节电单元2,而节电单元2此时正处于已唤醒状态,因此磁盘A的引用计数没有减为0。尽管节电单元1被销毁了,但其中的磁盘A仍处于唤醒状态。参见图6,在步骤6.4中,若判断current_disk磁盘的引用计数为0时才执行步骤6.5:令current_disk磁盘休眠;若判断current_disk磁盘的引用计数不为0,则current_disk磁盘应还包含在其他处于唤醒状态的节电单元中,这种情况下不对current_disk磁盘执行休眠操作。
图7为根据本申请实施例的磁盘唤醒装置的结构示意图。如图7所示,该装置可以包括:
接收单元100,用于接收磁盘访问请求;
查找单元200,用于根据磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
执行单元300,用于在已唤醒磁盘集合中没有查找到目标磁盘的情况下,对目标磁盘所属的节电单元执行唤醒操作;
其中,节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
图8为根据本申请实施例的磁盘唤醒装置的结构示意图。如图8所示,在一种实施方式中,根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;
上述装置还包括创建单元400,用于:创建指定长度的读取淘汰队列,根据最近最少使用算法将最近读取的节电单元添加到读取淘汰队列中;
其中,将最近读取的节电单元添加到读取淘汰队列中,包括:将最后一次读取的节电单元添加到读取淘汰队列的队尾位置。
在一种实施方式中,根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,当前写入节电单元是最后一次写入的磁盘所属的节电单元,即将写入节电单元是根据预定顺序确定的当前写入节电单元的下一个节电单元。
在一种实施方式中,上述装置还包括累计单元500,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,累计目标磁盘所属的节电单元的引用计数。
在一种实施方式中,上述装置还包括调用单元600,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,或者在对目标磁盘所属的节电单元执行唤醒操作之后,调用预先注册的与访问请求对应的唤醒完毕程序。
在一种实施方式中,磁盘访问请求包括磁盘读取请求;上述装置还包括操作单元700,用于:
在已唤醒磁盘集合中查找到目标磁盘的情况下,判断目标磁盘是否在读取淘汰队列的节电单元中;
在目标磁盘在读取淘汰队列的节电单元中的情况下,将目标磁盘所属的节电单元移动到读取淘汰队列的队尾位置。
在一种实施方式中,操作单元700还用于:
在目标磁盘不在读取淘汰队列的节电单元中的情况下,判断读取淘汰队列是否已满;
在读取淘汰队列已满的情况下,将淘汰队列的队首元素从淘汰队列中移除,并对队首元素对应的节电单元执行休眠操作。
在一种实施方式中,操作单元700还用于:将目标磁盘所属的节电单元增加到读取淘汰队列的队尾位置。
在一种实施方式中,磁盘访问请求包括磁盘写入请求;
执行单元300还用于:在目标磁盘所属的节电单元不是当前写入节电单元的情况下,对当前写入节电单元执行休眠操作;在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,对即将写入节电单元执行休眠操作;
操作单元700还用于:在目标磁盘所属的节电单元是即将写入节电单元的情况下,将即将写入节电单元作为新的当前写入节电单元。
在一种实施方式中,操作单元700还用于:
在目标磁盘所属的节电单元不是当前写入节电单元,并且目标磁盘所属的节电单元不是即将写入节电单元的情况下,判断目标磁盘所属的节电单元是否在读取淘汰队列中;
在目标磁盘所属的节电单元在读取淘汰队列中的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元,并将目标磁盘所属的节电单元从淘汰队列中移除;
在目标磁盘不在已唤醒磁盘集合的情况下,将目标磁盘所属的节电单元作为新的当前写入节电单元。
在一种实施方式中,操作单元700还用于:
根据预定顺序确定新的当前写入节电单元的下一个节电单元;
将新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
在一种实施方式中,操作单元700还用于:判断新的即将写入节电单元是否在读取淘汰队列中;在新的即将写入节电单元在读取淘汰队列中的情况下,将新的即将写入节电单元从淘汰队列中移除;
执行单元300还用于:在新的即将写入节电单元不在读取淘汰队列中的情况下,对新的即将写入节电单元执行唤醒操作。
图9为根据本申请实施例的磁盘唤醒装置的执行单元的结构示意图。如图9所示,在一种实施方式中,执行单元300包括唤醒子单元310,用于:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
在一种实施方式中,执行单元300包括休眠子单元320,用于:
在执行休眠操作的节电单元的引用计数减为零的情况下,将执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从已唤醒磁盘集合中移除。
本申请实施例磁盘唤醒装置中的各个单元的功能可以参见上述方法中的对应描述,在此不再赘述。
图10为用来实现本申请实施例的电子设备的框图。如图10所示,该电子设备包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。处理器920执行该计算机程序时实现上述实施例中的磁盘唤醒方法。存储器910和处理器920的数量可以为一个或多个。
该电子设备还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本申请实施例中提供的方法。
本申请实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请实施例提供的方法。
本申请实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行申请实施例提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (30)
1.一种磁盘唤醒方法,其特征在于,包括:
接收磁盘访问请求;
根据所述磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
在所述已唤醒磁盘集合中没有查找到所述目标磁盘的情况下,对所述目标磁盘所属的节电单元执行唤醒操作;
其中,所述节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;所述已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
2.根据权利要求1所述的方法,其特征在于,所述根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;所述方法还包括:
创建指定长度的读取淘汰队列,根据最近最少使用算法将最近读取的节电单元添加到所述读取淘汰队列中;
其中,将最近读取的节电单元添加到所述读取淘汰队列中,包括:将最后一次读取的节电单元添加到所述读取淘汰队列的队尾位置。
3.根据权利要求2所述的方法,其特征在于,所述根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,所述当前写入节电单元是最后一次写入的磁盘所属的节电单元,所述即将写入节电单元是根据预定顺序确定的所述当前写入节电单元的下一个节电单元。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,所述方法还包括:
累计所述目标磁盘所属的节电单元的引用计数。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,或者在对所述目标磁盘所属的节电单元执行唤醒操作之后,还包括:
调用预先注册的与访问请求对应的唤醒完毕程序。
6.根据权利要求2-5中任一项所述的方法,其特征在于,所述磁盘访问请求包括磁盘读取请求;所述方法还包括:
在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,判断所述目标磁盘是否在所述读取淘汰队列的节电单元中;
在所述目标磁盘在所述读取淘汰队列的节电单元中的情况下,将所述目标磁盘所属的节电单元移动到所述读取淘汰队列的队尾位置。
7.根据权利要求6所述的方法,其特征在于,在所述目标磁盘不在所述读取淘汰队列的节电单元中的情况下,所述方法还包括:
判断所述读取淘汰队列是否已满;
在所述读取淘汰队列已满的情况下,将所述淘汰队列的队首元素从所述淘汰队列中移除,并对所述队首元素对应的节电单元执行休眠操作。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:将所述目标磁盘所属的节电单元增加到所述读取淘汰队列的队尾位置。
9.根据权利要求3至8中任一项所述的方法,其特征在于,所述磁盘访问请求包括磁盘写入请求;所述方法还包括:
在所述目标磁盘所属的节电单元不是所述当前写入节电单元的情况下,对所述当前写入节电单元执行休眠操作;
在所述目标磁盘所属的节电单元不是所述当前写入节电单元,并且所述目标磁盘所属的节电单元不是所述即将写入节电单元的情况下,对所述即将写入节电单元执行休眠操作;
在所述目标磁盘所属的节电单元是所述即将写入节电单元的情况下,将所述即将写入节电单元作为新的当前写入节电单元。
10.根据权利要求9所述的方法,其特征在于,在所述目标磁盘所属的节电单元不是所述当前写入节电单元,并且所述目标磁盘所属的节电单元不是所述即将写入节电单元的情况下,所述方法还包括:
判断所述目标磁盘所属的节电单元是否在所述读取淘汰队列中;
在所述目标磁盘所属的节电单元在所述读取淘汰队列中的情况下,将所述目标磁盘所属的节电单元作为新的当前写入节电单元,并将所述目标磁盘所属的节电单元从所述淘汰队列中移除;
在所述目标磁盘不在已唤醒磁盘集合的情况下,将所述目标磁盘所属的节电单元作为新的当前写入节电单元。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
根据所述预定顺序确定所述新的当前写入节电单元的下一个节电单元;
将所述新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
判断所述新的即将写入节电单元是否在所述读取淘汰队列中;
在所述新的即将写入节电单元在所述读取淘汰队列中的情况下,将所述新的即将写入节电单元从所述淘汰队列中移除;
在所述新的即将写入节电单元不在所述读取淘汰队列中的情况下,对所述新的即将写入节电单元执行唤醒操作。
13.根据权利要求1-12中任一项所述的方法,其特征在于,所述执行唤醒操作包括:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
14.根据权利要求7或9所述的方法,其特征在于,所述执行休眠操作包括:
在执行休眠操作的节电单元的引用计数减为零的情况下,将所述执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从所述已唤醒磁盘集合中移除。
15.一种磁盘唤醒装置,其特征在于,包括:
接收单元,用于接收磁盘访问请求;
查找单元,用于根据所述磁盘访问请求在已唤醒磁盘集合中查找目标磁盘;
执行单元,用于在所述已唤醒磁盘集合中没有查找到所述目标磁盘的情况下,对所述目标磁盘所属的节电单元执行唤醒操作;
其中,所述节电单元包括预先在磁盘阵列中设置的用于统一执行唤醒操作的至少一个磁盘;所述已唤醒磁盘集合包括根据淘汰算法确定的节电单元中的磁盘。
16.根据权利要求15所述的装置,其特征在于,所述根据淘汰算法确定的节电单元包括读取淘汰队列中的节电单元;
所述装置还包括创建单元,用于:创建指定长度的读取淘汰队列,根据最近最少使用算法将最近读取的节电单元添加到所述读取淘汰队列中;
其中,将最近读取的节电单元添加到所述读取淘汰队列中,包括:将最后一次读取的节电单元添加到所述读取淘汰队列的队尾位置。
17.根据权利要求16所述的装置,其特征在于,所述根据淘汰算法确定的节电单元包括当前写入节电单元和即将写入节电单元,所述当前写入节电单元是最后一次写入的磁盘所属的节电单元,所述即将写入节电单元是根据预定顺序确定的所述当前写入节电单元的下一个节电单元。
18.根据权利要求15-17中任一项所述的装置,其特征在于,所述装置还包括累计单元,用于:
在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,累计所述目标磁盘所属的节电单元的引用计数。
19.根据权利要求15-18中任一项所述的装置,其特征在于,所述装置还包括调用单元,用于:
在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,或者在对所述目标磁盘所属的节电单元执行唤醒操作之后,调用预先注册的与访问请求对应的唤醒完毕程序。
20.根据权利要求16-19中任一项所述的装置,其特征在于,所述磁盘访问请求包括磁盘读取请求;所述装置还包括操作单元,用于:
在所述已唤醒磁盘集合中查找到所述目标磁盘的情况下,判断所述目标磁盘是否在所述读取淘汰队列的节电单元中;
在所述目标磁盘在所述读取淘汰队列的节电单元中的情况下,将所述目标磁盘所属的节电单元移动到所述读取淘汰队列的队尾位置。
21.根据权利要求20所述的装置,其特征在于,所述操作单元还用于:
在所述目标磁盘不在所述读取淘汰队列的节电单元中的情况下,判断所述读取淘汰队列是否已满;
在所述读取淘汰队列已满的情况下,将所述淘汰队列的队首元素从所述淘汰队列中移除,并对所述队首元素对应的节电单元执行休眠操作。
22.根据权利要求21所述的装置,其特征在于,所述操作单元还用于:将所述目标磁盘所属的节电单元增加到所述读取淘汰队列的队尾位置。
23.根据权利要求17至22中任一项所述的装置,其特征在于,所述磁盘访问请求包括磁盘写入请求;
所述执行单元还用于:在所述目标磁盘所属的节电单元不是所述当前写入节电单元的情况下,对所述当前写入节电单元执行休眠操作;在所述目标磁盘所属的节电单元不是所述当前写入节电单元,并且所述目标磁盘所属的节电单元不是所述即将写入节电单元的情况下,对所述即将写入节电单元执行休眠操作;
所述操作单元还用于:在所述目标磁盘所属的节电单元是所述即将写入节电单元的情况下,将所述即将写入节电单元作为新的当前写入节电单元。
24.根据权利要求23所述的装置,其特征在于,所述操作单元还用于:
在所述目标磁盘所属的节电单元不是所述当前写入节电单元,并且所述目标磁盘所属的节电单元不是所述即将写入节电单元的情况下,判断所述目标磁盘所属的节电单元是否在所述读取淘汰队列中;
在所述目标磁盘所属的节电单元在所述读取淘汰队列中的情况下,将所述目标磁盘所属的节电单元作为新的当前写入节电单元,并将所述目标磁盘所属的节电单元从所述淘汰队列中移除;
在所述目标磁盘不在已唤醒磁盘集合的情况下,将所述目标磁盘所属的节电单元作为新的当前写入节电单元。
25.根据权利要求23或24所述的装置,其特征在于,所述操作单元还用于:
根据所述预定顺序确定所述新的当前写入节电单元的下一个节电单元;
将所述新的当前写入节电单元的下一个节电单元作为新的即将写入节电单元。
26.根据权利要求25所述的装置,其特征在于,
所述操作单元还用于:判断所述新的即将写入节电单元是否在所述读取淘汰队列中;在所述新的即将写入节电单元在所述读取淘汰队列中的情况下,将所述新的即将写入节电单元从所述淘汰队列中移除;
所述执行单元还用于:在所述新的即将写入节电单元不在所述读取淘汰队列中的情况下,对所述新的即将写入节电单元执行唤醒操作。
27.根据权利要求15-26中任一项所述的装置,其特征在于,所述执行单元包括唤醒子单元,用于:
将执行唤醒操作的节电单元的引用计数累加;
将执行唤醒操作的节电单元包括的磁盘的引用计数累加;以及
将执行唤醒操作的节电单元中处于休眠状态的磁盘唤醒。
28.根据权利要求21或23所述的装置,其特征在于,所述执行单元包括休眠子单元,用于:
在执行休眠操作的节电单元的引用计数减为零的情况下,将所述执行休眠操作的节电单元包括的磁盘的引用计数累减;
使执行休眠操作的节电单元中引用计数为零的磁盘休眠,并将其从所述已唤醒磁盘集合中移除。
29.一种电子设备,其特征在于,包括:包括处理器和存储器,所述存储器中存储指令,所述指令由处理器加载并执行,以实现如权利要求1至14中任一项所述的方法。
30.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258721.8A CN111459261A (zh) | 2020-04-03 | 2020-04-03 | 磁盘唤醒方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258721.8A CN111459261A (zh) | 2020-04-03 | 2020-04-03 | 磁盘唤醒方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459261A true CN111459261A (zh) | 2020-07-28 |
Family
ID=71684447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010258721.8A Pending CN111459261A (zh) | 2020-04-03 | 2020-04-03 | 磁盘唤醒方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459261A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540728A (zh) * | 2020-12-07 | 2021-03-23 | 北京云宽志业网络技术有限公司 | 节电存储方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1332864A (zh) * | 1998-11-04 | 2002-01-23 | 英特尔公司 | 存储器子系统中功率管理的方法与设备 |
CN1902577A (zh) * | 2003-12-24 | 2007-01-24 | 英特尔公司 | 动态功率管理 |
CN101354606A (zh) * | 2008-09-08 | 2009-01-28 | 创新科存储技术(深圳)有限公司 | 一种磁盘阵列的能耗控制方法、系统及设备 |
CN101446857A (zh) * | 2008-12-25 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种硬盘节能的方法及装置 |
CN103069380A (zh) * | 2012-04-27 | 2013-04-24 | 华为技术有限公司 | 存储控制设备、数据归档存储系统和数据存取方法 |
CN103714146A (zh) * | 2013-12-26 | 2014-04-09 | 华为技术有限公司 | 存储方法及装置 |
US8707076B2 (en) * | 2007-04-18 | 2014-04-22 | Dell Products L.P. | System and method for power management of storage resources |
CN106909312A (zh) * | 2015-12-23 | 2017-06-30 | 伊姆西公司 | 用于控制从存储系统读取数据的方法和装置 |
CN109857239A (zh) * | 2017-11-29 | 2019-06-07 | 浙江宇视科技有限公司 | 存储控制方法及装置 |
-
2020
- 2020-04-03 CN CN202010258721.8A patent/CN111459261A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1332864A (zh) * | 1998-11-04 | 2002-01-23 | 英特尔公司 | 存储器子系统中功率管理的方法与设备 |
CN1902577A (zh) * | 2003-12-24 | 2007-01-24 | 英特尔公司 | 动态功率管理 |
US8707076B2 (en) * | 2007-04-18 | 2014-04-22 | Dell Products L.P. | System and method for power management of storage resources |
CN101354606A (zh) * | 2008-09-08 | 2009-01-28 | 创新科存储技术(深圳)有限公司 | 一种磁盘阵列的能耗控制方法、系统及设备 |
CN101446857A (zh) * | 2008-12-25 | 2009-06-03 | 成都市华为赛门铁克科技有限公司 | 一种硬盘节能的方法及装置 |
CN103069380A (zh) * | 2012-04-27 | 2013-04-24 | 华为技术有限公司 | 存储控制设备、数据归档存储系统和数据存取方法 |
CN103714146A (zh) * | 2013-12-26 | 2014-04-09 | 华为技术有限公司 | 存储方法及装置 |
CN106909312A (zh) * | 2015-12-23 | 2017-06-30 | 伊姆西公司 | 用于控制从存储系统读取数据的方法和装置 |
CN109857239A (zh) * | 2017-11-29 | 2019-06-07 | 浙江宇视科技有限公司 | 存储控制方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540728A (zh) * | 2020-12-07 | 2021-03-23 | 北京云宽志业网络技术有限公司 | 节电存储方法、装置、设备及存储介质 |
CN112540728B (zh) * | 2020-12-07 | 2022-04-01 | 北京云宽志业网络技术有限公司 | 节电存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9032139B2 (en) | Memory allocation for fast platform hibernation and resumption of computing systems | |
US6647472B2 (en) | Fast suspend to disk | |
US9104413B2 (en) | System and method for dynamic memory power management | |
EP3872641B1 (en) | Storage device and method of operating the storage device | |
JP6527577B2 (ja) | ファイルシステムにおけるフラッシング | |
JP2014197408A (ja) | ロックインジケータを有するマルチスレッドプロセッサ | |
US20060075185A1 (en) | Method for caching data and power conservation in an information handling system | |
US20120284551A1 (en) | Deep standby method and device for embedded system | |
US20080082752A1 (en) | Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state | |
US20150095671A1 (en) | Method and apparatus for managing power of a storage system | |
US20070038850A1 (en) | System boot and resume time reduction method | |
CN110488673B (zh) | 一种低功耗模式的数据处理模块及数据处理方法 | |
US10936038B2 (en) | Power control for use of volatile memory as non-volatile memory | |
CN109716307B (zh) | 用于延迟的高速缓存利用的系统和方法 | |
WO2015062316A1 (zh) | 一种休眠磁盘的数据操作方法和装置 | |
JP2019527867A (ja) | モバイルデバイス上でのエネルギー効率のためのウェイクロックアウェアシステム全体のジョブスケジューリング | |
JP2000039937A (ja) | コンピュータシステムおよびそのパワーセーブ制御方法 | |
CN115481127A (zh) | 数据库的数据存储方法、存储介质与设备 | |
CN111459261A (zh) | 磁盘唤醒方法、装置、电子设备及存储介质 | |
CN111104048A (zh) | 一种数据处理方法及分布式存储系统 | |
CN112269544A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
CN109426563B (zh) | 一种进程管理方法及装置 | |
CN112148365B (zh) | 一种控制模块、方法及微控制器芯片 | |
WO2023206693A1 (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |