CN111026328A - 一种能耗控制方法、装置及存储系统 - Google Patents
一种能耗控制方法、装置及存储系统 Download PDFInfo
- Publication number
- CN111026328A CN111026328A CN201911107235.XA CN201911107235A CN111026328A CN 111026328 A CN111026328 A CN 111026328A CN 201911107235 A CN201911107235 A CN 201911107235A CN 111026328 A CN111026328 A CN 111026328A
- Authority
- CN
- China
- Prior art keywords
- energy consumption
- hard disk
- disk group
- preset
- moment
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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
技术领域
本申请涉及存储技术领域,尤其涉及一种能耗控制方法、装置及存储系统。
背景技术
存储系统通常包括多个硬盘,例如固态硬盘(solid state drives,SSD)。单个SSD的能耗较小,但是,存储系统中往往安装有大量的SSD,因此,SSD的能耗在存储系统中占据了很大的比例。
如何有效地控制存储系统的能耗,从而降低对存储系统的性能的影响,是目前亟需解决的技术问题。
发明内容
本申请提供一种能耗控制方法、装置及存储系统,能够有效地控制存储系统的能耗。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种能耗控制方法,能耗控制装置确定存储系统中第一硬盘组在第一时刻的能耗,并根据第一硬盘组在第一时刻的能耗和预设规则,调整输入到第一硬盘组中写请求的数量,以控制对第一硬盘组的能耗。
能耗控制装置根据第一硬盘组在第一时刻的能耗和预设规则,调整输入到第一硬盘组中写请求的数量。由于在硬盘中的输入输出(input/output,IO)数据块的大小相等的情况下,硬盘的写能耗远远高于读能耗,因此,能耗控制装置调整输入到第一硬盘组中写请求的数量,能够有效地控制第一硬盘组的能耗,从而有效地控制了存储系统的能耗。
本申请中的存储系统可以包括多个硬盘组。对于每个硬盘组而言,能耗控制装置均可采用本申请提供的能耗控制方法实现能耗的控制,这样,即可实现对存储系统的能耗的控制。
可选的,在本申请的一种可能的实现方式中,上述“能耗控制装置确定所述第一硬盘组在第一时刻的能耗”的方法包括:能耗控制装置在所述第一时刻,监测到所述第一硬盘组的能耗。或者,能耗控制装置在当前时刻,预测第一硬盘组在第一时刻的能耗。在当前时刻预测第一硬盘组在第一时刻的能耗的场景中,第一硬盘组在当前时刻的能耗小于第一预设数值,该第一预设数值为第一硬盘组的能耗的最高限值,第一时刻位于所述当前时刻之后。
能耗控制装置可以采用监测的方式或者采用预测的方式,确定第一硬盘组在第一时刻的能耗。
当然,本申请中的能耗控制装置还可并行地采用监测和预测的方式,确定第一硬盘组在第一时刻的能耗。
可选的,在本申请的另一种可能的实现方式中,上述“能耗控制装置根据第一硬盘组在第一时刻的能耗和预设规则,调整输入到第一硬盘组中写请求的数量”的方法包括:若监测到第一硬盘组的能耗在第一时刻的数值大于或等于第一预设数值,则能耗控制装置在第一时刻根据预设规则降低输入到第一硬盘组中写请求的数量。若预测出第一硬盘组的能耗在第一时刻的数值等于第一预设数值,且在第一时刻第一硬盘组的能耗处于增长状态,则能耗控制装置在第一时刻根据预设规则降低输入到第一硬盘组中写请求的数量。在能耗控制装置采用预测的方式确定第一硬盘组的能耗的场景中,第一时刻为当前时刻之后,第一硬盘组的能耗的数值等于第一预设数值的首个时刻。
第一预设数值为第一硬盘组的能耗的最高限值。在第一硬盘组的能耗大于或等于第一预设数值的情况下,若不降低第一硬盘组的能耗,可能会导致系统故障,影响系统的运行。为了保证系统的安全性,在第一硬盘组的能耗大于或等于第一预设数值的情况下,能耗控制装置通过降低输入到第一硬盘组中写请求的数量,降低第一硬盘组的能耗。
可选的,在本申请的另一种可能的实现方式中,在第一时刻根据预设规则降低输入到第一硬盘组中写请求的数量之后,若第一硬盘组的能耗在第二时刻的数值等于第二预设数值,则能耗控制装置预测第一硬盘组在第二时刻之后的能耗。第二预设数值等于预设系数与第一预设数值的乘积,预设系数为大于零,小于1的数值。
在第一时刻之后,随着输入到第一硬盘组的写请求的数量的变化,第一硬盘组的能耗可能又会逐渐增大。为了有效保证系统的安全性,能耗控制装置可以将第二时刻视为当前时刻,并从第二时刻开始,重新预测第一硬盘组在第二时刻之后的能耗。
容易理解的是,在降低输入到第一硬盘组中写请求的数量之后,能耗控制装置依旧监测第一硬盘组的能耗。在第二时刻,能耗控制装置可以将第二时刻视为当前时刻,并从第二时刻开始,重新预测第一硬盘组在第二时刻之后的能耗;也可以一直采用监测的方式确定第一硬盘组的能耗。
可选的,在本申请的另一种可能的实现方式中,上述“能耗控制装置在当前时刻,预测第一硬盘组在当前时刻之后的能耗”的方法包括:能耗控制装置分别确定第一硬盘组的能耗在m(m为大于或等于1的整数)个预设时刻中每个预设时刻的数值,并根据第一硬盘组的能耗在m个预设时刻中每个预设时刻的数值,预测第一硬盘组在当前时刻之后的能耗。这里,m个预设时刻均早于当前时刻,且m个预设时刻与当前时刻之间的时间差均小于或等于预设时长。
m个预设时刻均早于当前时刻,因此,第一硬盘组在m个预设时刻中每个预设时刻的能耗都属于第一硬盘组的历史能耗。能耗控制装置根据第一硬盘组的历史能耗,预测第一硬盘组在当前时刻之后的能耗。
第二方面,提供一种能耗控制装置,该能耗控制装置能够实现第一方面及其任意一种可能的实现方式中的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的一种可能的方式中,该能耗控制装置可以包括确定模块和调整模块,该确定模块和调整模块可以执行上述第一方面及其任意一种可能的实现方式的能耗控制方法中的相应功能。例如:确定模块,用于确定存储系统中的第一硬盘组在第一时刻的能耗。调整模块,用于根据上述确定模块确定出的第一硬盘组在第一时刻的能耗和预设规则,调整输入到第一硬盘组中写请求的数量,以控制对第一硬盘组的能耗。
第三方面,提供一种存储系统,该存储系统包括:处理器,以及存储器。所述存储器与所述处理器耦合,所述存储器存储有程序代码;所述处理器调用所述存储器中的程序代码,用于执行上述第一方面及其各种可能的实现方式所述的能耗控制方法。
可选的,该存储系统还包括接口,该接口可以用于执行上述第一方面及其任意一种可能的实现方式所述的能耗控制方法中收发数据、信令或信息的步骤,例如,获取写请求。
第四方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令;当计算机指令在计算机上运行时,该计算机执行如上述第一方面及其各种可能的实现方式所述的能耗控制方法。
第五方面,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行如上述第一方面及其各种可能的实现方式所述的能耗控制方法。
需要说明的是,上述计算机指令可以全部或者部分存储在计算机存储介质上,其中,第一计算机存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请对此不作限定。
本申请中第二方面、第三方面、第四方面、第五方面及其各种实现方式的描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面、第三方面、第四方面、第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
在本申请中,上述能耗控制装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的存储系统的结构示意图;
图2为本发明实施例提供的存储系统中SSD的部署示意图;
图3为本发明实施例提供的能耗控制方法的流程示意图一;
图4为本发明实施例提供的能耗控制方法的流程示意图二;
图5为本发明实施例提供的能耗控制方法的流程示意图三;
图6为本发明实施例提供的能耗控制装置的结构示意图;
图7为本发明实施例提供的计算机程序产品的结构示意图。
具体实施方式
存储系统(例如存储阵列)在接收到外部设备的写请求后,将该写请求中的数据写到缓存后,就向外部设备反馈响应消息。之后,当缓存中存储的数据达到一定数据量时,存储设备将缓存中的数据写入硬盘,以实现数据的持久化。存储系统使用的硬盘可以为SSD。本发明实施例以硬盘为SSD为例进行描述。在接收到外部设备的读数据请求后,存储系统先判断缓存中是否存在读数据请求对应的数据。如果缓存中存在与读数据请求对应的数据,则存储设备从缓存中获取并向外部设备返回数据。如果缓存中不存在与读数据请求对应的数据,则存储系统下发该读数据请求到SSD,进而在SSD中读取数据。
可以看出,对于SSD而言,读数据的优先级要高于写数据的优先级,且短时间内写数据性能的下降对于整个存储系统的性能影响较小。
SSD通常包括有多个Nand-Flash芯片。Nand-Flash芯片可以是单存储单元存储1比特数据(single-level cell,SLC)芯片,也可以是单存储单元存储2比特数据(multi-levelcell,MLC)芯片,还可以是单存储单元存储3比特数据(triple-level cell,TLC)芯片,还可以是单存储单元存储4比特数据(quad-level cell,QLC)芯片,本发明实施例对此不作限定。
在实际应用中,SSD对Nand-Flash芯片进行电压检测,以完成数据的读取。SSD对Nand-Flash芯片进行充电,以完成数据的写入。容易理解的是,充电所耗费的能量比电压检测所耗费的能量大。因此,当SSD中的IO数据块的大小相等时,SSD的写能耗是读能耗的2~3倍。
单个SSD的能耗较小。但是,存储系统中往往安装有大量的SSD,这样,SSD的能耗在存储系统中占据了很大的比例。如何有效地控制存储系统的能耗,进而降低SSD的能耗对存储系统的性能的影响是至关重要的。本发明实施例中的存储系统以存储阵列为例进行描述。
本发明实施例提供一种能耗控制方法,能耗控制装置根据第一SSD组(存储阵列中的任一SSD组)在第一时刻的能耗和预设规则,调整输入到第一SSD组中写请求的数量。由于在SSD中的IO数据块的大小相等的情况下,SSD的写能耗远远高于读能耗,因此,能耗控制装置调整输入到第一SSD组中写请求的数量,能够有效地控制第一SSD组的能耗。
存储阵列包括一个或多个SSD组。对于每个SSD组而言,均可以此采用本发明实施例提供的能耗控制方法控制能耗,这样,存储阵列的能耗得到了有效地控制。
本发明实施例提供的能耗控制方法适用于存储系统。图1示出了该存储系统的架构。如图1所示,本发明实施例提供的存储系统包括控制器11和多个SSD 12。主机10用于访问存储系统。
在实际应用中,可以多个主机10访问存储系统,本发明实施例以一个主机10访问存储系统为例为例示意。存储系统中多个SSD 12采用一个或者多个SSD组的形式存在,图1以存储系统包括两个SSD组(SSD组1和SSD组2)为例示意。
主机10和控制器11之间通过网络文件系统(network file system,NFS)协议、通用网络文件系统(common internet file system,CIFS)协议或者光纤通道(fiberchannel,FC)协议进行通信。
主机10可以向控制器11发送写请求,控制器11接收所述写请求之后将所述写请求携带的数据写入SSD 12中,之后,控制器11向主机10发送写操作的结果,完成一个写IO的操作。主机10也可以向控制器11发送读数据请求,控制器11接收所述读数据请求之后,根据所述读数据请求中的地址获取待读取的数据,并发送给主机10,完成一个读IO的操作。
可选的,控制器11和多个SSD 12可以集成在一个存储设备中,也可以位于相互独立的两个设备中,本发明实施例不对控制器11和多个SSD 12的位置关系做任何限定。
如图1所示,本实施例提供的控制器11至少包括处理器101和存储器102。
处理器101可以是中央处理器(central processing unit,CPU)。在本发明实施例中,处理器101可以用于接收来自主机10的读数据请求以及写数据请求、处理所述读数据请求以及写数据请求。
存储器102用于缓存存储从主机10接收的数据或从SSD 12读取的数据。以控制器11接收主机10发送的多个写数据请求为例,当接收到主机10发送的多个写数据请求时,控制器11可以将所述多个写数据请求中的数据暂时保存在存储器102中。后续,将存储器102存储的数据发送给SSD 12。SSD 12存储所述数据。
存储器102包括易失性存储器,非易失性存储器或其组合。易失性存储器例如为随机访问存储器(random-access memory,RAM)。非易失性存储器例如软盘、硬盘、SSD、光盘等各种可以存储程序代码的机器可读写介质。本发明实施例中主要以存储器102为Cache为例进行描述。
处理器101可以实时采集(即监测)SSD组(SSD组1和SSD组2中的至少一个)中每个SSD的能耗,并确定SSD组的能耗(可以简单的认为SSD组的能耗的数值等于该SSD组中各个SSD的能耗的数值之和),也可以预测SSD组(如SSD组1或SSD组2)在当前时刻之后的能耗。当监测到SSD组的能耗在第一时刻的数值大于或等于第一预设数值,则处理器101在第一时刻根据预设规则降低输入到所述SSD组中写请求的数量。当预测出SSD组的能耗在第一时刻的数值等于第一预设数值,且在第一时刻SSD组的能耗处于增长状态,则处理器101在第一时刻根据预设规则降低输入到所述SSD组中写请求的数量。
图2示出了存储系统中SSD的一种部署示意图。如图2所示,SSD部署于控制框21和硬盘框22中,控制框21和硬盘框22安装于机柜23中。运维人员可以通过在机柜23中插拔硬盘框实现SSD的增加或删减。存储系统以存储阵列为例,控制框21还包含存储阵列的控制器。
控制框21和硬盘框22包括各自的电源装置(power supply unit,PSU),并由各自的PSU供电。机柜23中的所有PSU由机柜23中的电源分配单元(power distribution unit,PDU)统一供电。由于不同硬盘框22和控制框21所包括的SSD的类型可能不同,因此,PDU为不同硬盘框和控制框分配的最大电能也可能不同。
在实际应用中,当控制框21和硬盘框22的数量固定时,PDU为控制框21和硬盘框22分配的最大电能也是固定的。这样,存储阵列中每一SSD组的最大能耗是预先设定的。
下面结合图1所示的存储系统、图2示出的SSD的部署示意图对本发明实施例提供的能耗控制方法进行描述。所述能耗控制方法可应用在图1所示的控制器11中,以下步骤如无特别说明,均由处理器101执行。
本发明实施例中的处理器101对每个SSD组的处理过程一样。为了便于描述,本发明实施例以处理器101控制SSD组1(与本发明实施例中的第一SSD组对应)的能耗,第一预设数值为SSD组1的能耗的最高限值(为了保证系统性能的安全性,第一预设数值小于SSD组1的最大能耗值)为例进行说明。
如图3所示,本发明实施例提供的能耗控制方法包括如下步骤。
S301、处理器101确定SSD组1在第一时刻的能耗。
处理器101可以采用下述至少一种实现方式确定SSD组1在第一时刻的能耗:
实现方式一:处理器101实时监测SSD组1中每个SSD的能耗。处理器101在监测到SSD组1中每个SSD在第一时刻的能耗后,根据SSD组1中各个SSD在第一时刻的能耗,确定SSD组1在第一时刻的能耗。
可选的,处理器101将SSD组1中各个SSD在第一时刻的能耗的数值之和,确定为SSD组1在第一时刻的能耗的数值,也可以根据预设的权重系数和SSD组1中各个SSD在第一时刻的能耗,计算SSD组1在第一时刻的能耗,本发明实施例对此不作限定。
实现方式二:处理器101预测SSD组1在当前时刻之后的能耗,这样,处理器101即可预测出SSD组1在第一时刻的能耗。这里,第一时刻位于当前时刻之后。
具体的,处理器101分别确定SSD组1的能耗在m(m为大于或等于1的整数)个预设时刻中每个预设时刻的数值,并根据SSD组1的能耗在m个预设时刻中每个预设时刻的数值,预测SSD组1在当前时刻之后的能耗。
其中,m个预设时刻均早于当前时刻,且m个预设时刻与当前时刻之间的时间差均小于或等于预设时长。该预设时长为系统侧或用户侧自定义的,本发明实施例对此不作限定。
处理器101确定出的m个数值均表示SSD组1的历史能耗。通常,某一业务的流量在短时间内不会发生大的变化,这样,SSD组1的能耗也不会发生大的变化。因此,处理器101根据SSD组1的历史能耗,能够较为准确地预测出SSD组1在当前时刻之后的能耗。
可选的,处理器101可以按照时间的先后顺序将m个数值进行排序,并计算排序后的m个数值中每相邻两个数值之间的差值,得到m-1个差值。之后,处理器101采用预设的识别算法识别m-1个差值,以获取m-1个差值之间的规律。进而,处理器101根据获取到的规律预测SSD组1在当前时刻之后的能耗。
或者,处理器按照时间的先后顺序将m个数值进行排序,并计算排序后的m个数值中每相邻两个数值之间的变化率。之后,处理器101采用预设的识别算法识别m-1个变化率,以获取m-1个变化率之间的规律。进而,处理器101根据获取到的规律预测SSD组1在当前时刻之后的能耗。
上述预设的识别算法可以为现有技术中任意一种用于识别规律的算法,本实施例对此不作限定。
当然,处理器101还可以采用其他方法识别m个数值的规律,并根据该规律预测SSD组1在当前时刻之后的能耗,本发明实施例对此不作限定。
S302、处理器101根据确定出的能耗和预设规则,调整输入到SSD组1中写请求的数量,以控制对SSD组1的能耗。
从上面描述可知,SSD的写能耗是读能耗的2~3倍,且在短时间内写数据性能的下降对于整个存储系统的性能的影响较小。因此,处理器调整输入到SSD组1中写请求的数量,能够有效地控制SSD组1的能耗。
容易理解的是,若处理器101采用上述实现方式一确定SSD组1在第一时刻的能耗,且确定出的能耗的数值大于或等于第一预设数值,则说明在第一时刻的下一时刻,SSD组1的能耗可能会大于系统为SSD组1分配的最大电能,导致系统无法正常运行。因此,处理器101可以根据预设规则降低输入到SSD组1中写请求的数量。
若处理器101采用上述实现方式一确定SSD组1在第一时刻的能耗,且确定出的能耗的数值小于第一预设数值,则说明SSD组1的能耗不会增加,不会给SSD组1造成压力,也不会影响系统运行,处理器101无需调整SSD组1的能耗。
若处理器101采用上述实现方式二确定SSD组1在第一时刻的能耗,则处理器101可以判断SSD组1的能耗在第一时刻是否处于增长状态。若处于增长状态,则说明在第一时刻的下一时刻,SSD组1的能耗可能会大于系统为SSD组1分配的最大电能,导致系统无法正常运行。因此,处理器101可以根据预设规则降低输入到SSD组1中写请求的数量。若处于平稳状态或者下降状态,则说明在第一时刻的下一时刻,SSD组1的能耗不会增加,不会给SSD组1造成压力,也不会影响系统运行,处理器101无需调整SSD组1的能耗。
本发明实施例提供的能耗控制方法不受业务类型的限制。对于任一类业务,处理器101均可有效地控制SSD组1的能耗。对于存储阵列中的每一个SSD组而言,能耗控制装置均可以采用本发明实施例提供的能耗控制方法控制其能耗,因此,本发明实施例提供的能耗控制方法,能够有效地控制存储阵列的能耗。
为了便于理解本发明实施例,下面以处理器101采用上述实现方式二确定SSD组1在第一时刻的能耗为例进行详细描述。
具体的,如图4所示,本发明实施例提供的能耗控制方法包括:
S401、处理器101分别确定SSD组1的能耗在m(m为大于或等于1的整数)个预设时刻中每个预设时刻的数值。
S402、处理器101根据SSD组1的能耗在m个预设时刻中每个预设时刻的数值,预测SSD组1在当前时刻之后的能耗。
S403、处理器101确定当前时刻之后,SSD组1的能耗的数值等于第一预设数值的首个时刻,即确定第一时刻。
SSD组1的能耗在当前时刻的数值小于第一预设数值,第一预设数值为SSD组1的能耗的最高限值。
SSD组1的能耗在当前时刻的数值小于第一预设数值,且第一时刻为SSD组1的能耗的数值等于第一预设数值的首个时刻,因此,从当前时刻到第一时刻这一时间段内,SSD组1的能耗均小于第一预设数值。
对于位于当前时刻与第一时刻之间的任一时刻而言,由于SSD组1的能耗小于第一预设数值,不会对SSD组1和存储阵列造成压力,因此,处理器101不需要对SSD组的能耗进行控制。
S404、处理器101判断在第一时刻,SSD组1的能耗是否处于增长状态。
若在第一时刻SSD组1的能耗处于平稳状态或者下降状态状态,则处理器101执行S405;若在第一时刻SSD组1的能耗处于增长状态,则处理器101执行S406。
S405、处理器101将第一时刻作为当前时刻,并重新执行S402。
S406、处理器101在第一时刻,根据预设规则降低输入到SSD组1中写请求的数量。
为了避免对SSD组1造成压力,影响系统性能,处理器101在第一时刻降低输入到SSD组1中写请求的数量。这样,在第一时刻之后,SSD组1的能耗即可下降,从而有效地降低了存储阵列的能耗。
进一步地,在第一时刻之后的第二时刻起,处理器101可以将第二时刻视为当前时刻,并从第二时刻开始,重新预测SSD组1的能耗。第二时刻可以为第一时刻之后,SSD组1的能耗等于第二预设数值(该第二预设数值等于预设系数与第一预设数值的乘积)的首个时刻。
结合上述图4,如图5所示,本发明实施例提供的能耗控制方法还包括S501和S502。
S501、处理器101确定在第一时刻之后,SSD组1的能耗的数值等于第二预设数值的首个时刻为第二时刻。
这里,预设系数的取值取决于系统的配置。示例性的,预设系数为0.5。
S502、处理器101将第二时刻视为当前时刻,并从第二时刻开始,重新预测SSD组1的能耗。
在第一时刻之后,随着输入到SSD组1中写请求的数量的变化,SSD组1的能耗可能又会逐渐增大。为了有效保证系统性能,处理器101可以将第二时刻视为当前时刻,并从第二时刻开始,重新预测SSD组1的能耗。
当然,在第一时刻降低输入到SSD组1中写请求的数量之后,处理器101也可以监测SSD组1的能耗,并根据监测到的SSD组1的能耗,调整输入到SSD组1的写请求的数量。
综上,采用本发明实施例提供的能耗控制方法,能够根据SSD组的能耗,对输入到SSD组的写请求的数量进行调控,不会出现SSD组的能耗超出最高限值的情况,有效地保证了SSD组的能耗的稳定以及系统性能的稳定。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本发明实施例可以根据上述方法示例对能耗控制装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图6所示,为本发明实施例提供的一种能耗控制装置60的结构示意图。能耗控制装置60用于执行图3~图5中任一附图所示的能耗控制方法。能耗控制装置60可以包括确定模块601和调整模块602。
确定模块601,用于确定存储阵列中的第一SSD组(与上述SSD组1对应)在第一时刻的能耗。例如,结合图3,确定模块601可以用于执行S301。调整模块602,用于根据确定模块601确定出的第一SSD组在第一时刻的能耗和预设规则,调整输入到第一SSD组中写请求的数量,以控制对第一SSD组的能耗。例如,结合图3,调整模块602可以用于执行S302。
可选的,确定模块601,具体用于监测得到第一SSD组在第一时刻的能耗。或者,确定模块601,具体用于在当前时刻,预测第一SSD组在第一时刻的能耗,其中,第一SSD组在当前时刻的能耗小于第一预设数值,第一预设数值为第一SSD组的能耗的最高限值,第一时刻位于当前时刻之后。例如,结合图4,确定模块601可以用于执行S402。
可选的,调整模块602具体用于:若确定模块601监测到第一SSD组的能耗在第一时刻的数值大于或等于第一预设数值,则在第一时刻根据预设规则降低输入到第一SSD组中写请求的数量;若确定模块601预测出第一SSD组的能耗在第一时刻的数值等于第一预设数值,且在第一时刻第一SSD组的能耗处于增长状态,则在第一时刻根据预设规则降低输入到第一SSD组中写请求的数量。例如,结合图4,确定模块601可以用于执行S406。
可选的,确定模块601,还用于在调整模块602在第一时刻根据预设规则降低输入到第一SSD组中写请求的数量之后,若第一SSD组的能耗在第二时刻的数值等于第二预设数值,则预测第一SSD组在第二时刻之后的能耗,第二预设数值等于预设系数与第一预设数值的乘积,这里的预设系数为大于零,小于1的数值。例如,结合图5,确定模块601可以用于执行S501和S502。
可选的,确定模块601具体用于:分别确定第一SSD组的能耗在m个预设时刻中每个预设时刻的数值,m个预设时刻均早于当前时刻,且m个预设时刻与当前时刻之间的时间差均小于或等于预设时长,m为大于或等于1的整数;根据第一SSD组的能耗在m个预设时刻中每个预设时刻的数值,预测第一SSD组在当前时刻之后的能耗。例如,结合图4,确定模块601可以用于执行S401和S402。
当然,本发明实施例提供的能耗控制装置60包括但不限于上述模块,例如能耗控制装置60还可以包括存储模块603。存储模块603可以用于存储该能耗控制装置60的程序代码,还可以用于存储能耗控制装置60在运行过程中获取的数据,如写数据请求中的数据等。
在实际实现时,确定模块601和调整模块602均可以由图1所示的处理器101调用缓存102中的程序代码来实现。其具体的执行过程可参考图3~图5中任一附图所示的能耗控制方法部分的描述,这里不再赘述。
本发明另一实施例还提供一种存储系统,该存储阵列包括:处理器,以及存储器;存储器与处理器耦合,所述存储器存储有程序代码;所述处理器调用所述存储器中的程序代码,实现执行上述方法实施例所示的方法。
可选的,该存储阵列还包括接口,该接口可以用于执行上述方法实施例所述的能耗控制方法中收发数据、信令或信息的步骤,例如,获取写请求。接口可以为网络接口卡或主机适配器等。
本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述方法实施例所示的方法。
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
图7示意性地示出本发明实施例提供的计算机程序产品的概念性局部视图,所述计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
在一个实施例中,计算机程序产品是使用信号承载介质710来提供的。所述信号承载介质710可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图3~图5中任一附图描述的功能或者部分功能。因此,例如,参考图3中所示的实施例,S300~S302的一个或多个特征可以由与信号承载介质710相关联的一个或多个指令来承担。此外,图7中的程序指令也描述示例指令。
在一些示例中,信号承载介质710可以包含计算机可读介质711,诸如但不限于,硬盘驱动器、紧密盘(CD)、数字视频光盘(DVD)、数字磁带、存储器、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等等。
在一些实施方式中,信号承载介质710可以包含计算机可记录介质712,诸如但不限于,存储器、读/写(R/W)CD、R/W DVD、等等。
在一些实施方式中,信号承载介质710可以包含通信介质713,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
信号承载介质710可以由无线形式的通信介质713(例如,遵守IEEE 802.41标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
在一些示例中,诸如针对本发明实施例描述的能耗控制装置可以被配置为,响应于通过计算机可读介质711、计算机可记录介质712、和/或通信介质713中的一个或多个程序指令,提供各种操作、功能、或者动作。
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
Claims (12)
1.一种能耗控制方法,其特征在于,包括:
确定存储系统中的第一硬盘组在第一时刻的能耗;
根据所述第一硬盘组在所述第一时刻的能耗和预设规则,调整输入到所述第一硬盘组中写请求的数量,以控制对所述第一硬盘组的能耗。
2.根据权利要求1所述的能耗控制方法,其特征在于,所述确定所述第一硬盘组在第一时刻的能耗,包括:
监测得到所述第一硬盘组在所述第一时刻的能耗;
或者,
在当前时刻,预测所述第一硬盘组在所述第一时刻的能耗,其中,所述第一硬盘组在所述当前时刻的能耗小于第一预设数值,所述第一预设数值为所述第一硬盘组的能耗的最高限值,所述第一时刻位于所述当前时刻之后。
3.根据权利要求2所述的能耗控制方法,其特征在于,所述根据所述第一硬盘组在所述第一时刻的能耗和预设规则,调整输入到所述第一硬盘组中写请求的数量,包括:
若监测到所述第一硬盘组的能耗在所述第一时刻的数值大于或等于所述第一预设数值,则在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量;
若预测出所述第一硬盘组的能耗在第一时刻的数值等于所述第一预设数值,且在所述第一时刻所述第一硬盘组的能耗处于增长状态,则在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量;所述第一时刻为所述第一硬盘组的能耗的数值等于所述第一预设数值的首个时刻。
4.根据权利要求3所述的能耗控制方法,其特征在于,在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量之后,所述能耗控制方法还包括:
若所述第一硬盘组的能耗在第二时刻的数值等于第二预设数值,则预测所述第一硬盘组在所述第二时刻之后的能耗,所述第二预设数值等于预设系数与所述第一预设数值的乘积,所述预设系数为大于零,小于1的数值。
5.根据权利要求2-4中任意一项所述的能耗控制方法,其特征在于,所述在当前时刻,预测所述第一硬盘组在所述第一时刻的能耗,包括:
分别确定所述第一硬盘组的能耗在m个预设时刻中每个预设时刻的数值,所述m个预设时刻均早于所述当前时刻,且所述m个预设时刻与所述当前时刻之间的时间差均小于或等于预设时长,m为大于或等于1的整数;
根据所述第一硬盘组的能耗在m个预设时刻中每个预设时刻的数值,预测所述第一硬盘组在所述当前时刻之后的能耗。
6.一种能耗控制装置,其特征在于,包括:
确定模块,用于确定存储系统中的第一硬盘组在第一时刻的能耗;
调整模块,用于根据所述确定模块确定出的所述第一硬盘组在所述第一时刻的能耗和预设规则,调整输入到所述第一硬盘组中写请求的数量,以控制对所述第一硬盘组的能耗。
7.根据权利要求6所述的能耗控制装置,其特征在于,所述确定模块具体用于:
监测得到所述第一硬盘组在所述第一时刻的能耗;
或者,
在当前时刻,预测所述第一硬盘组在所述第一时刻的能耗,其中,所述第一硬盘组在所述当前时刻的能耗小于第一预设数值,所述第一预设数值为所述第一硬盘组的能耗的最高限值,所述第一时刻位于所述当前时刻之后。
8.根据权利要求7所述的能耗控制装置,其特征在于,所述调整模块具体用于:
若所述确定模块监测到所述第一硬盘组的能耗在所述第一时刻的数值大于或等于所述第一预设数值,则在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量;
若所述确定模块预测出所述第一硬盘组的能耗在第一时刻的数值等于所述第一预设数值,且在所述第一时刻所述第一硬盘组的能耗处于增长状态,则在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量。
9.根据权利要求7所述的能耗控制装置,其特征在于,
所述确定模块,还用于在所述调整模块在所述第一时刻根据所述预设规则降低输入到所述第一硬盘组中写请求的数量之后,若所述第一硬盘组的能耗在第二时刻的数值等于第二预设数值,则预测所述第一硬盘组在所述第二时刻之后的能耗,所述第二预设数值等于预设系数与所述第一预设数值的乘积,所述预设系数为大于零,小于1的数值。
10.根据权利要求7-9中任意一项所述的能耗控制装置,其特征在于,所述确定模块具体用于:
分别确定所述第一硬盘组的能耗在m个预设时刻中每个预设时刻的数值,所述m个预设时刻均早于所述当前时刻,且所述m个预设时刻与所述当前时刻之间的时间差均小于或等于预设时长,m为大于或等于1的整数;
根据所述第一硬盘组的能耗在m个预设时刻中每个预设时刻的数值,预测所述第一硬盘组在所述当前时刻之后的能耗。
11.一种存储系统,其特征在于,所述存储系统包括:处理器,以及存储器;所述存储器与所述处理器耦合,所述存储器存储有程序代码;
所述处理器调用所述存储器中的程序代码,实现如权利要求1-5中任意一项所述的能耗控制方法。
12.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得所述计算机实现如权利要求1-5中任意一项所述的能耗控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107235.XA CN111026328B (zh) | 2019-11-13 | 2019-11-13 | 一种能耗控制方法、装置及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107235.XA CN111026328B (zh) | 2019-11-13 | 2019-11-13 | 一种能耗控制方法、装置及存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111026328A true CN111026328A (zh) | 2020-04-17 |
CN111026328B CN111026328B (zh) | 2022-04-22 |
Family
ID=70205601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911107235.XA Active CN111026328B (zh) | 2019-11-13 | 2019-11-13 | 一种能耗控制方法、装置及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026328B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086679A (zh) * | 2006-06-06 | 2007-12-12 | 英特尔公司 | 预测计算平台存储器功率利用率 |
CN102306046A (zh) * | 2010-05-05 | 2012-01-04 | 美国博通公司 | 在存储控制器中进行功率控制的方法及存储控制器 |
CN102799390A (zh) * | 2012-06-14 | 2012-11-28 | 国家超级计算深圳中心(深圳云计算中心) | 能耗感知的协同式自适应预取方法和中间件 |
US20150074330A1 (en) * | 2013-09-06 | 2015-03-12 | Kabushiki Kaisha Toshiba | Memory device, information-processing device and information-processing method |
CN105895161A (zh) * | 2015-02-17 | 2016-08-24 | 三星电子株式会社 | 存储装置、存储器系统及它们的操作方法 |
CN106909313A (zh) * | 2015-12-22 | 2017-06-30 | 株式会社东芝 | 存储器系统及控制方法 |
CN109522176A (zh) * | 2017-09-20 | 2019-03-26 | 阿里巴巴集团控股有限公司 | 一种存储系统的监控方法、装置、电子设备及存储介质 |
CN109542351A (zh) * | 2018-11-20 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种固态硬盘的功耗控制方法及固态硬盘 |
CN109841247A (zh) * | 2017-11-28 | 2019-06-04 | 爱思开海力士有限公司 | 具有电阻式存储器件的存储系统及其操作方法 |
CN109857240A (zh) * | 2017-11-30 | 2019-06-07 | 华为技术有限公司 | 一种功耗控制的方法及装置 |
CN110308782A (zh) * | 2018-03-22 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 功耗预测、控制方法、设备及计算机可读存储介质 |
-
2019
- 2019-11-13 CN CN201911107235.XA patent/CN111026328B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101086679A (zh) * | 2006-06-06 | 2007-12-12 | 英特尔公司 | 预测计算平台存储器功率利用率 |
CN102306046A (zh) * | 2010-05-05 | 2012-01-04 | 美国博通公司 | 在存储控制器中进行功率控制的方法及存储控制器 |
CN102799390A (zh) * | 2012-06-14 | 2012-11-28 | 国家超级计算深圳中心(深圳云计算中心) | 能耗感知的协同式自适应预取方法和中间件 |
US20150074330A1 (en) * | 2013-09-06 | 2015-03-12 | Kabushiki Kaisha Toshiba | Memory device, information-processing device and information-processing method |
CN105895161A (zh) * | 2015-02-17 | 2016-08-24 | 三星电子株式会社 | 存储装置、存储器系统及它们的操作方法 |
CN106909313A (zh) * | 2015-12-22 | 2017-06-30 | 株式会社东芝 | 存储器系统及控制方法 |
CN109522176A (zh) * | 2017-09-20 | 2019-03-26 | 阿里巴巴集团控股有限公司 | 一种存储系统的监控方法、装置、电子设备及存储介质 |
CN109841247A (zh) * | 2017-11-28 | 2019-06-04 | 爱思开海力士有限公司 | 具有电阻式存储器件的存储系统及其操作方法 |
CN109857240A (zh) * | 2017-11-30 | 2019-06-07 | 华为技术有限公司 | 一种功耗控制的方法及装置 |
CN110308782A (zh) * | 2018-03-22 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 功耗预测、控制方法、设备及计算机可读存储介质 |
CN109542351A (zh) * | 2018-11-20 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种固态硬盘的功耗控制方法及固态硬盘 |
Non-Patent Citations (2)
Title |
---|
DUSHYANTH NARAYANAN 等: "Write off-loading:Practical power management for enterprise storage", 《ACM TRANSACTIONS ON STORAGE》 * |
孙鉴: "基于统计量的存储系统磁盘功耗建模方法研究", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111026328B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870159B2 (en) | Solid-state disk (SSD) management | |
US8284627B2 (en) | Reducing energy consumption and optimizing workload and performance in multi-tier storage systems using extent-level dynamic tiering | |
US9658896B2 (en) | Apparatus and method to manage device performance in a storage system | |
US8549224B1 (en) | Migration analyzer for hardware-based storage tiering | |
US20190073139A1 (en) | Storage device and controllers included in storage device | |
US20100125715A1 (en) | Storage System and Operation Method Thereof | |
US8612683B2 (en) | First storage control apparatus and first storage control apparatus control method | |
CN110196770B (zh) | 云系统内存数据处理方法、装置、设备及存储介质 | |
EP4036735B1 (en) | Method, apparatus and readable storage medium | |
US10146449B1 (en) | Purchase planning for data storage processing systems | |
US11507502B2 (en) | Data storage device performance prediction based on valid fragment count | |
CN110297743B (zh) | 一种负载测试方法、装置和存储介质 | |
CN110069371B (zh) | 一种识别固态硬盘性能的方法及固态硬盘 | |
US10394463B2 (en) | Managing storage devices having a lifetime of a finite number of operations | |
CN114746843A (zh) | 针对已分化数据恢复配置的存储器健康跟踪 | |
US11055008B2 (en) | Managing wear balancing in mapped RAID storage systems | |
US10834192B2 (en) | Storage capacity forecasting by capability sets | |
CN111026328B (zh) | 一种能耗控制方法、装置及存储系统 | |
US11467942B2 (en) | Predictive performance indicator for storage devices | |
US20160364401A1 (en) | Storage data reduction analysis and forecast | |
US20190339903A1 (en) | Drive utilization in multi-tiered systems with read-intensive flash | |
CN112748886A (zh) | 以闭环反馈来提高固态驱动器的io一致性的监督式学习 | |
CN107273198B (zh) | 一种ssd控制芯片的中断控制方法、装置及ssd设备 | |
CN111399763B (zh) | 数据存储的方法、装置、系统、设备及存储介质 | |
US11876864B1 (en) | Using predictive analytics on SFP metrics to influence the target port selection process |
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 |