1.本技术涉及互联网技术领域,尤其涉及一种数据处理方法、装置及设备。
背景技术:2.云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将数据计算处理程序分解成无数个小程序,然后,通过大量服务器组成的系统对这些小程序进行分析和处理,得到处理结果后返回给用户。云计算具有虚拟化动态可扩展、按需部署、灵活性高、可靠性高、性价比高、可扩展性等特点。
3.随着云计算技术的高速发展,对物理硬盘的性能要求也日益提升。为了支持云计算技术,可以采用各种类型的物理硬盘对用户数据进行存储。
4.比如说,主流的物理硬盘有两种类型,第一种类型的物理硬盘,具有读写速度快但容量小的特点,在采用这种类型的物理硬盘对用户数据进行存储时,无法满足大容量的存储需求,比如说,云计算场景下通常需要存储大量用户数据,物理硬盘无法同时存储这些用户数据。
5.第二种类型的物理硬盘,具有容量大但读写速度慢的特点,如qlc(quad level cell,四层单元)物理硬盘等,在采用这种类型的物理硬盘对用户数据进行存储时,无法满足快速读写的存储需求,比如说,云计算场景下通常需要快速写入和快速读取数据,物理硬盘无法支持快速写入和快速读取数据。
技术实现要素:6.本技术提供一种数据处理方法,应用于存储设备,所述存储设备包括高速物理硬盘和容量物理硬盘,用户数据通过追加写方式存储到所述高速物理硬盘,在所述高速物理硬盘满足迁移条件时,通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘,所述方法包括:
7.获取所述容量物理硬盘对应的目标决策信息;
8.基于所述目标决策信息确定垃圾回收操作对应的目标时刻;
9.在所述目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作。
10.示例性的,所述基于所述目标决策信息确定垃圾回收操作对应的目标时刻,包括:基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值;
11.确定所述容量物理硬盘中的重复数据的数据量达到所述目标垃圾回收阈值的时刻,将所述时刻确定为垃圾回收操作对应的目标时刻。
12.示例性的,所述目标决策信息包括所述容量物理硬盘的剩余存储空间;所述基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值,包括:
13.若所述剩余存储空间小于预设第一存储空间阈值,则降低已配置的初始垃圾回收阈值,得到所述目标垃圾回收阈值;或者,
14.若所述剩余存储空间大于预设第二存储空间阈值,则增加已配置的初始垃圾回收
阈值,得到所述目标垃圾回收阈值;或者,
15.若所述剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,将所述初始垃圾回收阈值确定为所述目标垃圾回收阈值。
16.示例性的,所述目标决策信息包括所述容量物理硬盘的垃圾比,所述垃圾比表示重复数据的数据量与总数据量的比例;所述基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值,包括:
17.若所述垃圾比小于预设第一垃圾比阈值,则增加已配置的初始垃圾回收阈值,得到所述目标垃圾回收阈值;或者,
18.若所述垃圾比大于预设第二垃圾比阈值,则降低已配置的初始垃圾回收阈值,得到所述目标垃圾回收阈值;或者,
19.若所述垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值,将所述初始垃圾回收阈值确定为所述目标垃圾回收阈值。
20.示例性的,统计周期被划分为多个时间段,所述目标决策信息包括每个时间段对应的io总数量;针对每个时间段对应的io总数量,所述io总数量是该时间段内,针对所述高速物理硬盘的写操作数量和读操作数量,与针对所述容量物理硬盘的读操作数量之和;
21.所述基于所述目标决策信息确定垃圾回收操作对应的目标时刻,包括:
22.基于每个时间段对应的io总数量,若时间段对应的io总数量大于预设io数量阈值,则基于该时间段确定垃圾回收操作对应的目标时刻;
23.其中,所述目标时刻位于该时间段的起始时刻之前。
24.示例性的,所述在所述高速物理硬盘满足迁移条件时,通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘,包括:
25.获取所述高速物理硬盘对应的热点数据分布信息;
26.基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值;
27.在所述高速物理硬盘中的用户数据的数据量达到所述目标迁移阈值时,确定所述高速物理硬盘满足迁移条件,并通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘。
28.示例性的,所述热点数据分布信息包括热点数据总数量,所述热点数据总数量是所述高速物理硬盘中的热点数据数量与所述容量物理硬盘中的热点数据数量之和;所述基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值,包括:若所述热点数据总数量大于预设第一数量阈值,则增加已配置的初始迁移阈值,得到所述目标迁移阈值;或者,
29.若所述热点数据总数量小于预设第二数量阈值,则降低已配置的初始迁移阈值,得到所述目标迁移阈值;或者,
30.若所述热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值,则将所述初始迁移阈值确定为所述目标迁移阈值。
31.示例性的,所述在所述目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作,包括:确定所述容量物理硬盘中的重复数据所在的存储块区域,所述存储块区域包括多个存储块,所述多个存储块包括具有重复数据的存储块;
32.若所述多个存储块还包括不具有重复数据的目标存储块,则通过追加写方式将所述目标存储块中的用户数据存储到所述容量物理硬盘;
33.删除所述存储块区域中每个存储块内的用户数据。
34.示例性的,所述存储设备采用写整形缓存wsc架构对用户数据进行存储;
35.所述高速物理硬盘的读写速度大于预设速度阈值,且所述高速物理硬盘的存储容量小于预设容量阈值;所述容量物理硬盘的读写速度不大于所述预设速度阈值,且所述容量物理硬盘的存储容量不小于所述预设容量阈值。
36.本技术提供一种数据处理装置,应用于存储设备,所述存储设备包括高速物理硬盘和容量物理硬盘,所述装置包括:
37.存储模块,用于在得到用户数据后,通过追加写方式将所述用户数据存储到所述高速物理硬盘;在所述高速物理硬盘满足迁移条件时,通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘;
38.获取模块,用于获取所述容量物理硬盘对应的目标决策信息;
39.确定模块,用于基于所述目标决策信息确定垃圾回收操作对应的目标时刻;
40.处理模块,用于在所述目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作。
41.示例性的,所述确定模块基于所述目标决策信息确定垃圾回收操作对应的目标时刻时具体用于:基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值;确定所述容量物理硬盘中的重复数据的数据量达到所述目标垃圾回收阈值的时刻,将所述时刻确定为垃圾回收操作对应的目标时刻;
42.其中,所述目标决策信息包括所述容量物理硬盘的剩余存储空间;所述确定模块基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时具体用于:若所述剩余存储空间小于预设第一存储空间阈值,则降低已配置的初始垃圾回收阈值,得到所述目标垃圾回收阈值;或者,若所述剩余存储空间大于预设第二存储空间阈值,则增加初始垃圾回收阈值,得到所述目标垃圾回收阈值;或者,若所述剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,则将初始垃圾回收阈值确定为所述目标垃圾回收阈值;
43.其中,所述目标决策信息包括所述容量物理硬盘的垃圾比,所述垃圾比表示重复数据的数据量与总数据量的比例;所述确定模块基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时具体用于:若所述垃圾比小于预设第一垃圾比阈值,则增加已配置的初始垃圾回收阈值,得到目标垃圾回收阈值;或者,若所述垃圾比大于预设第二垃圾比阈值,则降低初始垃圾回收阈值,得到目标垃圾回收阈值;或者,若所述垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值,将初始垃圾回收阈值确定为目标垃圾回收阈值。
44.示例性的,统计周期被划分为多个时间段,所述目标决策信息包括每个时间段对应的io总数量;针对每个时间段对应的io总数量,所述io总数量是该时间段内,针对所述高速物理硬盘的写操作数量和读操作数量,与针对所述容量物理硬盘的读操作数量之和;所述确定模块基于所述目标决策信息确定垃圾回收操作对应的目标时刻时具体用于:基于每个时间段对应的io总数量,若时间段对应的io总数量大于预设io数量阈值,则基于该时间段确定垃圾回收操作对应的目标时刻;其中,所述目标时刻位于该时间段的起始时刻之前。
45.示例性的,所述存储模块在所述高速物理硬盘满足迁移条件时,通过追加写方式
将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘时具体用于:获取所述高速物理硬盘对应的热点数据分布信息;基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值;在所述高速物理硬盘中的用户数据的数据量达到所述目标迁移阈值时,确定所述高速物理硬盘满足迁移条件,并通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘;
46.其中,所述热点数据分布信息包括热点数据总数量,所述热点数据总数量是所述高速物理硬盘中的热点数据数量与所述容量物理硬盘中的热点数据数量之和;所述存储模块基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值时具体用于:若所述热点数据总数量大于预设第一数量阈值,则增加已配置的初始迁移阈值,得到所述目标迁移阈值;或者,若所述热点数据总数量小于预设第二数量阈值,则降低已配置的初始迁移阈值,得到所述目标迁移阈值;或者,若所述热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值,则将所述初始迁移阈值确定为所述目标迁移阈值。
47.示例性的,所述处理模块在目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作时具体用于:确定所述容量物理硬盘中的重复数据所在的存储块区域,所述存储块区域包括多个存储块,所述多个存储块包括具有重复数据的存储块;若所述多个存储块还包括不具有重复数据的目标存储块,则通过追加写方式将所述目标存储块中的用户数据存储到所述容量物理硬盘;删除所述存储块区域中每个存储块内的用户数据。
48.本技术提供一种存储设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本技术上述示例公开的数据处理方法。
49.本技术提供一种机器可读存储介质,所述机器可读存储介质存储有能够被处理器执行的机器可执行指令;其中,所述处理器用于执行所述机器可执行指令,以实现本技术上述示例公开的数据处理方法。
50.由以上技术方案可见,本技术实施例中,存储设备包括高速物理硬盘和容量物理硬盘,高速物理硬盘是读写速度快但容量小的物理硬盘,容量物理硬盘是容量大但读写速度慢的物理硬盘,在对用户数据进行存储时,通过追加写方式将用户数据存储到高速物理硬盘,从而满足快速读写的存储需求,即能够支持快速写入数据和快速读取数据。在高速物理硬盘满足迁移条件时,通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,从而满足大容量的存储需求,即通过容量物理硬盘能够同时存储大量用户数据。可以确定垃圾回收操作对应的目标时刻,并在目标时刻对容量物理硬盘中的重复数据进行垃圾回收操作,从而在合适时间进行垃圾回收操作,避免垃圾回收操作抢占数据读取操作的带宽,使得容量物理硬盘能够满足快速读写的需求,使用户的读流量能够满足产品需求,避免因存储空间不足导致的流量占用及数据丢失问题,保证在大流量读写混合场景下满足用户要求,使存储设备处于动态平衡的稳态。
附图说明
51.图1是本技术一种实施方式中的数据写入过程和数据读取过程的示意图;
52.图2是本技术一种实施方式中的数据处理方法的流程示意图;
53.图3是本技术一种实施方式中的数据写入过程和数据读取过程的示意图;
54.图4是本技术一种实施方式中的模糊控制器的结构示意图;
55.图5是本技术一种实施方式中的数据处理装置的结构示意图;
56.图6是本技术一种实施方式中的存储设备的硬件结构图。
具体实施方式
57.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
58.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
59.随着云计算技术的高速发展,对物理硬盘的性能要求也日益提升。为了支持云计算技术,可以采用各种类型的物理硬盘对用户数据进行存储。为了满足低延时、高吞吐的需求,本技术实施例中提出一种采用wsc(write shaping cache,写整形缓存)架构对用户数据进行存储的方案,wsc架构是一种cache技术。
60.本技术实施例中,存储设备包括高速物理硬盘和容量物理硬盘,存储设备采用wsc架构对用户数据进行存储,即采用高速物理硬盘和容量物理硬盘对用户数据进行存储。在采用高速物理硬盘和容量物理硬盘对用户数据进行存储时,使用高速物理硬盘作为容量物理硬盘的缓存,加速容量物理硬盘的读写速度。
61.其中,高速物理硬盘是读写速度快且容量小的物理硬盘,具有读写速度快但容量小的特点,高速物理硬盘采用超高速内存技术实现数据存储,本实施例对此高速物理硬盘的类型不做限制,只要具有读写速度快但容量小的特点即可。
62.比如说,高速物理硬盘的读写速度大于预设速度阈值,且高速物理硬盘的存储容量小于预设容量阈值。预设速度阈值可以根据经验配置,在高速物理硬盘的读写速度大于预设速度阈值时,表示读写速度快。预设容量阈值可以根据经验配置,在高速物理硬盘的存储容量小于预设容量阈值时,表示容量小。
63.其中,容量物理硬盘是读写速度慢且容量大的物理硬盘,具有容量大但读写速度慢的特点,如qlc物理硬盘等,qlc物理硬盘是一种大容量ssd(solid state disk,固态硬盘),qlc物理硬盘的电压能够从0000到1111共有16种变化。当然,qlc物理硬盘只是容量物理硬盘的示例,本实施例中对此容量物理硬盘的类型不做限制,只要具有容量大但读写速度慢的特点即可。
64.比如说,容量物理硬盘的读写速度不大于预设速度阈值,且容量物理硬盘的存储容量不小于预设容量阈值。预设速度阈值根据经验配置,在容量物理硬盘的读写速度不大于预设速度阈值时,表示读写速度慢。预设容量阈值根据经验配置,在容量物理硬盘的存储容量不小于预设容量阈值时,表示容量大。
65.参见图1所示,为wsc架构下的数据写入过程和数据读取过程的示意图。
66.针对数据写入过程,用户数据通过追加写方式存储到高速物理硬盘,即在高速物理硬盘的已写入数据的后面,追加写入用户数据。在高速物理硬盘满足迁移条件时,可以通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,即在容量物理硬盘的已写入数据的后面,追加写入用户数据。
67.比如说,针对待写入的用户数据a,可以通过追加写方式将用户数据a存储到高速物理硬盘,并确定用户数据a在高速物理硬盘中的物理地址,记为物理地址a1,并确定用户数据a对应的逻辑地址,记为逻辑地址a2。
68.示例性的,可以存储l2p(logic to physis,逻辑物理)表,如在内存中存储l2p表,并将l2p表持久化到高速物理硬盘的某个扇区,l2p表用于记录逻辑地址与逻辑物理之间的映射关系。在此基础上,针对用户数据a,可以在l2p表中记录逻辑地址a2与物理地址a1之间的映射关系,参见表1所示。
69.又例如,针对待写入的用户数据b,可以通过追加写方式将用户数据b存储到高速物理硬盘,确定用户数据b在高速物理硬盘中的物理地址b1,并确定用户数据b对应的逻辑地址b2,在l2p表中记录逻辑地址b2与物理地址b1之间的映射关系,以此类推,可以将每个用户数据存储到高速物理硬盘。
70.表1
71.逻辑地址物理地址a2a1b2b1......
72.在一种可能的实施方式中,可以为高速物理硬盘配置初始迁移阈值,在高速物理硬盘中的用户数据的数据量达到该初始迁移阈值时,确定高速物理硬盘满足迁移条件,并通过追加写方式将高速物理硬盘中的用户数据(可以是高速物理硬盘中的全部用户数据或者部分用户数据)迁移到容量物理硬盘。
73.比如说,可以预先配置初始迁移阈值m1,初始迁移阈值m1可以根据经验配置,对此不做限制,初始迁移阈值m1用于表示数据量阈值。针对每个用户数据,在将该用户数据存储到高速物理硬盘之后,判断高速物理硬盘中的用户数据的数据量是否达到初始迁移阈值m1,如果否,则继续将新用户数据存储到高速物理硬盘,如果是,则通过追加写方式(append方式)将高速物理硬盘中的用户数据迁移到容量物理硬盘,并从高速物理硬盘中删除已迁移的这些用户数据,以及,针对新用户数据,继续将新用户数据存储到高速物理硬盘。
74.其中,在将高速物理硬盘中的用户数据迁移到容量物理硬盘之后,还需要确定用户数据在容量物理硬盘中的物理地址,如用户数据a在容量物理硬盘中对应物理地址a3、用户数据b在容量物理硬盘中对应物理地址b3,以此类推。
75.在此基础上,还可以将l2p表中的高速物理硬盘中的物理地址更新为容量物理硬盘中的物理地址,参见表2所示,为更新后的l2p表的示例。
76.表2
[0077][0078][0079]
其中,在通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘时,可以对高速物理硬盘中的用户数据进行去重操作,将去重操作后的用户数据迁移到容量物理硬盘。比如说,由于是采用追加写方式将用户数据存储到高速物理硬盘,因此,高速物理硬盘可能会存在多个重复用户数据,即不同时刻产生的重复用户数据。针对这些重复用户数据,在数据迁移时,可以对这些重复用户数据进行去重操作,将去重操作之后的用户数据迁移到容量物理硬盘,如将最后一个用户数据迁移到容量物理硬盘,从高速物理硬盘中删除该用户数据,而剩余用户数据直接从高速物理硬盘中删除,不再迁移到容量物理硬盘。
[0080]
其中,在通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘时,可以基于band(存储块区域)的粒度将高速物理硬盘中的用户数据迁移到容量物理硬盘。参见图1所示,存储块区域可以包括多个存储块,在进行用户数据迁移时,一次性将多个用户数据迁移到存储块区域的多个存储块中。
[0081]
针对数据读取过程,可以确定用户数据对应的逻辑地址,并通过该逻辑地址查询l2p表,得到该用户数据对应的物理地址,并基于该物理地址读取该用户数据,例如,可能基于该物理地址从高速物理硬盘中读取该用户数据,或者,可能基于该物理地址从容量物理硬盘中读取该用户数据。比如说,针对用户数据a,确定用户数据a对应的逻辑地址a2,通过逻辑地址a2查询l2p表。若用户数据a当前处于高速物理硬盘,则l2p表参见表1所示,从l2p表中查询到物理地址a1,从高速物理硬盘中读取物理地址a1对应的用户数据a。若用户数据a当前处于容量物理硬盘,则l2p表参见表2所示,从l2p表中查询到物理地址a3,从容量物理硬盘中读取物理地址a1对应的用户数据a。
[0082]
在一种可能的实施方式中,由于通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,即多次迁移过程可能将多个重复用户数据迁移到容量物理硬盘,即容量物理硬盘可能会存在多个重复用户数据,即不同时刻产生的重复用户数据。为了节省容量物理硬盘的存储资源,可以对容量物理硬盘进行gc(garbage collection,垃圾回收)操作,也就是说,对容量物理硬盘中的重复用户数据进行去重操作,将去重操作后的用户数据保留在容量物理硬盘中,而剩余用户数据从容量物理硬盘中删除。比如说,可以将最后一个用户数据保留在容量物理硬盘中,而剩余用户数据从容量物理硬盘中删除。
[0083]
针对垃圾回收过程,通常是定时对容量物理硬盘进行垃圾回收操作,如每隔10小时对容量物理硬盘进行垃圾回收操作,完成数据的去重。
[0084]
综上所述,针对容量物理硬盘的数据操作涉及3个方面,将高速物理硬盘中的用户数据迁移到容量物理硬盘(记为数据写操作)、从容量物理硬盘中读取用户数据(记为数据读取操作)、对容量物理硬盘中的重复用户数据进行垃圾回收操作(记为垃圾回收操作)。由于容量物理硬盘的总带宽不变,因此,数据写操作、数据读取操作和垃圾回收操作共同占用容量物理硬盘的总带宽。
[0085]
显然,在同时执行垃圾回收操作和数据读取操作时,垃圾回收操作占用的带宽越大,数据读取操作占用的带宽越小,即垃圾回收操作会影响数据读取操作占用的带宽,使得数据读取操作占用的带宽大大减少,可能无法达到数据读取操作的需求,即无法及时完成数据读取操作,无法及时将用户数据返给用户。
[0086]
针对上述问题,本技术实施例中,可以确定出垃圾回收操作对应的目标时刻,并在目标时刻对容量物理硬盘中的重复数据进行垃圾回收操作,从而在合适时间进行垃圾回收操作,避免垃圾回收操作抢占数据读取操作的带宽,使得容量物理硬盘能够满足数据读取操作的需求,及时完成数据读取操作,及时将用户数据返给用户,使用户的读流量能够满足产品需求,保证在大流量读写混合场景下满足用户要求,使得垃圾回收操作和数据读取操作互不影响。
[0087]
以下结合具体实施例,对本技术实施例的技术方案进行说明。
[0088]
本技术实施例中提出一种数据处理方法,可以应用于存储设备,存储设备可以包括高速物理硬盘和容量物理硬盘,高速物理硬盘是读写速度快且容量小的物理硬盘,容量物理硬盘是读写速度慢且容量大的物理硬盘。其中,用户数据通过追加写方式存储到高速物理硬盘,在高速物理硬盘满足迁移条件时,通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘。在上述应用场景下,参见图2所示,为数据处理方法的流程示意图,该方法可以包括:
[0089]
步骤201、获取容量物理硬盘对应的目标决策信息。
[0090]
步骤202、基于该目标决策信息确定垃圾回收操作对应的目标时刻。
[0091]
步骤203、在目标时刻,对容量物理硬盘中的重复数据进行垃圾回收操作。
[0092]
在一种可能的实施方式中,基于该目标决策信息确定垃圾回收操作对应的目标时刻,可以包括但不限于:基于该目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值;确定容量物理硬盘中的重复数据的数据量达到目标垃圾回收阈值的时刻,并将该时刻确定为垃圾回收操作对应的目标时刻。
[0093]
示例性的,在基于该目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时,目标决策信息可以包括容量物理硬盘的剩余存储空间,若该剩余存储空间小于预设第一存储空间阈值,则降低已配置的初始垃圾回收阈值(可以根据经验配置,对此不做限制),得到目标垃圾回收阈值;或者,若该剩余存储空间大于预设第二存储空间阈值,则增加初始垃圾回收阈值,得到目标垃圾回收阈值;或者,若该剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,则将初始垃圾回收阈值确定为所述目标垃圾回收阈值。
[0094]
示例性的,在基于该目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时,目标决策信息可以包括容量物理硬盘的垃圾比,该垃圾比用于表示重复数据的数据量与总数据量的比例,在此基础上,若该垃圾比小于预设第一垃圾比阈值,则增加已配置的初始垃圾回收阈值,得到目标垃圾回收阈值;或者,若该垃圾比大于预设第二垃圾比阈值,则降低初始垃圾回收阈值,得到目标垃圾回收阈值;或者,若该垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值,则将初始垃圾回收阈值确定为目标垃圾回收阈值。
[0095]
在另一种可能的实施方式中,统计周期被划分为多个时间段,目标决策信息可以包括每个时间段对应的io总数量;针对每个时间段对应的io总数量,该io总数量是该时间
段内,针对高速物理硬盘的写操作数量和读操作数量,与针对容量物理硬盘的读操作数量之和。在此基础上,基于该目标决策信息确定垃圾回收操作对应的目标时刻,可以包括但不限于:基于每个时间段对应的io总数量,若时间段对应的io总数量大于预设io数量阈值,则基于该时间段确定垃圾回收操作对应的目标时刻,且该目标时刻位于该时间段的起始时刻之前。
[0096]
在一种可能的实施方式中,在高速物理硬盘满足迁移条件时,通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,可以包括但不限于以下方式:获取高速物理硬盘对应的热点数据分布信息,并基于该热点数据分布信息确定迁移操作对应的目标迁移阈值;在此基础上,在高速物理硬盘中的用户数据的数据量达到该目标迁移阈值时,确定高速物理硬盘满足迁移条件,并通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘。
[0097]
示例性的,热点数据分布信息可以包括热点数据总数量,热点数据总数量是高速物理硬盘中的热点数据数量与容量物理硬盘中的热点数据数量之和;基于此,基于该热点数据分布信息确定迁移操作对应的目标迁移阈值,可以包括但不限于:若该热点数据总数量大于预设第一数量阈值,则增加已配置的初始迁移阈值(可以根据经验配置,对此不做限制),得到该目标迁移阈值;或者,若该热点数据总数量小于预设第二数量阈值,则降低初始迁移阈值,得到该目标迁移阈值;或者,若该热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值,则将初始迁移阈值确定为该目标迁移阈值。
[0098]
在一种可能的实施方式中,在目标时刻,对容量物理硬盘中的重复数据进行垃圾回收操作,可以包括但不限于:确定容量物理硬盘中的重复数据所在的存储块区域,该存储块区域包括多个存储块,多个存储块包括具有重复数据的存储块;若多个存储块还包括不具有重复数据的目标存储块,则通过追加写方式将目标存储块中的用户数据存储到容量物理硬盘;删除该存储块区域中每个存储块(具有重复数据的存储块和不具有重复数据的目标存储块)内的用户数据。综上可以看出,具有重复数据的存储块中的用户数据,未追加写到容量物理硬盘,不具有重复数据的目标存储块中的用户数据,追加写到容量物理硬盘。
[0099]
由以上技术方案可见,本技术实施例中,存储设备包括高速物理硬盘和容量物理硬盘,高速物理硬盘是读写速度快但容量小的物理硬盘,容量物理硬盘是容量大但读写速度慢的物理硬盘,在对用户数据进行存储时,通过追加写方式将用户数据存储到高速物理硬盘,从而满足快速读写的存储需求,即能够支持快速写入数据和快速读取数据。在高速物理硬盘满足迁移条件时,通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,从而满足大容量的存储需求,即通过容量物理硬盘能够同时存储大量用户数据。可以确定垃圾回收操作对应的目标时刻,并在目标时刻对容量物理硬盘中的重复数据进行垃圾回收操作,从而在合适时间进行垃圾回收操作,避免垃圾回收操作抢占数据读取操作的带宽,使得容量物理硬盘能够满足快速读写的需求,使用户的读流量能够满足产品需求,避免因存储空间不足导致的流量占用及数据丢失问题,保证在大流量读写混合场景下满足用户要求,使存储设备处于动态平衡的稳态。
[0100]
以下结合具体应用场景,对本技术实施例的上述技术方案进行说明。
[0101]
参见图3所示,本技术涉及wsc架构层、系统检测层和流控决策层。
[0102]
对于wsc架构层,可以涉及针对高速物理硬盘的数据写操作(如将用户数据写入到
高速物理硬盘)、针对高速物理硬盘的数据读取操作(如从高速物理硬盘中读取用户数据)、针对容量物理硬盘的数据写操作(如将高速物理硬盘中的用户数据迁移到容量物理硬盘)、针对容量物理硬盘的数据读取操作(如从容量物理硬盘中读取用户数据)、针对容量物理硬盘的垃圾回收操作(如对容量物理硬盘中的重复用户数据进行垃圾回收,即删除重复用户数据)。
[0103]
对于系统检测层,可以对高速物理硬盘和容量物理硬盘进行检测,得到系统信息,并将系统信息提供给流控决策层。系统信息可以包括但不限于目标决策信息和/或热点数据分布信息,当然,上述信息只是示例,对此不做限制。
[0104]
其中,目标决策信息可以包括但不限于以下至少一种:容量物理硬盘的剩余存储空间;容量物理硬盘的垃圾比;每个时间段对应的io总数量。当然,上述只是目标决策信息的几个示例,对此目标决策信息不做限制。
[0105]
针对容量物理硬盘的剩余存储空间,系统检测层可以周期性检测容量物理硬盘的剩余存储空间,即容量物理硬盘中未被占用的存储空间的大小。当剩余存储空间越大时,表示容量物理硬盘中未被占用的存储空间越大,即用于存储新用户数据的存储空间越大,反之,当剩余存储空间越小时,表示容量物理硬盘中未被占用的存储空间越小,即用于存储新用户数据的存储空间越小。
[0106]
针对容量物理硬盘的垃圾比,系统检测层可以周期性检测容量物理硬盘的垃圾比,即重复数据的数据量(容量物理硬盘中重复数据的数据量)与总数据量(容量物理硬盘中所有用户数据的数据量)的比例。比如说,假设容量物理硬盘中重复数据的数据量为k1,容量物理硬盘中所有用户数据的数据量为k2,则垃圾比为k1/k2。当垃圾比越大时,表示容量物理硬盘中需要被垃圾回收的用户数据越多,垃圾回收的时间越长,反之,当垃圾比越小时,表示容量物理硬盘中需要被垃圾回收的用户数据越少,垃圾回收的时间越短。
[0107]
针对每个时间段对应的io总数量,统计周期可以被划分为多个时间段,目标决策信息可以包括每个时间段对应的io总数量。其中,针对每个时间段对应的io总数量,该io总数量可以是在该时间段内,针对高速物理硬盘的写操作数量和读操作数量,与针对容量物理硬盘的读操作数量之和。系统检测层可以周期性检测针对高速物理硬盘的写操作数量和读操作数量,针对容量物理硬盘的读操作数量,基于上述信息,就可以确定每个时间段对应的io总数量。
[0108]
比如说,假设统计周期是24个小时,可以将统计周期划分为24个时间段,每个时间段对应1个小时,当然,也可以将统计周期划分为48个时间段、12个时间段等,对此不做限制,后续以时间段1-时间段24为例进行说明。
[0109]
针对时间段1,可以对应统计周期1(如第一天)的时间段1对应的io总数量p11,统计周期2(如第二天)的时间段1对应的io总数量p12,以此类推,io总数量p11可以是统计周期1的时间段1内,针对高速物理硬盘的写操作数量,加上针对高速物理硬盘的读操作数量,加上针对容量物理硬盘的读操作数量,即上述三个数值之和。io总数量p12可以是统计周期2的时间段1内,针对高速物理硬盘的写操作数量,加上针对高速物理硬盘的读操作数量,加上针对容量物理硬盘的读操作数量,即上述三个数值之和,以此类推。
[0110]
综上所述,可以得到时间段1对应的io总数量,如io总数量p11、io总数量p12等,同理,可以得到时间段2-时间段24对应的io总数量。至此,可以得到每个时间段对应的io总数
量,且每个时间段可以对应多个io总数量。
[0111]
其中,热点数据分布信息可以包括但不限于热点数据总数量,当然,热点数据总数量只是热点数据分布信息的示例,对此热点数据分布信息不做限制。
[0112]
针对热点数据总数量,可以是高速物理硬盘中的热点数据数量与容量物理硬盘中的热点数据数量之和。比如说,系统检测层可以周期性检测高速物理硬盘中的热点数据数量、及容量物理硬盘中的热点数据数量,基于上述两个热点数据数量,就可以确定出热点数据总数量。其中,热点数据是指,频繁进行读写操作的用户数据,比如说,针对某个用户数据,若针对该用户数据的读操作与写操作的次数大于预设阈值,就可以将该用户数据作为热点数据。
[0113]
对于流控决策层,可以基于系统信息确定垃圾回收操作对应的目标时刻,继而使得wsc架构层在目标时刻,对容量物理硬盘中的重复数据进行垃圾回收操作,比如说,可以基于目标决策信息确定垃圾回收操作对应的目标时刻。和/或,可以基于系统信息确定迁移操作对应的目标迁移阈值,继而使得wsc架构层基于目标迁移阈值将高速物理硬盘中的用户数据迁移到容量物理硬盘,比如说,可以基于热点数据分布信息确定迁移操作对应的目标迁移阈值。
[0114]
以下结合图3所示的应用场景,对针对高速物理硬盘的数据写操作、针对高速物理硬盘的数据读取操作、针对容量物理硬盘的数据写操作、针对容量物理硬盘的数据读取操作、针对容量物理硬盘的垃圾回收操作进行说明。
[0115]
第一、针对高速物理硬盘的数据写操作。针对该数据写操作,用户数据可以通过追加写方式存储到高速物理硬盘,即在高速物理硬盘的已写入数据的后面,追加写入用户数据。在将该用户数据存储到高速物理硬盘之后,还可以确定该用户数据在高速物理硬盘中的物理地址,并确定该用户数据对应的逻辑地址,并在l2p表中记录该逻辑地址与该物理地址之间的映射关系。
[0116]
其中,可以由wsc架构层实现针对高速物理硬盘的数据写操作。
[0117]
第二、针对容量物理硬盘的数据写操作。针对该数据写操作,可以为高速物理硬盘配置初始迁移阈值,也称为高速物理硬盘的基础迁移水位。
[0118]
系统检测层可以获取高速物理硬盘对应的热点数据分布信息,如热点数据总数量,该热点数据总数量是高速物理硬盘中的热点数据数量与容量物理硬盘中的热点数据数量之和,并将该热点数据总数量发送给流控决策层。
[0119]
流控决策层在得到该热点数据总数量之后,可以基于该热点数据总数量对初始迁移阈值进行调整,得到目标迁移阈值,目标迁移阈值也可以称为高速物理硬盘的目标迁移水位,或者称为动态迁移水位,或者称为增量迁移水位。
[0120]
比如说,若该热点数据总数量大于预设第一数量阈值(可以根据经验配置),则增加初始迁移阈值,得到目标迁移阈值。其中,在该热点数据总数量大于预设第一数量阈值时,表示热点分布比较高,此时数据失效率比较高,因此,可以增加初始迁移阈值,使得基础迁移水位上升,从而减少数据失效率。
[0121]
又例如,若该热点数据总数量小于预设第二数量阈值(可以根据经验配置),则降低初始迁移阈值,得到目标迁移阈值。其中,在该热点数据总数量小于预设第二数量阈值时,表示热点分布比较低,此时数据失效率比较低,因此,可以降低初始迁移阈值,使得基础
迁移水位下降,从而及时完成数据迁移操作。
[0122]
又例如,若该热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值,则将初始迁移阈值确定为目标迁移阈值。其中,在该热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值时,表示热点分布比较合适,因此,可以保持初始迁移阈值不变,使得基础迁移水位不变。
[0123]
在上述实施例中,预设第一数量阈值可以大于预设第二数量阈值。
[0124]
流控决策层在得到目标迁移阈值之后,可以将目标迁移阈值发送给wsc架构层,由wsc架构层基于目标迁移阈值实现针对容量物理硬盘的数据写操作。
[0125]
具体的,在高速物理硬盘中的用户数据的数据量达到目标迁移阈值(目标迁移阈值用于表示数据量阈值)时,确定高速物理硬盘满足迁移条件,并通过追加写方式将高速物理硬盘中的用户数据(可以是高速物理硬盘中的全部用户数据或部分用户数据)迁移到容量物理硬盘。比如说,针对每个用户数据,在将该用户数据存储到高速物理硬盘之后,判断高速物理硬盘中的用户数据的数据量是否达到目标迁移阈值,如果否,则继续将新用户数据存储到高速物理硬盘,如果是,则通过追加写方式(append方式)将高速物理硬盘中的用户数据迁移到容量物理硬盘,并从高速物理硬盘中删除已迁移的这些用户数据。
[0126]
其中,在将高速物理硬盘中的用户数据迁移到容量物理硬盘之后,还需要确定用户数据在容量物理硬盘中的物理地址,并将l2p表中的高速物理硬盘中的物理地址更新为容量物理硬盘中的物理地址,得到更新后的l2p表。
[0127]
其中,在通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘时,可以对高速物理硬盘中的用户数据进行去重操作,将去重操作后的用户数据迁移到容量物理硬盘。比如说,由于是采用追加写方式将用户数据存储到高速物理硬盘,即高速物理硬盘可能会存在多个重复用户数据,针对这些重复用户数据,在数据迁移时,需要将去重操作后的用户数据迁移到容量物理硬盘,如将最后一个用户数据迁移到容量物理硬盘,从高速物理硬盘中删除该用户数据,而剩余用户数据直接从高速物理硬盘中删除,不再迁移到容量物理硬盘。
[0128]
其中,在通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘时,可以基于band(存储块区域)的粒度将高速物理硬盘中的用户数据迁移到容量物理硬盘。比如说,存储块区域可以包括多个存储块,在进行用户数据迁移时,一次性将多个用户数据迁移到存储块区域的多个存储块中。
[0129]
第三、针对高速物理硬盘的数据读取操作和针对容量物理硬盘的数据读取操作。针对该数据读取操作,可以确定用户数据对应的逻辑地址,并通过该逻辑地址查询l2p表,得到用户数据对应的物理地址,并基于该物理地址读取用户数据。比如说,若该物理地址是高速物理硬盘中的物理地址,则基于l2p表中查询到的物理地址,从高速物理硬盘中读取该物理地址对应的用户数据。或者,若该物理地址是容量物理硬盘中的物理地址,则基于l2p表中查询到的物理地址,从容量物理硬盘中读取该物理地址对应的用户数据。
[0130]
其中,可以由wsc架构层实现针对高速物理硬盘的数据读取操作,且可以由wsc架构层实现针对容量物理硬盘的数据读取操作。
[0131]
第四、针对容量物理硬盘的垃圾回收操作。针对该垃圾回收操作,可以获取目标决策信息,基于该目标决策信息确定垃圾回收操作对应的目标时刻,并在该目标时刻,对容量
物理硬盘中的重复数据进行垃圾回收操作,即gc操作。
[0132]
以下结合几种具体方式,对“目标时刻”的确定过程进行说明。
[0133]
方式1、目标决策信息可以包括容量物理硬盘的剩余存储空间。针对方式1,可以为容量物理硬盘配置初始垃圾回收阈值,也称为容量物理硬盘的基础垃圾回收水位。系统检测层可以获取容量物理硬盘的剩余存储空间,并将该剩余存储空间发送给流控决策层。流控决策层基于该剩余存储空间对初始垃圾回收阈值进行调整,得到目标垃圾回收阈值,目标垃圾回收阈值也可以称为容量物理硬盘的目标垃圾回收水位,或者动态垃圾回收水位,或者增量垃圾回收水位。
[0134]
比如说,若该剩余存储空间小于预设第一存储空间阈值(可以根据经验配置),则降低初始垃圾回收阈值,得到目标垃圾回收阈值。其中,在该剩余存储空间小于预设第一存储空间阈值时,表示剩余存储空间比较少,因此,降低初始垃圾回收阈值,使得基础垃圾回收水位下降,释放更多存储空间,以预防突发的burst(即io流量突增),即io流量突增时避免垃圾回收操作抢占带宽。
[0135]
又例如,若该剩余存储空间大于预设第二存储空间阈值(可以根据经验配置),则增加初始垃圾回收阈值,得到目标垃圾回收阈值。其中,在该剩余存储空间大于预设第二存储空间阈值时,表示剩余存储空间比较多,因此,增加初始垃圾回收阈值,使得基础垃圾回收水位上升,从而能够减少垃圾回收操作的频率,有利于减少垃圾回收操作的次数,从而节省垃圾回收操作的带宽。
[0136]
又例如,若该剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,则将初始垃圾回收阈值确定为目标垃圾回收阈值。其中,在该剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值时,表示剩余存储空间比较合适,因此,可以保持初始垃圾回收阈值不变,使得基础垃圾回收水位不变,即将初始垃圾回收阈值作为目标垃圾回收阈值。
[0137]
在上述实施例中,预设第一存储空间阈值可以小于预设第二存储空间阈值。
[0138]
流控决策层在得到目标垃圾回收阈值之后,可以将目标垃圾回收阈值发送给wsc架构层,由wsc架构层基于目标垃圾回收阈值确定垃圾回收操作对应的目标时刻,比如说,确定容量物理硬盘中的重复数据的数据量达到该目标垃圾回收阈值的时刻,并将该时刻确定为垃圾回收操作对应的目标时刻。
[0139]
例如,可以周期性统计容量物理硬盘中的重复数据的数据量,并判断该数据量是否达到该目标垃圾回收阈值。若否,则在下个周期继续统计容量物理硬盘中的重复数据的数据量。若是,则可以将当前时刻作为目标时刻。
[0140]
在目标时刻,wsc架构层就可以对容量物理硬盘中的重复数据进行垃圾回收操作,也就是说,对容量物理硬盘中的重复用户数据进行去重操作,将去重操作后的用户数据保留在容量物理硬盘中,而剩余用户数据从容量物理硬盘中删除,如将最后一个用户数据保留在容量物理硬盘中,并删除剩余用户数据。
[0141]
方式2、目标决策信息可以包括容量物理硬盘的垃圾比,该垃圾比表示重复数据的数据量与总数据量的比例,针对方式2,可以为容量物理硬盘配置初始垃圾回收阈值,也称为基础垃圾回收水位。系统检测层可以获取容量物理硬盘的垃圾比,并将该垃圾比发送给流控决策层。流控决策层基于该垃圾比对初始垃圾回收阈值进行调整,得到容量物理硬盘
的目标垃圾回收阈值。
[0142]
比如说,若该垃圾比小于预设第一垃圾比阈值(可以根据经验配置),则增加初始垃圾回收阈值,得到目标垃圾回收阈值。其中,在该垃圾比小于预设第一垃圾比阈值时,表示垃圾比会比较低,即容量物理硬盘中的重复数据比较少,而容量物理硬盘中的有效数据比较多,因此,可以增加初始垃圾回收阈值,使得基础垃圾回收水位上升,从而能够减少垃圾回收操作的频率,有利于减少垃圾回收操作的次数,从而节省垃圾回收操作的带宽。
[0143]
又例如,若该垃圾比大于预设第二垃圾比阈值(可以根据经验配置),则降低初始垃圾回收阈值,得到目标垃圾回收阈值。其中,在该垃圾比大于预设第二垃圾比阈值时,表示垃圾比会比较高,即容量物理硬盘中的重复数据比较多,而容量物理硬盘中的有效数据比较少,因此,可以降低初始垃圾回收阈值,使得基础垃圾回收水位下降,从而释放更多存储空间,以预防突发的burst(即io流量突增),即io流量突增时避免垃圾回收操作抢占带宽。
[0144]
又例如,若该垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值,则将初始垃圾回收阈值确定为目标垃圾回收阈值。其中,在该垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值时,表示该垃圾比合适,因此,可以保持初始垃圾回收阈值不变,使得基础垃圾回收水位不变。
[0145]
在上述实施例中,预设第一垃圾比阈值可以小于预设第二垃圾比阈值。
[0146]
流控决策层在得到目标垃圾回收阈值之后,可以将目标垃圾回收阈值发送给wsc架构层,由wsc架构层基于目标垃圾回收阈值确定垃圾回收操作对应的目标时刻,比如说,确定容量物理硬盘中的重复数据的数据量达到该目标垃圾回收阈值的时刻,并将该时刻确定为垃圾回收操作对应的目标时刻。
[0147]
在目标时刻,wsc架构层就可以对容量物理硬盘中的重复数据进行垃圾回收操作,也就是说,对容量物理硬盘中的重复用户数据进行去重操作,将去重操作后的用户数据保留在容量物理硬盘中,而剩余用户数据从容量物理硬盘中删除,如将最后一个用户数据保留在容量物理硬盘中,并删除剩余用户数据。
[0148]
方式3、目标决策信息可以包括每个时间段对应的io总数量,即针对高速物理硬盘的写操作数量和读操作数量,与针对容量物理硬盘的读操作数量之和,如时间段1对应的io总数量p11和io总数量p12等,时间段2对应的io总数量p21和io总数量p22等,
…
,以此类推。针对方式3,系统检测层可以获取每个时间段对应的io总数量,并将每个时间段对应的io总数量发送给流控决策层。流控决策层基于每个时间段对应的io总数量确定目标时间段。
[0149]
其中,若某个时间段对应的io总数量大于预设io数量阈值,则可以将该时间段作为目标时间段,否则,不将该时间段作为目标时间段。
[0150]
比如说,针对每个时间段,以时间段1为例,可以确定周期数量r,r是周期性分布的数量阈值,假设时间段1对应100个io总数量,则r可以是100*s,s可以根据经验配置,是一个大于0且小于等于1的数值,如0.7、0.8、0.9等。在此基础上,若时间段1对应的r个io总数量均大于预设io数量阈值,则说明时间段1的io总数量为周期性分布,且时间段1是一个大流量时间段,因此,将时间段1作为目标时间段。否则,若时间段1未存在r个io总数量均大于预设io数量阈值,则说明时间段1的io总数量不是周期性分布,和/或,时间段1不是一个大流量时间段,因此,不将时间段1作为目标时间段。
[0151]
综上所述,针对每个时间段,可以确定该时间段是否为目标时间段,对于目标时间段,就是io总数量大于预设io数量阈值的时间段。流控决策层在得到目标时间段之后,可以将目标时间段发送给wsc架构层,由wsc架构层基于目标时间段确定垃圾回收操作对应的目标时刻,比如说,目标时刻可以位于目标时间段的起始时刻之前,例如,假设垃圾回收操作需要100秒完成,则目标时刻与目标时间段的起始时刻之间的差值,可以大于或者等于100秒。
[0152]
在目标时刻,wsc架构层就可以对容量物理硬盘中的重复数据进行垃圾回收操作,也就是说,对容量物理硬盘中的重复用户数据进行去重操作,将去重操作后的用户数据保留在容量物理硬盘中,而剩余用户数据从容量物理硬盘中删除,如将最后一个用户数据保留在容量物理硬盘中,并删除剩余用户数据。
[0153]
显然,由于在目标时刻进行垃圾回收操作,因此,可以在目标时间段之前完成垃圾回收操作,从而提前完成垃圾回收操作,避免垃圾回收操作与大量io抢占带宽,上述方式也可以称为基于用户画像的实现方式,即识别用户的io样式(pattern),该io样式是每个时间段对应的io总数量,基于该io样式就可以获知io总数量是否为周期性分布,且是否存在大流量时间段,继而找到周期性分布且为大流量的目标时间段,从而提前完成垃圾回收操作,腾出存储空间。
[0154]
在方式1、方式2和方式3中,均涉及在目标时刻对容量物理硬盘中的重复数据进行垃圾回收操作,该过程包括:确定容量物理硬盘中的重复数据所在的存储块区域,存储块区域包括多个存储块,多个存储块包括具有重复数据的存储块;若多个存储块还包括不具有重复数据的目标存储块,则通过追加写方式将目标存储块中的用户数据存储到容量物理硬盘;删除该存储块区域中每个存储块(具有重复数据的存储块和不具有重复数据的目标存储块)内的用户数据。
[0155]
比如说,由于通过追加写方式将高速物理硬盘中的用户数据迁移到容量物理硬盘,即多次迁移过程可能将多个重复用户数据迁移到容量物理硬盘,即容量物理硬盘可能会存在多个重复用户数据,因此,可以对重复用户数据进行去重操作。比如说,可以将最后一个用户数据保留在容量物理硬盘中(即最后一个用户数据不进行去重操作),而剩余用户数据从容量物理硬盘中删除。
[0156]
针对剩余用户数据,为了从容量物理硬盘中删除剩余用户数据,可以采用如下方式:确定剩余用户数据所在的存储块区域,将该存储块区域区分为具有该剩余用户数据的存储块和不具有该剩余用户数据的目标存储块,在此基础上,通过追加写方式将目标存储块中的用户数据存储到容量物理硬盘,并删除目标存储块中的用户数据,以及,直接删除存储块中的该剩余用户数据。
[0157]
在上述实施例中,涉及降低初始垃圾回收阈值得到目标垃圾回收阈值,如初始垃圾回收阈值减去第一调整数值,得到目标垃圾回收阈值,关于第一调整数值的获取方式,可以是根据经验配置的数值,也可以是采用模糊控制算法得到的数值,对此不做限制。涉及增加初始垃圾回收阈值得到目标垃圾回收阈值,如初始垃圾回收阈值加上第二调整数值,得到目标垃圾回收阈值,关于第二调整数值的获取方式,可以是根据经验配置的数值,也可以是采用模糊控制算法得到的数值,对此不做限制。涉及增加初始迁移阈值得到目标迁移阈值,如初始迁移阈值加上第三调整数值,得到目标迁移阈值,关于第三调整数值的获取方
式,可以是根据经验配置的数值,也可以是采用模糊控制算法得到的数值,对此不做限制。涉及降低初始迁移阈值得到目标迁移阈值,如初始迁移阈值减去第四调整数值,得到目标迁移阈值,关于第四调整数值的获取方式,可以是根据经验配置的数值,也可以是采用模糊控制算法得到的数值,对此不做限制。
[0158]
在采用模糊控制算法得到第一调整数值、第二调整数值、第三调整数值和第四调整数值时,模糊控制器的结构示意图可以参见图4所示,包括模糊化接口、推理机、解模糊接口和知识库,知识库包括规则库和数据库,通过模糊控制器可以得到第一调整数值、第二调整数值、第三调整数值和第四调整数值。
[0159]
以得到第一调整数值为例,可以将容量物理硬盘的剩余存储空间(或垃圾比)作为输入数据,将剩余存储空间输入给模糊化接口,由模糊化接口对剩余存储空间进行模糊化处理,将模糊化处理后的剩余存储空间输入给推理机。
[0160]
规则库用于向推理机提供如下推理策略:剩余存储空间小于预设第一存储空间阈值时,降低初始垃圾回收阈值,剩余存储空间大于预设第二存储空间阈值时,增加初始垃圾回收阈值,剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,保持初始垃圾回收阈值不变。数据库用于向推理机提供初始垃圾回收阈值、预设第一存储空间阈值和预设第二存储空间阈值。
[0161]
基于上述推理策略、初始垃圾回收阈值、预设第一存储空间阈值和预设第二存储空间阈值,推理机在得到模糊化处理后的剩余存储空间之后,就可以确定第一调整数值,并在初始垃圾回收阈值的基础上减去第一调整数值,得到目标垃圾回收阈值,并将目标垃圾回收阈值输入给解模糊接口。
[0162]
解模糊接口可以对目标垃圾回收阈值进行解模糊处理,并将解模糊处理后的目标垃圾回收阈值作为输出数据,并对外输出目标垃圾回收阈值。
[0163]
关于第二调整数值、第三调整数值和第四调整数值的实现方式,与第一调整数值的实现方式类似,均可以通过模糊控制器实现,在此不再重复赘述。
[0164]
由以上技术方案可见,本技术实施例中,可以确定垃圾回收操作对应的目标时刻,并在目标时刻对容量物理硬盘中的重复数据进行垃圾回收操作,从而在合适时间进行垃圾回收操作,避免垃圾回收操作抢占数据读取操作的带宽,使得容量物理硬盘能够满足快速读写的需求,使用户的读流量能够满足产品需求,避免因存储空间不足导致的流量占用及数据丢失问题,保证在大流量读写混合场景下满足用户要求,使存储设备处于动态平衡的稳态。垃圾回收操作尽量不影响数据读取操作占用的带宽,使得数据读取操作占用的带宽增加,达到数据读取操作的需求,及时完成数据读取操作,使得垃圾回收操作和数据读取操作互不影响。提出一种基于wsc架构的智能水位算法,通过动态水位阈值的调整,使容量物理硬盘在合适的时候完成垃圾回收动作,使系统整体处于动态平衡的稳态,使用户的读流量能满足产品需求。对于用户的突发io,避免由于容量物理硬盘无存储空间导致用户数据丢失的风险,也就是说,通过完成用户画像,针对用户的突发burst场景,提前垃圾回收腾出足够的存储空间。
[0165]
基于与上述方法同样的申请构思,本技术实施例中提出一种数据处理装置,应用于存储设备,所述存储设备包括高速物理硬盘和容量物理硬盘,参见图5所示,为所述数据处理装置的结构示意图,所述装置可以包括:
[0166]
存储模块51,用于在得到用户数据后,通过追加写方式将所述用户数据存储到所述高速物理硬盘;在所述高速物理硬盘满足迁移条件时,通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘;获取模块52,用于获取所述容量物理硬盘对应的目标决策信息;确定模块53,用于基于所述目标决策信息确定垃圾回收操作对应的目标时刻;处理模块54,用于在所述目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作。
[0167]
示例性的,所述确定模块53基于所述目标决策信息确定垃圾回收操作对应的目标时刻时具体用于:基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值;确定所述容量物理硬盘中的重复数据的数据量达到所述目标垃圾回收阈值的时刻,将所述时刻确定为垃圾回收操作对应的目标时刻。
[0168]
示例性的,所述目标决策信息包括所述容量物理硬盘的剩余存储空间;所述确定模块53基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时具体用于:若所述剩余存储空间小于预设第一存储空间阈值,则降低已配置的初始垃圾回收阈值,得到所述目标垃圾回收阈值;或,若所述剩余存储空间大于预设第二存储空间阈值,则增加初始垃圾回收阈值,得到所述目标垃圾回收阈值;或,若所述剩余存储空间不小于预设第一存储空间阈值且不大于预设第二存储空间阈值,则将初始垃圾回收阈值确定为所述目标垃圾回收阈值。
[0169]
示例性的,所述目标决策信息包括所述容量物理硬盘的垃圾比,所述垃圾比表示重复数据的数据量与总数据量的比例;所述确定模块53基于所述目标决策信息确定垃圾回收操作对应的目标垃圾回收阈值时具体用于:若所述垃圾比小于预设第一垃圾比阈值,则增加已配置的初始垃圾回收阈值,得到目标垃圾回收阈值;或,若所述垃圾比大于预设第二垃圾比阈值,则降低初始垃圾回收阈值,得到目标垃圾回收阈值;或,若所述垃圾比不小于预设第一垃圾比阈值且不大于预设第二垃圾比阈值,将初始垃圾回收阈值确定为目标垃圾回收阈值。
[0170]
示例性的,统计周期被划分为多个时间段,所述目标决策信息包括每个时间段对应的io总数量;针对每个时间段对应的io总数量,所述io总数量是该时间段内,针对所述高速物理硬盘的写操作数量和读操作数量,与针对所述容量物理硬盘的读操作数量之和;所述确定模块53基于所述目标决策信息确定垃圾回收操作对应的目标时刻时具体用于:基于每个时间段对应的io总数量,若时间段对应的io总数量大于预设io数量阈值,则基于该时间段确定垃圾回收操作对应的目标时刻;其中,所述目标时刻位于该时间段的起始时刻之前。
[0171]
示例性的,所述存储模块51在所述高速物理硬盘满足迁移条件时,通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘时具体用于:获取所述高速物理硬盘对应的热点数据分布信息;基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值;在所述高速物理硬盘中的用户数据的数据量达到所述目标迁移阈值时,确定所述高速物理硬盘满足迁移条件,并通过追加写方式将所述高速物理硬盘中的用户数据迁移到所述容量物理硬盘。
[0172]
示例性的,所述热点数据分布信息包括热点数据总数量,所述热点数据总数量是所述高速物理硬盘中的热点数据数量与所述容量物理硬盘中的热点数据数量之和;所述存
储模块51基于所述热点数据分布信息确定迁移操作对应的目标迁移阈值时具体用于:若所述热点数据总数量大于预设第一数量阈值,则增加已配置的初始迁移阈值,得到所述目标迁移阈值;或者,若所述热点数据总数量小于预设第二数量阈值,则降低已配置的初始迁移阈值,得到所述目标迁移阈值;或者,若所述热点数据总数量不大于预设第一数量阈值且不小于预设第二数量阈值,则将所述初始迁移阈值确定为所述目标迁移阈值。
[0173]
示例性的,所述处理模块54在目标时刻,对所述容量物理硬盘中的重复数据进行垃圾回收操作时具体用于:确定所述容量物理硬盘中的重复数据所在的存储块区域,所述存储块区域包括多个存储块,所述多个存储块包括具有重复数据的存储块;若所述多个存储块还包括不具有重复数据的目标存储块,则通过追加写方式将所述目标存储块中的用户数据存储到所述容量物理硬盘;删除所述存储块区域中每个存储块内的用户数据。
[0174]
基于与上述方法同样的申请构思,本技术实施例中提出一种存储设备,参见图6所示,存储设备包括处理器61和机器可读存储介质62,机器可读存储介质62存储有能够被处理器61执行的机器可执行指令;处理器61用于执行机器可执行指令,以实现本技术上述示例公开的数据处理方法。
[0175]
基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质存储有能够被处理器执行的机器可执行指令,机器可执行指令被处理器执行时,能够实现本技术上述示例公开的数据处理方法。
[0176]
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0177]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0178]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0179]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0180]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。