1.本发明涉及数据存储技术领域,特别涉及一种缓存盘更换方法、装置、设备、存储介质。
背景技术:2.近年来,互联网企业的规模不断扩张,数据规模不断增大,对数据存储容量的需求与日俱增。相比传统的存储系统,icfs(inspur cluster file system,分布式文件系统)凭借其优良的性价比与灵活的容错率、可扩展性,正在变得越来越受用户的青睐。在实际的存储业务情景下,出于性能和成本的综合考虑,icfs分布式存储系统的分层存储场景使用ssd(solid state drives,固态硬盘)作为缓存设备,为存储客户端提供随机小写缓冲和热点数据缓存功能,以提升hdd(hard disk drive,硬盘驱动器)作为主存储时的业务读写性能。ssd设备存储芯片上的闪存颗粒擦写次数是有限的,相较于hdd主存设备,作为缓存设备的ssd更容易到达寿命期限。通过读取硬盘的s.m.a.r.t信息,可以获取所述硬盘的磨损度百分比,根据经验值,当ssd磨损度百分比达到90%时,建议更换设备,当ssd磨损度百分比达到95%时,硬盘就已经十分不可靠,需要立即更换。在icfs分布式存储系统分层存储场景原有的缓存寿命到期更换方案中,需要将受到寿命到期ssd设备影响的所有osd(object-based storage device,对象存储设备)置为out,在重新插入新的ssd缓存盘后,结合之前的hdd设备重新创建osd,并从其他正常状态故障域下的osd上将原有数据重构过来。这种方式会丢弃原hdd设备上所有的数据信息。由于单块ssd为多块hdd提供缓存分区,当ssd寿命到期时,会导致多个osd需要重构,重构数据量大,周期长。并且,若重构期间集群出现其他故障问题,很容易会导致存储集群超故障域,数据丢失。
3.综上,如何在减少重构数据量的基础上实现缓存盘更换,加快重构速度,降低数据重构期间风险是本领域有待解决的技术问题。
技术实现要素:4.有鉴于此,本发明的目的在于提供一种缓存盘更换方法、装置、设备、存储介质,能够在减少重构数据量的基础上实现缓存盘更换,加快重构速度,降低数据重构期间风险。其具体方案如下:
5.第一方面,本技术公开了一种缓存盘更换方法,应用于分布式对象存储系统,包括:
6.当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;
7.更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;
8.启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。
9.可选的,所述当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息之前,还包括:
10.通过预设磨损度查询指令查询集群所有固态硬盘设备的磨损度。
11.可选的,所述保存原缓存盘db分区中的元数据信息,包括:
12.通过预设备份命令备份原缓存盘db分区,并将原缓存盘db分区中的元数据信息保存到块设备或文件。
13.可选的,所述更换新固态硬盘设备之后,还包括:
14.对新固态硬盘设备进行分区划分操作,并将备份的元数据信息拷贝到所述新固态硬盘设备中的db分区。
15.可选的,所述启动所述目标缓存盘之后,还包括:
16.基于接收到的删除参数删除元数据信息中用于记录在cache分区中的缓存数据。
17.可选的,所述缓存盘更换方法,还包括:
18.基于所述cache分区、db分区、主存储设备构建缓存盘。
19.可选的,所述重构原缓存盘的脏数据以及执行换盘操作产生的新数据,包括:
20.基于正常状态下的缓存盘中的脏数据以及执行换盘操作产生的业务增量修改的新数据重构新缓存盘中cache分区的新缓存数据。
21.第二方面,本技术公开了一种缓存盘更换装置,应用于分布式对象存储系统,包括:
22.信息保存模块,用于当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;
23.目标盘建立模块,用于更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;
24.缓存盘更换模块,用于启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。
25.第三方面,本技术公开了一种电子设备,包括:
26.存储器,用于保存计算机程序;
27.处理器,用于执行所述计算机程序,以实现前述公开的缓存盘更换方法的步骤。
28.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的缓存盘更换方法的步骤。
29.由此可见,本技术公开了一种缓存盘更换方法,应用于分布式对象存储系统,包括:当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。可见,通过在检查到原固态硬盘寿命即将到期时,更换原固态硬盘,并利用原固态硬盘的主存储设备以及拷贝的元数据信息创建目标缓存盘,恢复对应的db分区中的数据信息,而不对原cache分区的数据进行拷贝,在创建目标缓存盘之后在通过其他可用副本中重构相应的cache分区的数据,这样一来,通过复用主存储设备,使重构的数据量将会大大减少,加快了重构速度,降低数据重构期间的风险。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
31.图1为本技术公开的一种缓存盘更换方法流程图;
32.图2为本技术公开的一种icfs分布式存储系统结合缓存设备的io流程图;
33.图3为本技术公开的一种具体的缓存盘更换方法流程图;
34.图4为本技术公开的一种icfs分布式分层存储系统的缓存盘构成图;
35.图5为本技术公开的一种缓存盘更换装置结构示意图;
36.图6为本技术公开的一种电子设备结构图。
具体实施方式
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.近年来,互联网企业的规模不断扩张,数据规模不断增大,对数据存储容量的需求与日俱增。相比传统的存储系统,icfs凭借其优良的性价比与灵活的容错率、可扩展性,正在变得越来越受用户的青睐。在实际的存储业务情景下,出于性能和成本的综合考虑,icfs分布式存储系统的分层存储场景使用ssd作为缓存设备,为存储客户端提供随机小写缓冲和热点数据缓存功能,以提升hdd作为主存储时的业务读写性能。ssd设备存储芯片上的闪存颗粒擦写次数是有限的,相较于hdd主存设备,作为缓存设备的ssd更容易到达寿命期限。通过读取硬盘的s.m.a.r.t信息,可以获取所述硬盘的磨损度百分比,根据经验值,当ssd磨损度百分比达到90%时,建议更换设备,当ssd磨损度百分比达到95%时,硬盘就已经十分不可靠,需要立即更换。在icfs分布式存储系统分层存储场景原有的缓存寿命到期更换方案中,需要将受到寿命到期ssd设备影响的所有osd置为out,在重新插入新的ssd缓存盘后,结合之前的hdd设备重新创建osd,并从其他正常状态故障域下的osd上将原有数据重构过来。这种方式会丢弃原hdd设备上所有的数据信息。由于单块ssd为多块hdd提供缓存分区,当ssd寿命到期时,会导致多个osd需要重构,重构数据量大,周期长。并且,若重构期间集群出现其他故障问题,很容易会导致存储集群超故障域,数据丢失。
39.为此,本技术提供了一种缓存盘更换方案,能够在减少重构数据量的基础上实现缓存盘更换,加快重构速度,降低数据重构期间风险。
40.参照图1所示,本发明实施例公开了一种缓存盘更换方法,应用于分布式对象存储系统,包括:
41.步骤s11:当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息。
42.本实施例中,在icfs分布式对象存储系统中的原固态硬盘设备的闪存颗粒不断擦写操作之后,原固态硬盘设备会产生相应的磨损,而当原固态硬盘设备磨损程度达到一定
阈值之后,该固态硬盘设备就不十分可靠,需要更换固态硬盘设备,可以理解的是,检测到原固态硬盘设备的磨损度达到预设阈值时,停止所有受到影响的缓存盘守护进程,保存原缓存盘db分区中的元数据信息,例如:当检测到存储节点上ssd缓存设备寿命到期后,当ssd缓存设备的磨损度大于90%,停止所有受到影响的osd守护进程,并保存所有osd的db分区的元数据信息。
43.本实施例中,所述当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息之前,还包括:通过预设磨损度查询指令查询集群所有固态硬盘设备的磨损度。可以理解的是,基于历史收集的各个固态硬盘设备的设备寿命信息,预测固态硬盘设备的磨损度阈值,然后通过监视器实时监测当前固态硬盘设备的磨损度情况,然后通过预设磨损度查询指令对实时监测的所有固态硬盘设备的磨损度情况进行查询,当查询到当前固态硬盘设备的磨损度大于预设阈值时,及时将磨损度超标情况反馈相应的组件,以便组件根据磨损度超标情况对原固态硬盘设备进行相应处理,例如:通过smartctl命令定期查询集群所有ssd设备的磨损度状态,当其到达可能损坏的阈值后,通知用户进行手动更换。
44.本实施例中,通过预设备份命令备份原缓存盘db分区,并将原缓存盘db分区中的元数据信息保存到块设备或文件。可以理解的是,通过dd命令备份这些osd的db分区,并将db分区中的元数据信息保存到其他位置的块设备或文件中。
45.步骤s12:更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘。
46.本实施例中,更换新的ssd缓存盘后,复用原来的hdd主存设备和元数据信息,重新创建osd,可以理解的是,更换由寿命到期而弃用的ssd缓存盘时,保留原osd的db分区数据,并在更换新ssd盘后,创建新osd时。复用原osd的db分区数据和hdd主存数据,hhd是既包含传统硬盘又有闪存模块的大容量存储设备,闪存处理存储中写入或恢复最频繁的数据,hhd存在以下的优点:应用中的数据存储与恢复更快,如文字处理机、系统启动时间减少、功耗降低、生成热量减少、硬盘寿命延长,但是hhd也存在以下缺点:硬盘中数据的寻道时间更长、硬盘的自旋变化更频繁、闪存模块处理失败,不可能进行其中的数据恢复、系统的硬件总成本更高;ssd是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。在创建新osd时,基于原osd的db分区元数据信息和hdd主存数据构建新的osd中部分数据信息。需要注意的是,基于所述cache分区、db分区、主存储设备构建缓存盘,可以理解的是,参照图2所示,在原icfd分布式存储系统的分层存储场景之下,使用ssd作为缓存设备,hdd作为主存储设备,当进行读对象操作时,首先访问缓存设备,并获取相应的读缓存返回至发出读对象操作的组件中,但是,当进行读对象操作的过程中,未在缓存设备中发现对应的读缓存时,进一步访问主存储设备,从主存储设备中查询相应的读缓存,并反馈至发出读对象操作的组件中,此时缓存设备也会同步更新之前的读缓存,以便下一次发生同样读对象操作时,直接中缓存设备中提供相应的读缓存;当进行写对象操作时,将缓存写入缓存设备中,以便缓存设备进行下刷操作,将写缓存刷新到主存储设备中,这样一来,实现了读写对象的实现过程,提升hdd作为主存储时的业务读写性能。
47.步骤s13:启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。
48.本实施例中,新osd启动后,从其他正常状态的故障域的osd中,重构原osd中cache分区上的上丢失的脏数据和换盘期间业务增量修改的新数据。其中,osd对应一块实际物理磁盘,单个icfs存储集群由多服务器节点上的多个osd组成。可以理解的是,在缓存设备寿命到期前,更换新ssd缓存设备,保留了原有hdd设备上的数据,同时,更换由寿命到期而弃用的ssd缓存盘时,保留原osd的db分区数据,并在更换新ssd盘后,创建新osd时。复用原osd的db分区数据和hdd主存数据,然后从其他正常状态的故障域的osd中,重构原osd中cache设备上丢失的脏数据和换盘期间业务增量修改的新数据。
49.由此可见,本技术公开了一种缓存盘更换方法,应用于分布式对象存储系统,包括:当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。可见,通过在检查到原固态硬盘寿命即将到期时,更换原固态硬盘,并利用原固态硬盘的主存储设备以及拷贝的元数据信息创建目标缓存盘,恢复对应的db分区中的数据信息,而不对原cache分区的数据进行拷贝,在创建目标缓存盘之后在通过其他可用副本中重构相应的cache分区的数据,这样一来,通过复用主存储设备,使重构的数据量将会大大减少,加快了重构速度,降低数据重构期间的风险。
50.参照图3所示,本发明实施例公开了一种具体的缓存盘更换方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
51.步骤s21:当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息。
52.其中,步骤s21中更加详细的处理过程,请参照前述公开的实施例内容,在此不再进行赘述。
53.步骤s22:更换新固态硬盘设备,对所述新固态硬盘设备进行分区划分操作,并将备份的所述元数据信息拷贝到所述新固态硬盘设备中的db分区。
54.本实施例中,参照图4所示,一个osd由作为主存的hdd设备和作为缓存的cache分区以及存储元数据的bd分区组成。其中,为提升性能,cache分区和db分区都是从ssd上单独划分出来的。单块ssd设备一般在经过多次分区后,为多个osd提供cache分区和db分区。在原有的缓存寿命到期更换方案中,集群会丢弃所有受到寿命到期ssd受影响的osd上的数据,在换ssd盘并重新创建osd后,从其他故障域的可用副本中恢复丢失的数据。缺点在于重构数据量太大,集群降级时间长,风险高。因此,在更换新固态硬盘设备之后,对新osd进行分区划分操作,并将备份的元数据信息拷贝到新osd设备中对应的db分区。
55.步骤s23:利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘。
56.本实施例中,利用原osd中的hdd中的数据以及备份的元数据信息建立新osd中hdd以及db分区,可以理解的是,拔出寿命到期的ssd缓存盘,插入新盘,当更换ssd时,osd的cache分区和db分区被拔出,但主存hdd上的数据还是存在的。如果能够恢复hdd上的数据,重构的数据量将会大大减少。必须保留元数据才能使用这些hdd上的数据。如果能够在更换寿命到期的ssd之前,停止osd守护进程,并将它的db分区中的元数据保存到其他位置,就可以在之后重新构造osd时复用这些数据。这样一来,更换ssd并重新创建osd后,只需要重构原来osd的cache分区上的脏数据就可以了。
57.步骤s24:启动所述目标缓存盘,基于接收到的删除参数删除元数据信息中用于记录在cache分区中的缓存数据。
58.本实施例中,启动新osd,从元数据信息中删除原先记录在cache分区上的所有数据。可以理解的是,当启动新osd之后,基于在启动新osd之前传输的删除参数将原先记录在cache分区上的数据进行删除,这样一来,使cache分区中不存在任何缓存数据,然后以便后续对cache分区进行数据的自动重构操作。
59.步骤s25:基于正常状态下的缓存盘中的脏数据以及执行换盘操作产生的业务增量修改的新数据重构新缓存盘中cache分区的新缓存数据。
60.本实施例中,从其他正常状态的故障域的osd中,重构原osd的cache分区上丢失的脏数据和换盘期间业务增量修改的新数据。实际上cache分区上的数据也可以在更换ssd之前保留,但考虑到cache分区一般较大,数据量较多,拷贝时需要额外的磁盘空间和磁盘槽位。另外,拷贝时间也会比较长。期间osd守护进程停止会导致集群一直处于降级状态,风险较高。并且,虽然cache分区内数据量较多,但是脏数据量并不一定多,有可能cache分区上大部分都是在hdd主存上存在的clean数据。综合上述情况,新的换盘方案仅拷贝保留寿命到期ssd影响的osd的db分区数据。
61.由此可见,本实施例中,在新ssd缓存盘上划分分区,将备份的元数据拷贝到新盘准备好的db分区上。使用之前的hdd和新的缓存盘分区重新创建osd,并在启动osd前传入参数通知osd将所有cache数据删除。osd启动后,将元数据信息中的记录的所有在cache分区上的数据删除。自动从其他正常故障域下的数据副本增量重构丢失的数据。重构完成集群恢复正常,保存了原有hdd设备上的数据,减少了存储集群的重构数据量。
62.参照图5所示,本发明实施例公开了一种具体的缓存盘更换装置,包括:
63.信息保存模块11,用于当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;
64.目标盘建立模块12,用于更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;
65.缓存盘更换模块13,用于启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。
66.所述信息保存模块11,具体用于在icfs分布式对象存储系统中的原固态硬盘设备的闪存颗粒不断擦写操作之后,原固态硬盘设备会产生相应的磨损,而当原固态硬盘设备磨损程度达到一定阈值之后,该固态硬盘设备就不十分可靠,需要更换固态硬盘设备,可以理解的是,检测到原固态硬盘设备的磨损度达到预设阈值时,停止所有受到影响的缓存盘守护进程,保存原缓存盘db分区中的元数据信息,例如:当检测到存储节点上ssd缓存设备寿命到期后,当ssd缓存设备的磨损度大于90%,停止所有受到影响的osd守护进程,并保存所有osd的db分区的元数据信息。所述当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息之前,还包括:通过预设磨损度查询指令查询集群所有固态硬盘设备的磨损度。可以理解的是,基于历史收集的各个固态硬盘设备的设备寿命信息,预测固态硬盘设备的磨损度阈值,然后通过监视器实时监测当前固态硬盘设备的磨损度情况,然后通过预设磨损度查询指令对实时监测的所有固态硬盘设备的磨损度情况进行查询,当查询到当前固态硬盘设备的磨损度大于预设阈值时,及时将磨损度超标情况反
馈相应的组件,以便组件根据磨损度超标情况对原固态硬盘设备进行相应处理,例如:通过smartctl命令定期查询集群所有ssd设备的磨损度状态,当其到达可能损坏的阈值后,通知用户进行手动更换。通过预设备份命令备份原缓存盘db分区,并将原缓存盘db分区中的元数据信息保存到块设备或文件。可以理解的是,通过dd命令备份这些osd的db分区,并将db分区中的元数据信息保存到其他位置的块设备或文件中。
67.所述目标盘建立模块12,具体用于更换新的ssd缓存盘后,复用原来的hdd主存设备和元数据信息,重新创建osd,可以理解的是,更换由寿命到期而弃用的ssd缓存盘时,保留原osd的db分区数据,并在更换新ssd盘后,创建新osd时。复用原osd的db分区数据和hdd主存数据,hhd是既包含传统硬盘又有闪存模块的大容量存储设备,闪存处理存储中写入或恢复最频繁的数据,hhd存在以下的优点:应用中的数据存储与恢复更快,如文字处理机、系统启动时间减少、功耗降低、生成热量减少、硬盘寿命延长,但是hhd也存在以下缺点:硬盘中数据的寻道时间更长、硬盘的自旋变化更频繁、闪存模块处理失败,不可能进行其中的数据恢复、系统的硬件总成本更高;ssd是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。在创建新osd时,基于原osd的db分区元数据信息和hdd主存数据构建新的osd中部分数据信息。需要注意的是,基于所述cache分区、db分区、主存储设备构建缓存盘,可以理解的是,参照图2所示,在原icfd分布式存储系统的分层存储场景之下,使用ssd作为缓存设备,hdd作为主存储设备,当进行读对象操作时,首先访问缓存设备,并获取相应的读缓存返回至发出读对象操作的组件中,但是,当进行读对象操作的过程中,未在缓存设备中发现对应的读缓存时,进一步访问主存储设备,从主存储设备中查询相应的读缓存,并反馈至发出读对象操作的组件中,此时缓存设备也会同步更新之前的读缓存,以便下一次发生同样读对象操作时,直接中缓存设备中提供相应的读缓存;当进行写对象操作时,将缓存写入缓存设备中,以便缓存设备进行下刷操作,将写缓存刷新到主存储设备中,这样一来,实现了读写对象的实现过程,提升hdd作为主存储时的业务读写性能。一个osd由作为主存的hdd设备和作为缓存的cache分区以及存储元数据的bd分区组成。其中,为提升性能,cache分区和db分区都是从ssd上单独划分出来的。单块ssd设备一般在经过多次分区后,为多个osd提供cache分区和db分区。在原有的缓存寿命到期更换方案中,集群会丢弃所有受到寿命到期ssd受影响的osd上的数据,在换ssd盘并重新创建osd后,从其他故障域的可用副本中恢复丢失的数据。缺点在于重构数据量太大,集群降级时间长,风险高。因此,在更换新固态硬盘设备之后,对新osd进行分区划分操作,并将备份的元数据信息拷贝到新osd设备中对应的db分区。
68.所述缓存盘更换模块13,具体用于新osd启动后,从其他正常状态的故障域的osd中,重构原osd中cache分区上的上丢失的脏数据和换盘期间业务增量修改的新数据。可以理解的是,在缓存设备寿命到期前,更换新ssd缓存设备,保留了原有hdd设备上的数据,同时,更换由寿命到期而弃用的ssd缓存盘时,保留原osd的db分区数据,并在更换新ssd盘后,创建新osd时。复用原osd的db分区数据和hdd主存数据,然后从其他正常状态的故障域的osd中,重构原osd中cache设备上丢失的脏数据和换盘期间业务增量修改的新数据。利用原osd中的hdd中的数据以及备份的元数据信息建立新osd中hdd以及db分区,可以理解的是,拔出寿命到期的ssd缓存盘,插入新盘,当更换ssd时,osd的cache分区和db分区被拔出,但主存hdd上的数据还是存在的。如果能够恢复hdd上的数据,重构的数据量将会大大减少。必
须保留元数据才能使用这些hdd上的数据。如果能够在更换寿命到期的ssd之前,停止osd守护进程,并将它的db分区中的元数据保存到其他位置,就可以在之后重新构造osd时复用这些数据。这样一来,更换ssd并重新创建osd后,只需要重构原来osd的cache分区上的脏数据就可以了。启动新osd,从元数据信息中删除原先记录在cache分区上的所有数据。可以理解的是,当启动新osd之后,基于在启动新osd之前传输的删除参数将原先记录在cache分区上的数据进行删除,这样一来,使cache分区中不存在任何缓存数据,然后以便后续对cache分区进行数据的自动重构操作。从其他正常状态的故障域的osd中,重构原osd的cache分区上丢失的脏数据和换盘期间业务增量修改的新数据。实际上cache分区上的数据也可以在更换ssd之前保留,但考虑到cache分区一般较大,数据量较多,拷贝时需要额外的磁盘空间和磁盘槽位。另外,拷贝时间也会比较长。期间osd守护进程停止会导致集群一直处于降级状态,风险较高。并且,虽然cache分区内数据量较多,但是脏数据量并不一定多,有可能cache分区上大部分都是在hdd主存上存在的clean数据。综合上述情况,新的换盘方案仅拷贝保留寿命到期ssd影响的osd的db分区数据。
69.由此可见,本技术公开了一种缓存盘更换方法,应用于分布式对象存储系统,包括:当检测到原固态硬盘设备的磨损度达到预设阈值时,保存原缓存盘db分区中的元数据信息;更换新固态硬盘设备,并利用原固态硬盘中的原主存储设备和元数据信息建立目标缓存盘;启动所述目标缓存盘,并重构原缓存盘的脏数据以及执行换盘操作产生的新数据,完成缓存盘更换。可见,通过在检查到原固态硬盘寿命即将到期时,更换原固态硬盘,并利用原固态硬盘的主存储设备以及拷贝的元数据信息创建目标缓存盘,恢复对应的db分区中的数据信息,而不对原cache分区的数据进行拷贝,在创建目标缓存盘之后在通过其他可用副本中重构相应的cache分区的数据,这样一来,通过复用主存储设备,使重构的数据量将会大大减少,加快了重构速度,降低数据重构期间的风险。
70.在一些具体实施方式中,所述缓存盘更换装置,具体可以包括:
71.磨损度检测单元,用于通过预设磨损度查询指令查询集群所有固态硬盘设备的磨损度。
72.在一些具体实施方式中,所述信息保存模块11,具体可以包括:
73.通过预设备份命令备份原缓存盘db分区,并将原缓存盘db分区中的元数据信息保存到块设备或文件。
74.在一些具体实施方式中,所述缓存盘更换装置,具体可以包括:
75.区域划分单元,用于对新固态硬盘设备进行分区划分操作,并将备份的元数据信息拷贝到所述新固态硬盘设备中的db分区。
76.在一些具体实施方式中,所述缓存盘更换装置,具体可以包括:
77.数据删除单元,用于基于接收到的删除参数删除元数据信息中用于记录在cache分区中的缓存数据。
78.在一些具体实施方式中,所述缓存盘更换装置,具体可以包括:
79.缓存盘构建单元,用于基于所述cache分区、db分区、主存储设备构建缓存盘。
80.在一些具体实施方式中,所述缓存盘更换模块13,具体可以包括:
81.数据重构单元,用于基于正常状态下的缓存盘中的脏数据以及执行换盘操作产生的业务增量修改的新数据重构新缓存盘中cache分区的新缓存数据。
82.进一步的,本技术实施例还公开了一种电子设备,图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
83.图6为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的缓存盘更换方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
84.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
85.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
86.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
87.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的缓存盘更换方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
88.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的缓存盘更换方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
89.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
90.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元
及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
91.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
92.以上对本发明所提供的一种缓存盘更换方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。