本发明涉及计算机 ,尤其涉及一种基于在线重删功能的元数据管理方法及装置。
背景技术:
1、在线重删(inline deduplication)功能是指:在目标数据块存储到存储设备上的同时,运行重复数据删除流程,若存储设备中已存储过与目标数据块相同的数据块,即数据重复,则目标数据块不会落盘,而是在落盘之前就会被删除,从而保证相同的数据在存储设备上只存储一份,以节省存储空间。
2、为了查找及判断数据块的是否为相同数据块,每个数据块都会维护一组元数据,元数据包括数据块的指纹(即数据块的唯一标识,如:hash值)和存储数据块的物理地址块(physical block address,pba)的映射关系,以及数据块的逻辑地址块(logical blockaddress,lba)和所述物理地址块的映射关系。目前,元数据的管理是由存储设备的(多个)控制器实现,而且为了快速访问元数据,将元数据缓存在存储设备的内存中,但随着用户数据量的急剧增加,一部分元数据还要保存在大容量的磁盘中。因此,每次执行在线重删功能时,都要对元数据进行元数据镜像(多个控制器间元数据镜像)、掉电保护和缓存数据组织结构转换等操作,这一系列操作使得元数据管理逻辑非常复杂,且耗费存储设备较多的cpu和内存资源。
技术实现思路
1、本发明提供一种基于在线重删功能的元数据管理方法及装置,用以解决现有的存储设备中控制器对元数据管理逻辑复杂,且耗费存储设备较多的cpu和内存资源的问题。
2、本发明提供一种基于在线重删功能的元数据管理方法,
3、接收存储设备中存储控制器发送的元数据i/o请求,所述元数据中,数据块的标识为标识键,数据块的逻辑地址块为逻辑地址键,标识和逻辑地址块各自对应的数据块的物理地址块为值;
4、在所述元数据i/o请求为写请求的情况下,所述元数据i/o请求包括元数据中的标识键和第一逻辑地址键,基于所述标识键和第一逻辑地址键,确定待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中,在所述键值磁盘的易失内存中记录所述待写入键值对中的键以及待写入键值对在所述非易失存储器中存储地址的地址索引。
5、根据本发明提供的一种基于在线重删功能的元数据管理方法,基于所述标识键和第一逻辑地址键,确定待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中,包括以下步骤。
6、在所述键值磁盘的易失内存的记录中查找所述标识键。
7、在查找到所述标识键的情况下,确定所述标识键对应的值为目标值,以所述第一逻辑地址键和所述目标值形成所述待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中。
8、在未查找到所述标识键的情况下,获取存储控制器写入数据块的物理地址块为所述目标值,以所述标识键和所述目标值形成第一键值对,以所述第一逻辑地址键和所述目标值形成第二键值对,确定第一键值对和第二键值对均为所述待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中。
9、根据本发明提供的一种基于在线重删功能的元数据管理方法,在所述元数据i/o请求为读请求的情况下,所述元数据i/o请求包括元数据中的第二逻辑地址键,所述方法还包括以下步骤。
10、在所述键值磁盘的易失内存的记录中查找所述第二逻辑地址键对应的地址索引。
11、基于所述第二逻辑地址键对应的地址索引获取待读取键值对的目标存储地址。
12、基于所述目标存储地址读取非易失存储器中第二逻辑地址键对应的物理地址块,并将所述物理地址块返回至所述存储控制器。
13、根据本发明提供的一种基于在线重删功能的元数据管理方法,在所述元数据i/o请求为删除请求的情况下,所述元数据i/o请求包括元数据中的第三逻辑地址键,所述方法还包括以下步骤。
14、在所述键值磁盘的易失内存的记录中查找所述第三逻辑地址键对应的地址索引。
15、基于所述第三逻辑地址键对应的地址索引获取待删除键值对的目标存储地址。
16、基于所述目标存储地址从非易失存储器中删除所述待删除键值对。
17、在所述键值磁盘的易失内存的记录中删除所述第三逻辑地址键及对应的地址索引。
18、根据本发明提供的一种基于在线重删功能的元数据管理方法,所述非易失存储器包括:非易失内存和非易失闪存;将所述待写入键值对写入键值磁盘的非易失存储器中,包括:将所述待写入键值对写入非易失内存中,在所述非易失内存中的键值对的数据量大小达到所述非易失闪存的存储块大小时,将非易失内存中存储块大小对应的所有键值对转存至所述非易失闪存中,并在所述易失内存的记录中修改各转存的键值对的地址索引。
19、根据本发明提供的一种基于在线重删功能的元数据管理方法,在所述元数据i/o请求为读请求的情况下,所述元数据i/o请求包括元数据中的第二逻辑地址键,所述方法还包括以下步骤。
20、在所述键值磁盘的易失内存的记录中查找所述第二逻辑地址键对应的地址索引。
21、基于所述第二逻辑地址键对应的地址索引获取待读取键值对的目标存储地址。
22、在所述目标存储地址为所述非易失内存的地址的情况下,基于所述目标存储地址读取非易失内存中第二逻辑地址键对应的物理地址块,并将所述物理地址块返回至所述存储控制器。
23、在所述目标存储地址为所述非易失闪存的地址的情况下,从所述非易失闪存中读取所述目标存储地址所在的目标存储块,再从所述目标存储块中读取第二逻辑地址键对应的物理地址块,并将所述物理地址块返回至所述存储控制器。
24、根据本发明提供的一种基于在线重删功能的元数据管理方法,在所述元数据i/o请求为删除请求的情况下,所述元数据i/o请求包括元数据中的第三逻辑地址键,所述方法还包括以下步骤。
25、在所述键值磁盘的易失内存的记录中查找所述第三逻辑地址键对应的地址索引。
26、基于所述第三逻辑地址键对应的地址索引获取待删除键值对的目标存储地址。
27、在所述目标存储地址为所述非易失内存的地址的情况下,删除非易失内存中所述目标存储地址对应的待删除键值对,并在所述键值磁盘的易失内存的记录中删除所述第三逻辑地址键及对应的地址索引。
28、在所述目标存储地址为所述非易失闪存的地址的情况下,从所述非易失闪存中读取所述目标存储地址所在的目标存储块至所述非易失内存中,释放非易失闪存中目标存储块对应的存储空间,删除所述待删除键值对,并在所述键值磁盘的易失内存的记录中删除所述第三逻辑地址键及对应的地址索引;若所述非易失内存中当前的键值对的数据量大小达到所述非易失闪存的存储块大小时,将非易失内存中存储块大小对应的所有键值对转存至所述非易失闪存中,并在所述易失内存的记录中修改各转存的键值对的地址索引。
29、根据本发明提供的一种基于在线重删功能的元数据管理方法,还包括:在所述键值磁盘掉电后启动时,遍历所述非易失存储器中的所有键值对,重建所有键值对的地址索引,并将重建的地址索引和对应的键存储至所述易失内存中。
30、本发明还提供一种基于在线重删功能的元数据管理装置,包括以下模块。
31、i/o请求接收模块,用于接收存储设备中存储控制器发送的元数据i/o请求,所述元数据中,数据块的标识为标识键,数据块的逻辑地址块为逻辑地址键,标识和逻辑地址块各自对应的数据块的物理地址块为值。
32、元数据写入模块,用于在所述元数据i/o请求为写请求的情况下,所述元数据i/o请求包括元数据中的标识键和第一逻辑地址键,基于所述标识键和第一逻辑地址键,确定待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中,在所述键值磁盘的易失内存中记录所述待写入键值对中的键以及待写入键值对在所述非易失存储器中存储地址的地址索引。
33、本发明还提供一种键值磁盘,包括:盘内处理器、易失内存和非易失存储器,所述盘内处理器连接所述易失内存和非易失存储器。
34、所述非易失存储器用于存储元数据相关的键值对,所述键值对包括:以数据块的标识为标识键,以数据块的物理地址块为值的键值对,及以数据块的逻辑地址块为逻辑地址键,以数据块的物理地址块为值的键值对。
35、所述易失内存用于记录各键值对的键及各键值对在非易失存储器中存储地址的地址索引。
36、所述盘内处理器存储有计算机程序,用于执行所述计算机程序时实现如上述任一项所述的基于在线重删功能的元数据管理方法。
37、本发明还提供一种存储设备,包括:存储控制器和上述的键值磁盘,所述存储控制器连接所述盘内处理器,用于发送元数据i/o请求至所述盘内处理器。
38、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述的基于在线重删功能的元数据管理方法。
39、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于在线重删功能的元数据管理方法。
40、本发明提供的基于在线重删功能的元数据管理方法及装置,通过接收存储设备中存储控制器发送的元数据i/o请求,元数据中,数据块的标识为标识键,数据块的逻辑地址块为逻辑地址键,标识和逻辑地址块各自对应的数据块的物理地址块为值;在所述元数据i/o请求为写请求的情况下,所述元数据i/o请求包括元数据中的标识键和第一逻辑地址键,基于所述标识键和第一逻辑地址键,确定待写入键值对,将所述待写入键值对写入键值磁盘的非易失存储器中,在所述键值磁盘的易失内存中记录所述待写入键值对中的键以及待写入键值对在所述非易失存储器中存储地址的地址索引。由于在元数据写操作时,元数据的键值对及相应的地址索引均存储在键值磁盘内,在存储控制器执行在线重删功能时,发送元数据i/o请求至键值磁盘,由键值磁盘按键值对的方式对元数据进行维护管理,存储设备的存储控制器上不再需要实现元数据镜像、掉电保护、缓存数据组织结构转换等流程,从而降低了存储设备的存储控制器上元数据管理流程设计的复杂度,减少了存储设备中cpu和内存资源的消耗。