一种容量调整的方法以及相关装置与流程

文档序号:30949875发布日期:2022-07-30 07:02阅读:54来源:国知局
一种容量调整的方法以及相关装置与流程

1.本技术实施例涉及数据存储技术领域,具体涉及一种容量调整的方法以及相关装置。


背景技术:

2.随着存储介质的快速发展,不同存储介质的性能和成本差异巨大,而且典型的业务场景存在多种热点数据。因此,业界产生了混合存储的分层概念,即将少量的热点数据放在成本较高的高性能存储介质,将大量的冷数据放在成本较低的低性能存储介质。基于数据的读写特性,高性能存储介质可以分作两种用途。由于写热点数据需要频繁改写,因此可以使用持久化存储器的持久化的特性对写热点数据作操作,不用刷到冷数据层;而读热点数据的变化相对较多,在进行换入换出时不用再和冷数据层进行同步,因此可以使用缓存对读热点数据作操作。
3.在不同的业务场景下,对于如何调整分配存储介质的容量来支撑业务访问需求的执行,在传统技术中提供了两种方式来实现。第一种方式主要将动态随机存取存储器(dynamic random access memory,dram)和非易失性存储器(non-volatile memory,nvm)进行统一编址,构建融合的内存系统,然后在该融合的内存系统中,基于数据的读写热点比例动态地将dram直接用作内存或者用作nvm的内存;第二种方式是在由同层间的固态驱动器(solid state drive,ssd)和硬盘驱动器(hard disk drive,hdd)构成的混合存储系统中,对高性能的ssd层介质构建存储池,基于读写热点比例动态地调整该存储池中用作缓存和用作持久化存储器的容量比例。然而,采用第一种方式仅仅考虑了在融合的内存系统中将dram作为内存的用途,仍然需要将nvm中的数据向下刷盘来满足数据的持久化,带来了额外的开销。而第二种方式也仅考虑了同层间的相同存储介质用作持久化存储器和用作缓存的容量比例。
4.因此,在不同业务场景下,如何调整存储介质的容量,以实现介质利用率最大化,并且使用更少的高性能存储介质满足业务场景需求,有效地降低存储成本,已经成为了亟需解决的问题。


技术实现要素:

5.本技术实施例提供了一种容量调整的方法以及相关装置,用于实现各种类型的存储介质的利用率最大化,并满足在不同业务下对不同用途的存储介质的存储容量需求;而且通过各个存储介质在不同用途下的存储容量存储相应的数据,极大地提升系统性能,并有效地降低存储成本。
6.第一方面,本技术实施例提供了一种容量调整的方法,该方法应用于存储系统中,该存储系统可以是分布式存储系统,也可以是集中式的存储系统。该方法可以包括:分析存储系统存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量;根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的
容量,存储系统所需的缓存来源于第一存储介质集合,第一存储介质集合包括一种或多种不同的存储介质,存储系统所需的持久化存储器来源于第二存储介质集合,第二存储介质集合包括一种或多种不同的存储介质;按照缓存的容量以及持久化存储器的容量调整存储系统所包含的存储介质的用途。
7.通过上述方式,由于存储系统包括一种或多种类型不同的存储介质,通过分析存储系统中存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量后,以此确定出存储系统所需的缓存的容量和所需的持久化存储器的容量,并按照缓存的容量和持久化存储器的容量调整存储系统中所包含的存储介质的用途,即每种类型的存储介质用作缓存和用作持久化存储器的容量。换句话说,通过分析数据的冷热属性,能够合理地考虑了数据刷入到该存储系统中所包括的多种类型的存储介质,并合理地基于存储系统所需的缓存的容量和所需的持久化存储器的容量调整各种类型的存储介质的用途,使得各种类型的存储介质的利用率达到最大化,进而满足在不同业务下,对不同用途的存储介质的存储容量需求;并且通过各个存储介质在不同用途下的存储容量存储相应的数据,大大地提升系统性能,并有效地降低存储成本。
8.可选地,在一些示例中,第一存储介质集合所包含的存储介质的类型包括动态随机存取存储器dram、存储级存储器scm、固态硬盘ssd或只读存储器rom,第二存储介质集合所包含的存储介质的类型包括scm、ssd或硬盘驱动器hdd。
9.通过上述方式,第一存储介质集合所包含的存储介质的类型包括dram、scm、ssd或rom,但在实际应用中并不限于所列举出的上述类型,例如还可以包括ram、sram等,此处不做限定,为后续适用于不同的场景提供了性能不同的存储介质。同样地,第二存储介质集合所包含的存储介质的类型包括scm、ssd或hdd,但在实际应用中并不限于所列举出的上述类型,例如还可以包括optane ssd、nand ssd等,此处不做限定。
10.可选地,在另一些示例中,第一存储介质集合所包含的存储介质的类型与第二存储介质集合所包含的存储介质的类型不同。通过上述方式,在存储系统中,若每种类型的存储介质只包含一个时,可以将其中的一部分类型的存储介质作为缓存来使用,将另一部分类型的存储介质作为持久化存储器来使用,为满足不同的存储需求提供了多种方式。
11.可选地,在另一些示例中,第一存储介质集合和第二存储介质集合包含相同类型的存储介质。通过上述方式,在存储系统中,若每种类型的存储介质可以包含多个时,可以将其中的一部分的存储介质作为缓存来使用,将另一部分的存储介质作为持久化存储器来使用。例如,在存储系统中包括2个scm时,可以将其中的一个scm作为缓存,以及将另外一个scm作为持久化存储器,为满足不同的存储需求提供了多种方式。
12.可选地,在另一些示例中,根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,包括:根据热数据的数量和冷数据的数量,以及存储系统所包含的各种类型的存储介质的容量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量。
13.第二方面,本技术实施例中提供了一种容量调整装置,该容量调整装置可以位于存储系统中,该存储系统包括第一存储介质集合和第二存储介质集合,其中,该第一存储介质集合包括一种或多种不同的存储介质,第二存储介质也可以包括一种或多种不同的存储介质,前述的容量调整装置可以包括:分析模块,用于分析存储系统存储的数据的冷热属
性,得到数据中热数据的数量和冷数据的数量;处理模块,用于根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,存储系统所需的缓存来源于前述的第一存储介质集合,存储系统所需的持久化存储器来源于前述的第二存储介质集合;处理模块,用于根据缓存的容量以及持久化存储器的容量调整存储系统所包含的存储介质的用途。
14.需理解的是,前述的存储系统既可以是一种分布式存储系统,也可以是一种集中式的存储系统。一方面,以分布式存储系统为例,分布式存储系统包括一个或多个存储节点,所描述的容量调整装置可以是分布式存储系统中的一个存储节点。另一方面,以集中式的存储系统为例,该集中式的存储系统包括存储阵列,因此所描述的容量调整装置也可以是集中式的存储系统中的存储阵列等。在实际应用中,所描述的容量调整装置也可以是一个独立的服务器,还可以是一个持久化存储器框等既具有存储能力又具有计算能力的设备等,此处不做限定。
15.可选地,在另一些示例中,第一存储介质集合所包含的存储介质的类型包括dram、ssd、scm或rom,第二存储介质集合所包含的存储介质的类型包括scm、ssd或hdd。
16.可选地,在另一些示例中,第一存储介质集合所包含的存储介质的类型与第二存储介质集合所包含的存储介质的类型不同。
17.可选地,在另一些示例中,第一存储介质集合和第二存储介质集合包含相同类型的存储介质。
18.可选地,在另一些示例中,处理模块,具体用于根据热数据的数量和冷数据的数量,以及存储系统所包含的各种类型的存储介质的容量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量。
19.第三方面,本技术实施例提供了一种存储设备,存储设备可以是第一方面提供的分布式存储系统中的一个存储节点,也可以是一个独立的服务器,还可以是一个持久化存储器框等既具有存储能力又具有计算能力的设备,还可以是集中式的存储系统中的存储阵列等。该存储设备可以包括:存储器以及与存储器耦合的处理器。该存储器可以用于存储计算机可读指令;该处理器具体可以用于:分析存储系统存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量;根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,存储系统所需的缓存来源于第一存储介质集合,第一存储介质集合包括一种或多种不同的存储介质,存储系统所需的持久化存储器来源于第二存储介质集合,第二存储介质集合包括一种或多种不同的存储介质;按照缓存的容量以及持久化存储器的容量调整存储系统所包含的存储介质的用途。
20.在一种实现方式中,第一存储介质集合所包含的存储介质的类型包括动态随机存取存储器dram、存储级存储器scm、固态硬盘ssd或只读存储器rom,第二存储介质集合所包含的存储介质的类型包括scm、ssd或硬盘驱动器hdd。
21.在一种实现方式中,第一存储介质集合所包含的存储介质的类型与第二存储介质集合所包含的存储介质的类型不同。
22.在一种实现方式中,第一存储介质集合和第二存储介质集合包含相同类型的存储介质。
23.在一种实现方式中,该处理器还具体用于:根据热数据的数量和冷数据的数量,以
及存储系统所包含的各种类型的存储介质的容量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量。
24.第四方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种可能实现方式的方法。
25.第五方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种可能实现方式的方法。
26.上述第二方面、第三方面、第四方面、第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
27.从以上技术方案可以看出,本技术实施例具有以下优点:
28.本技术实施例中,由于存储系统包括一种或多种类型不同的存储介质,通过分析存储系统中存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量后,以此确定出存储系统所需的缓存的容量和所需的持久化存储器的容量,并按照缓存的容量和持久化存储器的容量调整存储系统中所包含的存储介质的用途,即每种类型的存储介质用作缓存和用作持久化存储器的容量。换句话说,通过分析数据的冷热属性,能够合理地考虑了数据刷入到该存储系统中所包括的多种类型的存储介质,并合理地基于存储系统所需的缓存的容量和所需的持久化存储器的容量调整各种类型的存储介质的用途,使得各种类型的存储介质的利用率达到最大化,进而满足在不同业务下,对不同用途的存储介质的存储容量需求;并且通过各个存储介质在不同用途下的存储容量存储相应的数据,大大地提升系统性能,并有效地降低存储成本。
附图说明
29.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。
30.图1是本技术实施例提供的一种存储系统架构图;
31.图2是本技术实施例提供的另一种存储系统架构图;
32.图3是本技术实施例提供的一种存储设备的系统架构图;
33.图4是本技术实施例提供的一种容量调整的方法的流程图;
34.图5是本技术实施例中提供的一种应用场景示例图;
35.图6是本技术实施例提供的一种容量调整装置的结构示意图。
具体实施方式
36.本技术实施例提供了一种容量调整的方法以及相关装置,用于实现各种类型的存储介质的利用率最大化,并满足在不同业务下对不同用途的存储介质的存储容量需求;而且通过各个存储介质在不同用途下的存储容量存储相应的数据,极大地提升系统性能,并有效地降低存储成本。
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。在本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a、b和c可以是单个,也可以是多个。值得注意的是,“至少一项(个)”还可以解释成“一项(个)或多项(个)”。
39.图1为本技术实施例提供的一种存储系统的结构示意图。如图1所示,该存储系统包括计算机节点集群和存储节点集群。其中,计算节点集群包括一个或多个计算节点10(图1中示出了两个计算节点10,但不限于两个计算节点10)。计算节点10是用户侧的一种计算设备,如服务器、台式计算机等。在硬件层面,计算节点10中设置有处理器和内存(图1中未示出)。在软件层面,计算节点10上运行有应用程序(application)101(简称应用)和客户端程序102(简称客户端)。应用101是对用户呈现的各种应用程序的统称。客户端102用于接收由应用101触发的数据访问请求,并且与存储节点20交互,向存储节点20发送数据访问请求。客户端102还用于接收来自存储节点的数据,并向应用101转发该数据。应理解的是,当客户端102是软件程序时,客户端102的功能由计算节点10所包含的处理器运行内存中的程序来实现。客户端102也可以由位于计算节点10内部的硬件组件来实现。计算节点集群中的任意一个客户端102可以访问存储节点集群中的任意一个存储节点20。
40.存储节点集群包括一个或多个存储节点20(图1中示出了三个存储节点20,如存储节点20a、存储节点20b、存储节点20c,但实际中不限于三个存储节点20),各个存储节点20之间可以互联。存储节点如服务器、台式计算机或者存储阵列的控制器、持久化存储器框等。在功能上,存储节点20主要用于对数据进行计算或处理等。
41.在硬件上,如图1所示,存储节点20至少包括处理器、存储器和网卡。
42.其中,处理器是中央处理器(central processing unit,cpu),用于处理来自存储节点20外部的数据,或者存储节点20内部生成的数据。存储器,是指用于存储数据的装置。在本技术实施例中,存储器包括内存和持久化存储器。
43.内存是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器,访问性能更高。内存可以包括一种或多种类型不同的存储介质,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,rom)。而所描述的随机存取存储器可以是动态随机存取存储器(dynamic random access memory,dram),也可以是存储级存储器(storage class memory,scm)。dram是一种半导体存储器,与大部分随机存取存储器(random access memory,ram)一样,属于一种易失性存储器(volatile memory)设备。scm是一种同时结合传统储存装置与存储器特性的复合型储存技术,scm能够提供比持久化存储器更快速的读写速度,但运算速度上比dram慢,在成本上也比dram更为便宜。需要说明的是,处理器可以直
接访问内存,例如,如图2中所示,处理器可以直接访问dram和scm。
44.需要说明的是,本技术所描述的内存可以是缓存(cache)的一种特殊形式,其中,缓存中的数据可以在短时间内被快速访问,具备较高的访问性能,而且在不需要使用缓存中的数据的情况下,可以直接丢掉该缓存中的数据。此外,本技术中的缓存除了包括前述所描述的内存以外,ssd、hdd等存储介质也可以作为缓存来使用,此处不做限定说明。另外,本技术实施例中仅以内存用作缓存为例进行说明。
45.然而,dram和scm在本实施例中只是示例性的说明,在一些可能的情况中,内存也可以包含dram和scm中的其中一种,或者还可以包括rom等存储介质。或者,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,sram)等。而对于只读存储器,可以是可编程只读存储器(programmable read only memory,prom)、可抹除可编程只读存储器(erasable programmable read only memory,eprom)等。另外,内存还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,dimm),即由动态随机存取存储器(dram)组成的模块。在后续的实施例中,将以dram、scm等存储介质作为缓存为例进行说明。
46.持久化存储器读写数据的速度比缓存慢,通常用于持久性地存储数据。以存储节点20a为例,其内部设置一个或多个持久化存储器;或者,在存储节点20的外部挂载一个持久化存储器框(如图2所示),在持久化存储器框中设置多个持久化存储器。无论哪一种部署方式,这些持久化存储器都可以视作存储节点20所包含的持久化存储器。其中,这里的持久化存储器可以是指物理持久化存储器,也可以是指一个包括多个物理持久化存储器的逻辑域或故障域,本技术实施例对此不作限定。另外,物理持久化存储器的类型为固态持久化存储器、机械持久化存储器,或者其他类型的持久化存储器。
47.需要说明的是,缓存包括的存储器与持久化存储器可以是相同类型的存储介质,也可以是类型完全不同的两种存储介质。其中,相较于持久化存储器,缓存的数据读取速度更快,时延更小,也即,缓存的性能会优于持久化存储器的性能;而且为了能够调整缓存中的存储介质和持久化存储器中的存储介质的用途,在本技术实施例中,如图1和2中所示,第一存储介质集合可以看作是各个存储节点20中所需要的缓存的来源;第二存储介质集合可以看作是各个存储节点20中所需要的持久化存储器的来源。
48.值得理解的是,上述所描述的第一存储介质集合中可以包括多种类型不同的存储介质时,也可以将每种存储介质作为一个介质层,例如:图2所示的dram、scm等存储介质,各个存储节点中的dram组成一个介质层,scm组成一个介质层。上述所描述的第二存储介质集合中也可以包括多种类型不同的存储介质,如图2所示的scm、ssd、hdd等存储介质。后续实施例中将从第一存储介质集合中包括一种或多种不同的存储介质、第二存储介质集合中包括一种或多种不同的存储介质为例进行说明。
49.网卡用于与其他存储节点进行通信,或者,用于与该存储节点耦合的硬盘框进行通信。另外,网卡可以直接访问存储节点的内存,如图2所示,网卡可以直接访问dram和scm。
50.图3是本技术实施例提供的另一种存储系统的结构示意图。图3所示的存储系统为一个存储阵列,该存储阵列包括至少一个控制器(如图3所示的控制器11)和多个持久化存储器22。控制器11通过存储区域网络(storage area network,san)与主机(图中未示出)连接。控制器11可以是一种计算设备,如服务器、台式计算机等等。在控制器11上安装有操作
系统以及应用程序。控制器11可以接收来自主机的输入输出(i/o)请求。控制器11还可以存储i/o请求中携带的数据(如果有的话),并且将该数据写入持久化存储器22中。其中,持久化存储器22可以为机械硬盘或固态硬盘,固态硬盘是以闪存(flash memory)芯片为介质的存储器,又可以称为ssd。
51.图3仅是示例性说明,在实际应用中存储阵列可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器11类似,并且本实施例并不限定控制器之间,以及任意一个控制器与持久化存储器22之间的连接方式。只要各个控制器之间,以及各个控制器和持久化存储器22之间能够相互通信。另外,在本实施例中,持久化存储器可以是指物理硬盘,也可以是指一个包括多个物理硬盘的逻辑域或故障域,本技术实施例对此不作限定。
52.如图3所示,控制器11包括接口卡110、处理器112和接口卡113。
53.接口卡110用于和主机通信,控制器11通过接口卡110接收主机的操作指令。处理器112可能是一个中央处理器(central processing unit,cpu)。在本技术实施例中,处理器112用于接收来自主机的i/o请求、处理所述i/o请求。所述i/o请求是写数据请求或者读数据请求,处理器112还可以将写数据请求中的数据发送给持久化存储器22。接口卡113,用于和持久化存储器22通信,控制器11通过接口卡113将写数据请求(包括数据、数据的逻辑地址以及数据的虚拟地址)发送给持久化存储器22存储。此外,控制器11还包括内存111。内存111用于临时存储从主机接收的数据或从持久化存储器22读取的数据。控制器11接收主机发送的多个写数据请求时,可以将多个写数据请求中的数据暂时保存在内存111中。当内存111的容量达到一定阈值时,将内存111存储的数据、数据的虚拟地址以及为数据分配的逻辑地址发送给持久化存储器22。持久化存储器22存储接收到的数据。内存111可以包括易失性存储器,闪存芯片或其组合。易失性存储器例如为随机访问存储器(random-access memory,ram)。闪存芯片例如软盘、光盘等各种可以存储程序代码的机器可读介质。内存111具有保电功能,保电功能是指系统发生掉电又重新上电时,内存111中存储的数据也不会丢失。
54.在不同的业务场景下,由于读写热点数据的比例会不断发生变化,而且存储介质的读写性能、成本也不尽相同。一方面,作为缓存的存储介质,能够利用缓存的特性,对读热点数据进行存储,访问性能较高,为后续读取读热点数据提供了较高的访问效率、且节省访问开销;另一方面,作为持久化存储器的存储介质,也能够利用持久化存储器的持久化特性,对写热点数据进行存储。如果数据中的读热点数据的数量较多时,那么就希望能够从该存储系统中多种类型的存储介质中,分配出多一些能够用作缓存的存储介质,以此来存储读热点数据;同样地,如果该数据中的写热点数据的数量较多时,那么也希望从该存储系统中多种类型的存储介质中,分配出多一些能够用作持久化存储器的存储介质,以此来存储写热点数据。
55.然而,在相关技术中,要么是基于数据的读写热点比例动态地将dram直接用作内存或者用于nvm的内存;要么是只考虑了同层间的相同存储介质用作缓存和用作持久化存储器的容量分配,均没有全局地考虑该存储系统中的各种类型的存储介质的总体影响。
56.因此,如果能够针对不同的业务需求,动态地并且合理调整上述图1-图3中的第一存储介质集合与第二存储介质集合中的各种类型的存储介质的用途,使得各种类型的存储介质的利用率达到最大化,进而满足在不同业务下,对不同用途的存储介质的存储容量需
求;并且通过各个存储介质在不同用途下的存储容量存储相应的数据,大大地提升系统性能,并有效地降低存储成本。
57.本实施例中容量调整的方法除了可以适用于上述图1-图3所示的系统结构,还可以适用于其他系统架构,具体此处不做限定。
58.缓存除了前述所描述的内存以外,ssd、hdd等存储介质也可以作为缓存来使用。但为便于更好地理解本技术实施例所提出的方案,下面将以前述dram、scm作为缓存、以ssd、hdd作为持久化存储器为例对本实施例中的具体流程进行介绍,如图4所示,为本技术实施例提供的一种容量调整的方法的流程图。该方法可以包括如下步骤:
59.401、分析存储系统存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量。
60.由前述图1-图3中的介绍可知,存储系统中包括第一存储介质集合和第二存储介质集合,并且第一存储介质集合中包括一种或多种不同的存储介质,第二存储介质集合中包括一种或多种不同的存储介质。在本技术实施例中,将以第一存储介质集合中包括dram和scm,第二存储介质集合中包括ssd和hdd为例对该容量调整的方法进行解释说明。
61.该示例中,数据一般都会存储在上述图1-图3中所描述的存储系统中,例如,数据可以存储在图1或图2中所示的分布式存储系统中的内存或持久化存储器中,或者,存储在图3所示的集中式的存储系统中的内存111或持久化存储器22中,此处不做限定。因此,在从存储系统中得到所存储的数据后,可以对该存储系统存储的数据进行冷热属性的分析,进而得到该数据中的热数据的数量和冷数据的数量。
62.需说明,该存储系统中存储的数据可以包括但不限于业务数据、元数据以及中间数据。所描述的业务数据可以理解成针对用户提出的业务访问需求而得到的业务数据;元数据可以理解成用于描述数据的数据,包括对数据的定义、结构等方面的描述;中间数据可以理解成介于源数据和结果数据之间的数据。
63.所描述的数据的冷热属性可以包括但不限于数据的访问频率等。此外,可以从数据的访问频率来区分热数据和冷数据,比如:将用户对某个数据的访问频率高于预设访问阈值时所对应的数据称为热数据,以及将对某个数据的访问频率低于预设访问阈值时所对应的数据称为冷数据。需理解,前述的预设访问阈值视情况而定,此处不做限定;另外,在实际应用中还可以从数据的访问比例、访问模式、更新频率等区分热数据和冷数据,此处不做限定说明。
64.可以理解的是,如果该容量调整的方法应用于图1或图2所示的存储系统中,则可以由存储系统中的多个存储节点(例如:存储节点20a、存储节点20b或存储节点20c等)中的任一存储节点,或者,也可以由该存储系统中独立于存储节点之外的用于对各个存储节点进行管理的一个节点,对内存和持久化存储器中存储的数据进行冷热属性的分析,进而得到数据中热数据的数量和冷数据的数量。如果该容量调整的方法应用于图3所示的集中式的存储系统中,则可以由集中式的存储系统中的控制器,对该存储系统存储的数据进行冷热属性的分析,进而得到数据中热数据的数量和冷数据的数量。具体在本技术实施例中不做限定。
65.402、根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,存储系统所需的缓存来源于第一存储介质集合,第一存
储介质集合包括一种或多种不同的存储介质,存储系统所需的持久化存储器来源于第二存储介质集合,第二存储介质集合包括一种或多种不同的存储介质。
66.该示例中,上述所描述的存储系统所需要的缓存的容量来源于第一存储介质集合,可以理解成:该第一存储介质集合中的一种或多种不同的存储介质的容量可以用作为缓存的容量。同样地,该存储系统所需要的持久化存储器的容量来自于第二存储介质集合,也可以理解成:该第二存储介质集合中的一种或多种不同的存储介质的容量可以用作为持久化存储器的容量。
67.另外,由于热数据的访问频率较高,冷数据的访问频率相对较低,而且从上述图1-图3中所描述的内容可知,缓存可以随时读写数据,并且缓存的读写速度快于持久化存储器的读写速度,而且该热数据中的读热点数据可以使用缓存来存储,该热数据中的写热点数据可以使用持久化存储器进行持久化地存储。
68.因此,在分析数据的冷热属性得到数据中热数据的数量和冷数据的数量后,可以基于热数据的数量和冷数据的数量确定该存储系统所需要的缓存的容量和持久化存储器的容量,进而能够按照缓存的容量和持久化存储器的容量动态地调整该存储系统中的每个存储介质的用途,即调整存储介质中能够用作缓存的容量和用作持久化存储器的容量之间的容量比例,以便于合理利用每个存储介质的容量来存储相应的读热点数据和写热点数据,为适应不同业务场景的需求提供更好地访问基础。
69.具体地,可以由图1或图2中所示出的存储系统中的多个存储节点中的任一存储节点,或者图3所示的存储系统中的控制器来执行步骤402,以实现能够根据热数据的数量和冷数据的数量,来确定相应的存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量。在实际应用中,也可以由图1或图2中所示出的存储系统中独立于存储节点之外的、能够用于对各个存储节点进行管理的一个节点来执行步骤402,此处不做限定。
70.在一些示例中,前述所描述的第一存储介质集合所包含的存储介质的类型可以包括但不限于dram、scm、ssd或rom等;所描述的第二存储介质集合所包含的存储介质的类型可以包括但不限于scm、ssd或hdd等,其中,上述的ssd又可以包括但不限于optane ssd、nand ssd等,具体此处不做限定说明。
71.另外,在另一些实施例中,由于存储系统所包含的存储介质既可以作为缓存,也可以作为持久化存储器,具体可能存在以下两种情况:
72.第一种,第一存储介质集合所包含的存储介质的类型与第二存储介质集合所包含的存储介质的类型不相同。也就是说,可以使用该第一存储介质集合中的存储介质作缓存,进而利用缓存的特性对热数据中的读热点数据进行存储;同样地,使用该第二存储介质集合中的存储介质作持久化存储器,进而利用持久化的特性对热数据中的写热点数据进行存储。举例来说,如上述图2所示的存储系统,在该存储系统中,在每一种类型的存储介质的个数只有一个时,可以将内存dram和scm作为缓存,以用于存储读热点数据,以及将ssd、hdd等可以作为持久化存储器,以用于存储写热点数据,此处不做限定说明。
73.第二种,第一存储介质集合与第二存储介质集合包含相同类型的存储介质。理解成:类型相同的存储介质,也可以有不同的用途,即该类型相同的存储介质的用途既可以用作缓存,进而能够利用缓存的特性对热数据中的读热点数据进行存储,也可以同步地用作持久化存储器,使用持久化特性对热数据中的写热点数据进行存储。例如:若上述图2所示
的存储系统可以包括至少两个scm,可以将其中一个scm作为缓存,以用于存储热数据中的读热点数据;而其余的scm作为持久化存储器,以用于存储热数据中的写热点数据,此处不做限定说明。值得理解的是,在实际应用中,该存储系统还可以包括多个dram、多个ssd、以及多个hdd等存储介质,此时,也可以将一个或多个dram、以及一个或多个ssd作为缓存,而其余的ssd和一个或多个hdd作为持久化存储器,具体此处不做说明。
74.在另一些实施例中,针对上述基于热数据的数量和冷数据的数量来确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,可以采用如下方式:根据热数据的数量和冷数据的数量,以及存储系统所包含的各种类型的存储介质的容量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量。
75.该示例中,为了能够更加合理地使用存储系统中每个存储介质用作缓存、以及用作持久化存储器的容量,那么在得到热数据的数量和冷数据的数量之后,还可以结合该存储系统所包含的各种类型的存储介质的容量,来确定出所需要的缓存的容量和持久化存储器的容量。
76.具体地,由于在对存储系统的访问过程中,所需要的缓存的容量和持久化存储器的容量均来源于该存储系统中所包含的各种类型的存储介质,而各种类型的存储介质的性能变化能够反映出热数据的数量以及冷数据的数量刷入到各种类型的存储介质时,该存储系统的综合系统性能。因此,可以从该存储系统的综合系统性能的规律中,确定出各种存储介质中能够用作缓存的容量和用作持久化存储器的容量之间的最优比例。
77.也就是说,基于热数据的数量和冷数据的数量确定热数据比例以及冷数据比例;然后,根据该热数据比例和冷数据比例,评估该存储系统中包含的各种类型的存储介质被访问时的访问占比。所描述的访问占比可以理解成,每种类型的存储介质被访问时,实际上用作缓存的容量和作为持久化存储器的容量各自占整个存储介质的比例。然后,再根据访问占比确定出该存储系统的综合系统性能。这样,在各种类型的存储介质的访问占比发生变化时,能够确定出该存储系统的综合系统性能的规律变化,进而从该综合系统性能的规律变化中确定出目标综合性能,以此目标综合性能所对应的各种类型的存储介质的容量作为最终所需要的缓存的容量和持久化存储器的容量。
78.举例来说,以图2所示的第一存储介质集合中包括dram、scm,以及第二存储介质集合中包括ssd以及hdd为例。假设在分析得到数据中热数据的数量为800个单位的数据量、冷数据的数量为200个单位的数据量,那么相应的热数据比例为80%、冷数据比例为20%,这样,可以评估出前述的存储介质被访问时的访问占比分别为50%、40%、5%、5%。同样地,在评估出各种类型的存储介质的访问占比发生变化时,那么各种类型的存储介质的性能变化,具体可以参照下述表1来理解:
79.表1
[0080][0081]
值得注意的是,各种类型的存储介质的性能可以从访问存储介质的平均时延来反映出。因此,在确定各种类型的存储介质的性能,可以通过确定出访问各种类型的存储介质的平均时延来实现。具体地,由上述表1可知,若评估出访问dram、scm、ssd以及hdd的访问占比分别为50%、40%、5%、5%,并且确定出访问各种类型的存储介质的时延,那么得到访问各种类型的存储介质的平均时延为:f11=(50%
×
1000
×
t1)/1000=50%
×
t1、f12=(40%
×
1000
×
t2)/1000=40%
×
t2、f13=(5%
×
1000
×
t3)/1000=5%
×
t3、f14=(5%
×
1000
×
t4)/1000=5%
×
t4。这样,f11、f12、f13、f14能够分别反映出dram、scm、ssd以及hdd在访问占比为50%、40%、5%、5%时的性能。这样,在dram、scm、ssd以及hdd的访问占比分别为50%、40%、5%、5%的基础上,该存储系统的性能f1也可以从各种类型的存储介质的平均时延的时延总和来反映,即f1=f11+f12+f13+f14。
[0082]
这样,在各种类型的存储介质的访问占比发生变化时,可以依据上述通过确定访问存储介质的平均时延的方式,确定出存储系统在各种类型的存储介质在不同访问占比下的性能,进而确定出综合系统性能的规律变化。该综合系统性能的规律变化可以理解成:数据落在类型不相同的存储介质上的访问占比发生变化时,该存储系统所对应的性能变化曲线。
[0083]
如表1所示,在访问dram、scm、ssd以及hdd的访问占比分别由50%、40%、5%、5%,变化为70%、10%、10%以及10%,那么相应的存储系统的性能f2=f21+f22+f23+f24。同样地,在访问dram、scm、ssd以及hdd的访问占比分别由70%、10%、10%以及10%,变化为60%、20%、15%以及5%,那么相应的存储系统的性能f3=f31+f32+f33+f34。这样,混合存储系统便可以基于f1、f2以及f3确定出综合系统性能的规律变化了。
[0084]
这样,在确定出综合系统性能的规律变化后,可以通过预设梯度法等算法从综合系统性能的规律变化中确定出综合性能最大值,并将该综合性能最大值作为目标综合性能。举例来说,在表1所示的示例中,如果从综合系统性能的规律变化中确定出的目标综合性能为f1,那么可以将该f1对应的dram、scm、ssd以及hdd的容量配比作为各种类型存储介质的目标容量配比,以此确定出所需要的缓存的容量和持久化存储器的容量。
[0085]
需要说明的是,上述表1仅以第一存储介质集合中所包括的一个或多个存储介质、以及第二存储介质集合中所包括的一个或多个存储介质为例进行说明。
[0086]
在实际应用中,在上述提到的第二种情形中,针对类型相同的存储介质,也可以参照上述基于综合系统性能确定缓存的容量和持久化存储器的容量进行理解,以此确定出类型相同的存储介质在不同的访问占比发生变化时,该存储系统的性能变化,进而确定出该类型相同的存储介质能够用作缓存的容量和用作持久化存储器的容量之间的最优比例,具体此处不做赘述。
[0087]
此外,在实际应用中,也可以只从第一存储介质集合中的每个存储介质在不同的访问占比下的角度,来确定存储系统的性能变化;也可以只从第二存储介质集合中的每个存储介质在不同的访问占比下的角度,来确定存储系统的性能变化,具体此处不做限定说明。
[0088]
403、按照缓存的容量以及持久化存储器的容量调整存储系统所包含的存储介质的用途。
[0089]
实施例中,在得到缓存的容量和持久化存储器的容量后,便可以调整存储系统中所包含的存储介质的用途,即调整各个存储介质中能够用作缓存的容量和用作持久化存储器的容量之间的容量比例,以便于合理利用每个存储介质的容量来存储热数据中的读热点数据和写热点数据,为适应不同业务场景的需求提供更好地访问基础。具体地,可以由图1或图2中所示出的存储系统中的任一存储节点,或者图3所示的存储系统中的控制器来执行该步骤403。例如,针对图1或图2所示的分布式存储系统,可以由存储节点20a按照缓存的容量以及持久化存储器的容量调整该分布式存储系统所包含的存储介质的用途;或者,针对图3所示的集中式的存储系统,可以由控制器11按照缓存的容量以及持久化存储器的容量调整该分布式存储系统所包含的存储介质的用途等。
[0090]
例如,参阅图5,为本技术实施例中提供的一种应用场景示例图。从图5可知,该存储系统中包括两个scm,其中,用作缓存的存储介质有dram和scm,以及用作持久化存储器的存储介质有scm、ssd以及hdd。若基于上述步骤401-403得到缓存的容量和持久化存储器的容量后,那么可以基于该缓存的容量分别调整整个dram中能够用作缓存的容量、以及调整整个scm中能够用作缓存的容量,例如:在上述步骤402中,可以从dram中配置出50%的容量用作于缓存的容量、以及从scm中配置出40%的容量用作为缓存的容量。同样地,可以基于该持久化存储器的容量分别调整整个ssd中能够用作持久化存储器的容量、以及调整整个hdd中能够用作持久化存储器的容量,如上述步骤402中,可以从ssd中配置出5%的容量用作于持久化存储器的容量、以及从hdd中配置出5%的容量作为持久化存储器的容量,具体此处不做限定。
[0091]
在本技术实施例中,由于存储系统包括一种或多种类型不同的存储介质,通过分析存储系统中存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量后,以此确定出存储系统所需的缓存的容量和所需的持久化存储器的容量,并按照缓存的容量和持久化存储器的容量调整存储系统中所包含的存储介质的用途,即每种类型的存储介质用作缓存和用作持久化存储器的容量。换句话说,通过分析数据的冷热属性,能够合理地考虑了数据刷入到该存储系统中所包括的多种类型的存储介质,并合理地基于存储系统所需的缓存的容量和所需的持久化存储器的容量调整各种类型的存储介质的用途,使得各种类型的
存储介质的利用率达到最大化,进而满足在不同业务下,对不同用途的存储介质的存储容量需求;并且通过各个存储介质在不同用途下的存储容量存储相应的数据,大大地提升系统性能,并有效地降低存储成本。
[0092]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。可以理解的是,上述的容量调整装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的功能,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0093]
从功能单元的角度,本技术可以根据上述方法实施例对容量调整装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个功能单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0094]
比如,以采用集成的方式划分各个功能单元的情况下,参见图6,本技术实施例提供了一种容量调整装置,该容量调整装置位于前述图1-图3所示的存储系统中。具体地,在图1或图2所描述的分布式存储系统中,该容量调整装置可以是该分布式存储系统中的多个存储节点中的任一存储节点,如:存储节点20a、存储节点20b或存储节点20c等;在图3所描述的集中式的存储系统中,该容量调整装置也可以是该集中是的存储系统中的控制器、存储阵列等。前述的存储系统可以包括第一存储介质集合和第二存储介质集合,其中,第一存储介质集合包括一种或多种不同的存储介质,第二存储介质集合包括一种或多种不同的存储介质。所描述的容量调整装置可以包括:
[0095]
分析模块601,用于分析存储系统存储的数据的冷热属性,得到数据中热数据的数量和冷数据的数量;具体可参考前述实施例中的步骤401。
[0096]
处理模块602,用于根据热数据的数量和冷数据的数量,确定存储系统所需的缓存的容量和存储系统所需的持久化存储器的容量,存储系统所需的缓存来源于第一存储介质集合,存储系统所需的持久化存储器来源于第二存储介质集合;具体可参考前述实施例中的步骤402。分析模块601和处理模块602可以由存储设备中的处理器运行存储器里的程序指令来实现。
[0097]
处理模块602,用于根据缓存的容量以及持久化存储器的容量调整存储系统所包含的存储介质的用途。
[0098]
可选地,在一些示例中,第一存储介质集合所包含的存储介质的类型包括dram、ssd、scm或rom,第二存储介质集合所包含的存储介质的类型包括scm、ssd或hdd。
[0099]
可选地,在一些示例中,第一存储介质集合所包含的存储介质的类型与第二存储介质集合所包含的存储介质的类型不同。
[0100]
可选地,在一些示例中,第一存储介质集合和第二存储介质集合包含相同类型的存储介质。
[0101]
可选地,在一些示例中,处理模块602,用于根据热数据的数量和冷数据的数量,以及存储系统所包含的各种类型的存储介质的容量,确定存储系统所需的缓存的容量和存储
系统所需的持久化存储器的容量。
[0102]
在本技术实施例中,通过分析模块601分析数据的冷热属性,能够合理地考虑了数据刷入到该存储系统中所包括的多种类型的存储介质,并经由处理模块602合理地基于存储系统所需的缓存的容量和所需的持久化存储器的容量调整各种类型的存储介质的用途,使得各种类型的存储介质的利用率达到最大化,进而满足在不同业务下,对不同用途的存储介质的存储容量需求;并且通过各个存储介质在不同用途下的存储容量存储相应的数据,大大地提升系统性能,并有效地降低存储成本。
[0103]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0104]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0105]
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0106]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0107]
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例该方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0108]
上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0109]
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个
或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd))等。
[0110]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1