云环境下存储资源回收方法、共享存储系统和云服务系统与流程

文档序号:13937637阅读:345来源:国知局
云环境下存储资源回收方法、共享存储系统和云服务系统与流程

本发明涉及计算机领域,特别涉及一种云环境下存储资源回收方法、共享存储系统和云服务系统。



背景技术:

在云环境的部署中,共享存储系统通常具备自动精简配置的功能,这项功能实现了存储按需分配的能力。现在有这样一种场景,用户在虚拟机(虚拟文件系统)中创建了大文件,使用完之后进行了删除;但实际上,该大文件在共享存储系统上占用的物理存储空间并没有释放。

具体地,当用户在虚拟机中删除一个文件,并不会对该文件所对应的各物理块上的物理存储空间标记为0,而仅仅在磁盘的元数据结构中将这些物理块所映射的数据块标记为未使用。此时,虽然虚拟机知道这些数据块是未使用或者说可用的,但是底层的共享存储系统并不知道虚拟机做的操作,会认为这些数据块所映射的物理块仍在使用。

由此可见,在现有技术中,当用户在虚拟机中删除某个文件时,无法实现实时回收空间,从而使得虚拟机的存储资源的利用率不高、造成存储资源的浪费。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种云环境下存储资源回收方法、共享存储系统和云服务系统。

为实现上述目的,本发明提供了一种云环境下存储资源回收方法,包括:

接收虚拟机发送的资源回收指令,所述资源回收指令包括:待删除文件所占的各数据块在所述虚拟机中的逻辑存储地址;

将所述资源回收指令中的各所述逻辑存储地址按顺序依次进行存储于寄存器内,且每个所述逻辑存储地址在所述寄存器中存在对应编号i,其中i∈[1,m]且i为整数,m为所述待删除文件所占的数据块的数量;

设定编号n的初始取值为1;

从寄存器中读取编号为n所对应的逻辑存储地址;

通过精简配置技术对编号为n的所述逻辑存储地址对应的数据块的物理存储空间进行回收;

对编号n进行加1处理,并判断当前的编号n是否大于m;

当判断出当前的编号n小于或等于m时,则继续执行所述从寄存器中读取编号为n所对应的逻辑存储地址的步骤;

当判断出当前的编号n大于m时,则资源回收过程结束。

可选地,还包括:

获取所有虚拟块设备对应的镜像文件的列表;

根据各所述块设备镜像文件的前缀名称确定所述虚拟机对应的全部虚拟块设备的镜像文件;

对所述虚拟机对应的全部虚拟块设备的镜像文件的大小进行统计求和,以得到所述虚拟机所占用的真实物理存储空间。

可选地,所述通过精简配置技术对编号为n的所述逻辑存储地址对应的数据块的物理存储空间进行回收的步骤之后还包括:

对编号为n的所述逻辑存储地址对应的数据块的物理存储空间标记为0。

可选地,所述通过精简配置技术对编号为n的所述逻辑存储地址对应的数据块的物理存储空间进行回收的步骤具体包括:

从预设设置的逻辑-物理地址映射表中查询出编号为n的所述逻辑存储地址对应的物理存储地址;

擦除所述物理存储地址所指向的物理块中的内容。

为实现上述目的,本发明还提供了一种共享存储系统,包括:接收模块和资源回收模块,所述资源回收模块包括:寄存器、设定单元、读取单元、回收单元和判断单元;

所述接收模块,用于接收虚拟机发送的资源回收指令,所述资源回收指令包括:待删除文件所占的各数据块在所述虚拟机中的逻辑存储地址;

所述寄存器,用于对所述资源回收指令中的各所述逻辑存储地址按顺序依次进行存储,每个所述逻辑存储地址在所述寄存器中存在对应编号i,其中i∈[1,m]且i为整数,m为所述待删除文件所占的数据块的数量;

所述设定单元,用于设定编号n的初始取值为1;

所述读取单元,用于在所述设定单元完成对编号n的初始取值设定时,从寄存器中读取编号为n所对应的逻辑存储地址;

所述回收单元,用于通过精简配置技术对编号为n的所述逻辑存储地址对应的数据块的存储空间进行回收;

所述判断单元,用于对编号n进行加1处理,并判断当前的编号n是否大于m;

所述读取单元还用于当所述判断单元判断出当前的编号n小于或等于m时,从寄存器中读取当前的编号为n所对应的逻辑存储地址。

可选地,还包括:存储系统监控模块,所述存储系统监控模块包括:获取单元、确定单元和统计单元;

所述获取单元,用于获取所有虚拟块设备对应的镜像文件的列表;

所述确定单元,用于根据各所述块设备镜像文件的前缀名称确定所述虚拟机对应的全部虚拟块设备的镜像文件;

所述统计单元,用于对所述虚拟机对应的全部虚拟块设备的镜像文件的大小进行统计求和,以得到所述虚拟机所占用的真实物理存储空间。

可选地,所述资源回收模块还包括:

标记单元,用于在对编号为n的所述逻辑存储地址对应的数据块的物理存储空间进行回收之后,对编号为n的所述逻辑存储地址对应的数据块的物理存储空间标记为0。

可选地,所述回收单元包括:

查询子单元,从预设设置的逻辑-物理地址映射表中查询出编号为n的所述逻辑存储地址对应的物理存储地址;

擦除子单元,用于擦除所述物理存储地址所指向的物理块中的内容。

为实现上述目的,本发明还提供了一种云服务系统,包括:如上述的共享存储系统。

可选地,还包括:云服务平台,所述云服务平台用于与所述共享存储系统进行配合以创建虚拟机。

本发明具有以下有益效果:

本发明提供了一种云环境下存储资源回收方法、共享存储系统和云服务系统,可用于在用户在虚拟机中删除文件时,实时对待删除文件所占的存储资源进行回收,从而能有效提升虚拟机的存储资源的利用率,有效避免存储资源的浪费。此外,共享存储系统还可实现对系统中各虚拟机所占用的真实物理存储空间进行实时监控,有利于对后续资源分配提供依据。

附图说明

图1为本发明实施例一提供的一种云环境下存储资源回收方法的流程图;

图2为本发明实施例二提供的一种云环境下存储资源回收方法的流程图;

图3为本发明实施例三提供的一种共享存储系统的结构示意图;

图4为本发明实施例四提供的一种云服务系统的结构框图。

具体实施方式

为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的一种云环境下存储资源回收方法、共享存储系统和云服务系统进行详细描述。

本发明的技术方案基于云服务系统,该云服务系统包括两个部分:云服务平台和共享存储系统。

其中,云服务平台包括计算模块、镜像模块和平台监控模块。计算模块主要提供计算管理和分配服务;镜像模块提供对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板;平台监控模块主要提供提物理资源以及虚拟资源的监控,并记录这些数据,同时对该数据进行分析,且在一定条件下触发相应动作。

共享存储系统包括:资源分配模块、接收模块、资源回收模块和存储系统监控模块。资源分配模块接收云服务平台的命令为虚拟机分配存储资源;资源回收模块,接收虚拟机发出的资源回收指令,分析统计待回收资源地址,对待删除文件所占数据块的物理存储空间进行回收;监控模块对共享存储系统中的存储资源进行监控,统计记录相关数据,为资源分配及回收提供依据。

该云服务系统可实现虚拟机创建、存储资源实时回收、物理存储空间监控等功能。

其中,该云服务系统创建虚拟机的大致过程如下:

用户请求建立虚拟机,云服务平台中的计算模块向平台监控模块发送命令确定建立虚拟机需要的主机,监控模块根据自身的监控数据和统计结果把响应主机反馈给计算模块;计算模块向镜像模块发送镜像下载命令,镜像模块下载对应的镜像反馈给计算模块,计算模块对于镜像的属性进行设置使其具备hw_scsi_model=virtio-scsi及hw_disk_bus=scsi属性(虚拟块设备支持释放功能),为后续虚拟机进行文件删除时对相应的存储资源回收做准备;平台计算模块向共享存储系统中的资源分配模块发送资源分配请求,资源分配模块向共享存储系统中的监控模块查询存储系统的使用情况,监控模块将结果反馈给资源分配模块,资源分配模块根据反馈结果为虚拟机分配存储资源,同时为存储后端通过配置cindervolume服务(将report_discard_supported=true添加到backendsection),使其具备报告删除的能力。

通过上述过程,可建立能够支持空间释放(discard)功能的虚拟机,以供用户使用。虚拟机中的硬盘为虚拟块设备,每一个虚拟块设备中存在若干数据块,虚拟机中的数据块(的逻辑存储地址)与主机中的物理块(的物理存储地址)存在映射关系;虚拟块设备文件在主机(物理机)的操作系统中为普通文件,其实质为硬盘镜像文件(harddiskimage)。

图1为本发明实施例一提供的一种云环境下存储资源回收方法的流程图,如图1所示,该存储资源回收方法基于云服务系统中的共享存储系统,用于在用户在虚拟机中删除某个文件时,共享存储系统可对该待删除元件对应的存储空间进行实时回收;该方法包括:

步骤s1、接收虚拟机发送的资源回收指令。

当用户在虚拟机中删除某个文件时,若该待删除文件被写入保护,则删除失败;若该删除文件未被写入保护,则虚拟机在磁盘(传统硬盘或固态硬盘)的元数据结构中将这些待删除文件占的数据块标记为“未使用”,并向共享存储系统发送资源回收指令,其中资源回收指令中携带有待删除文件所占的各数据块在虚拟机中的逻辑存储地址。

步骤s2、将资源回收指令中的各逻辑存储地址按顺序依次进行存储于寄存器内。

在共享存储系统中的资源回收模块内设置有寄存器,当共享存储系统接收到虚拟机发送的资源回收指令后,寄存器将资源回收指令中的各逻辑存储地址按顺序依次进行存储,且每个逻辑存储地址在寄存器中存在对应编号i,其中i∈[1,m]且i为整数,m为待删除文件所占的数据块的数量。

步骤s3、设定编号n的初始取值为1。

步骤s4、从寄存器中读取编号为n所对应的逻辑存储地址。

步骤s5、通过精简配置技术对编号为n的逻辑存储地址对应的数据块的物理存储空间进行回收。

可选地,步骤s5包括:

步骤s501、从预设设置的逻辑-物理地址映射表中查询出编号为n的逻辑存储地址对应的物理存储地址。

共享存储系统在建议虚拟机时,则同步生成与该虚拟机对应的逻辑-物理地址映射表,该逻辑-物理地址映射表内预先存储有逻辑存储地址和物理存储地址的映射关系。在步骤s501中,共享存储系统可通过查表方式可查询出寄存器内编号为n的逻辑存储地址对应的物理存储地址。

步骤s502、擦除物理存储地址所指向的物理块中的内容。

可选地,在步骤s5之后还包括:

步骤s5a、对编号为n的逻辑存储地址对应的数据块的物理存储空间标记为0。

在完成对编号为n的逻辑存储地址对应的数据块的资源回收后,对该数据块的物理存储空间标记为0。此时,共享存储系统可知晓该数据块所映射的物理块未被使用,可供后续分配,以避免存储资源的浪费。

步骤s6、对编号n进行加1处理,并判断当前的编号n是否大于m。

当判断出当前的编号n(等于步骤s5中的编号n加1)小于或等于m时,则表明寄存器中还有逻辑存储地址未被读取且对应的数据块未被回收,此时再次执行上述步骤s4;

当判断出当前的编号n大于m时,则表明寄存器中所有的逻辑存储地址均被读取,且对应的数据块均完成资源回收,资源回收过程结束。

由上述内容可见,通过重复执行上述步骤s4~步骤s6,以依次对待删除文件所对应的各数据块进行资源回收,直至待删除文件所对应的所有数据块均完成资源回收。

本发明实施例一提供了一种云环境下存储资源回收方法,可用于在用户在虚拟机中删除文件时,实时对待删除文件所占的存储资源进行回收,从而能有效提升虚拟机的存储资源的利用率,有效避免存储资源的浪费。

图2为本发明实施例二提供的一种云环境下存储资源回收方法的流程图,如图2所示,本实施例提供的存储资源回收方法不但包括上述实施例一中的步骤s1~步骤s6,还包括步骤s7~步骤s9,下面仅对步骤s7~步骤s9进行描述。

步骤s7、获取所有虚拟块设备对应的镜像文件的列表。

步骤s8、根据各块设备镜像文件的前缀名称确定虚拟机对应的全部虚拟块设备的镜像文件。

步骤s9、对虚拟机对应的全部虚拟块设备的镜像文件的大小进行统计求和,以得到虚拟机所占用的真实物理存储空间。

共享存储系统中的存储系统监控模块可获取到所有虚拟块设备对应的镜像文件(即虚拟块设备文件)的列表,其中,对应同一虚拟机的镜像文件的前缀名称相同,一般同一虚拟机下的镜像文件前缀名称使对应虚拟机名称。基于此,可针对某一虚拟机,通过获取其对应的全部虚拟块设备的镜像文件,并将这些镜像文件的大小进行求和,即可得到该虚拟机所占用的真实物理存储空间的大小,从而可实现对该虚拟机所占用的真实物理存储空间进行实时监控。

基于上述原理,共享存储系统可对该云服务器中的每一个虚拟机所占用的真实物理存储空间进行实时监控。

需要说明的是,上述步骤s7~步骤s9位于步骤s6之后执行的情况仅起到示例性作用,其不会对本发明的技术方案产生限制。在本发明中,步骤s7~步骤s9也可位于步骤s6之前执行或与步骤s6同时执行,其均属于本发明的保护范围。

本发明实施例二提供了一种云环境下存储资源回收方法,其不但能实现对虚拟机中待删除文件的数据库进行资源回收,还可实现对系统中各虚拟机所占用的真实物理存储空间进行实时监控,有利于对后续资源分配提供依据。

图3为本发明实施例三提供的一种共享存储系统的结构示意图,如图3所示,该共享存储系统可用于实现上述实施例一和实施例二中的云环境下存储资源回收方法,包括:接收模块1和资源回收模块2,所述资源回收模块包括:寄存器21、设定单元22、读取单元23、回收单元24和判断单元25。

其中,接收模块1用于接收虚拟机发送的资源回收指令,资源回收指令包括:待删除文件所占的各数据块在虚拟机中的逻辑存储地址;

寄存器21,用于对资源回收指令中的各逻辑存储地址按顺序依次进行存储,每个逻辑存储地址在寄存器中存在对应编号i,其中i∈[1,m]且i为整数,m为待删除文件所占的数据块的数量。

设定单元22,用于设定编号n的初始取值为1。

读取单元23,用于在设定单元22完成对编号n的初始取值设定时,从寄存器21中读取编号为n所对应的逻辑存储地址。

回收单元24,用于通过精简配置技术对编号为n的逻辑存储地址对应的数据块的存储空间进行回收。

可选地,回收单元24包括:查询子单元241和擦除子单元242;其中,查询子单元241用于从预设设置的逻辑-物理地址映射表中查询出编号为n的逻辑存储地址对应的物理存储地址;擦除子单元242用于擦除物理存储地址所指向的物理块中的内容。

判断单元25,用于对编号n进行加1处理,并判断当前的编号n是否大于m。

读取单元22还用于当判断单元判断出当前的编号n小于或等于m时,从寄存器中读取当前的编号为n所对应的逻辑存储地址。

需要说明的是,本实施例中的接收模块1用于执行上述实施例一和实施例二中的步骤s1,寄存器21用于执行上述实施例一和实施例二中的步骤s2,设定单用22于上述实施例一和实施例二中的步骤s3,读取单元23用于执行上述实施例一和实施例二中的步骤s4,回收单元24用于执行上述实施例一和实施例二中的步骤s5,判断单元25用于执行上述实施例一和实施例二中的步骤s6,对于上述各模块、单元的具体描述可参见前述实施例一中的内容,此处不再赘述。

可选地,共享存储系统还包括:存储系统监控模块3,存储系统监控模块3包括:获取单元31、确定单元32和统计单元33。

其中,获取单元31,用于获取所有虚拟块设备对应的镜像文件的列表。

确定单元32,用于根据各块设备镜像文件的前缀名称确定虚拟机对应的全部虚拟块设备的镜像文件。

统计单元33,用于对虚拟机对应的全部虚拟块设备的镜像文件的大小进行统计求和,以得到虚拟机所占用的真实物理存储空间。

需要说明的是,本实施例中的获取单元31用于执行上述实施例二中的步骤s7,确定单元32用于执行上述实施例二中的步骤s8,统计单元33用于上述实施例二中的步骤s9。对于上述各单元的具体描述可参见前述实施例二中的内容,此处不再赘述。通过存储系统监控模块可实现对系统中各虚拟机所占用的真实物理存储空间进行实时监控。

可选地,该资源回收模块2还包括:标记单元26;标记单元26用于在对编号为n的逻辑存储地址对应的数据块的物理存储空间进行回收之后,对编号为n的逻辑存储地址对应的数据块的物理存储空间标记为0。其中,标记单元26用于执行上述实施例一和实施例二中的步骤s5a。

需要说明的是,本实施例中提供的共享存储系统中还可包括现有技术中的资源分配模块4,该资源分配模块4用以给虚拟机分配存储资源。

本发明实施例三提供了一种共享存储系统,其不但能实现对虚拟机中待删除文件的数据库进行资源回收,还可实现对系统中各虚拟机所占用的真实物理存储空间进行实时监控,有利于对后续资源分配提供依据。

图4为本发明实施例四提供的一种云服务系统的结构框图,如图4所示,该云服务系统包括:共享存储系统,其中该共享存储系统采用上述实施例三中的共享存储系统,具体内容此处不再赘述。

可选地,该云服务系统还包括:云服务平台,云服务平台用于与共享存储系统进行配合以创建虚拟机。对于该云服务平台的描述可参见前述相应内容,此处不再赘述。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1