扩容方法、电子设备及计算机可读存储介质
技术领域
本申请涉及数据存储
技术领域
,特别是涉及一种扩容方法、电子设备及计算机可读存储介质。背景技术
存储池是由物理硬盘或RAID设备组成的块存储空间,现有技术方案在存储池大小不够用的时候一般需要手动扩容,具体方案是为存储池的使用率设置预警阈值,当存储池的使用率超过预警阈值报警时用户再手动扩容,但是该技术方案存在如下缺陷:在业务程序的存储空间使用量快速变化时,用户可能无法及时扩展存储池的容量,此时容易造成业务中断或数据丢失等问题。
发明内容
本申请主要解决的技术问题是提供一种扩容方法、电子设备及计算机可读存储介质,能够实现自动扩容,以避免手动扩容不及时造成的业务中断或数据丢失问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种扩容方法,所述扩容方法包括:侦测存储池的使用率,其中,所述存储池配置自动精简功能;若所述存储池的使用率超过使用率阈值,则将扩展存储介质的至少部分存储空间划入所述存储池,以对所述存储池进行扩容。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,所述电子设备包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器、所述通信电路,所述存储器中存储有程序数据,所述处理器通过执行所述存储器内的所述程序数据以实现上述方法中的步骤。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序能够被处理器执行以实现上述方法中的步骤。
本申请的有益效果是:本申请在存储池的使用率超过使用率阈值时,自动将扩展存储介质的至少部分存储空间划入存储池,以增加存储池的总容量,从而整个扩容过程无需人工参与,相比手动扩容,本申请中的方法及时性更强,能够避免手动扩容不及时造成的业务中断或数据丢失问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请扩容方法一实施方式的流程示意图;
图2是本申请电子设备一实施方式的结构示意图;
图3是本申请扩容方法另一实施方式的流程示意图;
图4是本申请扩容方法又一实施方式的流程示意图;
图5是本申请电子设备一实施方式的结构示意图;
图6是本申请电子设备另一实施方式的结构示意图;
图7是本申请计算机可读存储介质一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先需要说明的是,本申请的扩容方法应用于数据存储技术领域,包括但不限于SAN存储、NAS存储和云存储等。
参阅图1,图1是本申请扩容方法一实施方式的流程示意图,该方法包括:
S110:侦测存储池的使用率。
结合图2,将扩容前存储池内的存储介质(硬盘或者RAID)定义为主存储介质,其中,扩容前存储池内的主存储介质的数量可以是一个,也可以是多个,也就是说,存储池由一定数量的主存储介质创建,同时用户可以在存储池内创建逻辑卷(LUN),其中逻辑卷的数量可以是一个,也可以是多个,且当逻辑卷的数量为多个时,多个逻辑卷的大小可以相同也可以不同。
同时存储池配置自动精简功能,自动精简功能是一种基于逻辑卷的存储管理特性,核心原理是“欺骗”操作系统,让操作系统认为存储池中有很大的存储空间,而实际上的物理存储空间则没有那么大。举例而言,在部署了自动精简功能之后,存储池可能显示有2TB的逻辑空间,而实际上只有数百GB的物理空间可被分配。除了操作系统,应用也认为有很多剩余的存储空间,尽管其中大部分存储空间都是虚拟出来的。而随着越来越多的应用写入,存储池的物理存储利用率也会越来越高。存储池在配置有自动精简功能后,不会出现有大量空间闲置,却还无法使用的现象。
简而言之,存储池配置自动精简功能后,多个逻辑卷的总空间(逻辑空间)大小可以超过存储池的实际空间(物理空间)大小。
同时,存储池支持discard/trim功能,能够感知上层业务程序的删除文件对应的存储空间并有效回收,因此,逻辑卷实际使用的存储空间可能动态增长也可能动态减少。
在现有技术中,在存储池不使用精简配置功能时,用户实际使用的逻辑卷空间大小在使用前是确定的,且总容量不会超过存储池大小,所以当逻辑卷创建因为空间不够而失败时可以手动扩容。但在使用自动精简功能的情况下,多个逻辑卷实际使用的物理空间大小是动态变化的,业务运行时可能会超出存储池总容量大小。
现有技术方案为了应对上述情况,针对存储池的使用率设置预警阈值,当存储池的使用率超过阈值报警时用户再手动扩容,但是该技术方案存在如下缺陷:在业务程序的存储空间使用量快速变化时,用户可能无法及时扩展存储池的容量,此时容易造成业务中断或数据丢失等问题。
因此为了避免上述缺陷,本申请发明了一种扩容方法,继续参阅图1,在执行好步骤S110之后执行步骤S120。
S120:判断存储池的使用率是否超过使用率阈值。
若超过,则进入步骤S130,若没有超过,则返回执行步骤S110。
其中,使用率阈值预先设置,例如为80%、90%等,当存储池的使用率超过该使用率阈值时,表明存在多个逻辑卷的使用空间超过存储池的实际存储空间的风险,此时需要扩充存储池的容量,因此进入步骤S130,反之,当存储池的使用率未超过该使用率阈值时,返回执行步骤S110,即继续侦测存储池的使用率。
S130:将扩展存储介质的至少部分存储空间划入存储池,以对存储池进行扩容。
具体地,此时自动将扩展存储介质的至少部分存储空间划入存储池,以增加存储池的总容量,从而整个扩容过程无需人工参与,相比手动扩容,本申请中的方法及时性更强,能够避免手动扩容不及时造成的业务中断或数据丢失问题。
其中,扩展存储介质可以是物理硬盘,也可以是RAID。
其中,步骤S130可以是将扩展存储介质的全部存储空间都划入存储池,也可以是将扩展存储介质的部分存储空间划入存储池。
例如在一应用场景中,步骤S130具体包括:获取存储池的总容量;将扩展存储介质中预设大小的存储空间划入存储池,以使扩容前存储池的总容量和使用率阈值的乘积与扩容后存储池的总容量的比例为预设比例。为了更好地理解,在此举出具体实例:扩容前存储池的总容量为1T,使用率阈值为80%,预设比例为0.5,则此时步骤S130需要将扩展存储介质中0.6T的存储空间划入存储池。
其中本实施方式中的扩容方法适用于任何一种具有存储功能的电子设备,在此不做限制,同时本实施方式中的扩容方法由电子设备中的管理模块执行。
同时,电子设备中的管理模块可以同时针对多个存储池执行步骤S110至步骤S130,且管理模块可以将一个扩展存储介质中不同的存储空间划入不同的存储池,也就是说,一个扩展存储介质可以同时为多个存储池进行扩容,例如在图2中,当存储池A和存储池B都需要扩容时,管理模块可以同时从扩展存储介质中划出两部分不同的存储空间分别加入存储池A、存储池B,以实现同时为存储池A和存储池B扩容。
在一应用场景中,在为存储池扩容后,逻辑卷映射的物理空间优先从扩容前存储池的主存储介质中分配,然后再从存储池中属于扩展存储介质的存储空间中分配。也就是说,在接收到存储数据时,从扩容前存储池中的主存储介质中为存储数据分配存储空间,直至扩容前存储池中的主存储介质的存储空间使用完毕,然后再从存储池中属于扩展存储介质的存储空间中为存储数据分配存储空间。
当然在其他应用场景中,在为存储池扩容后,逻辑卷映射的物理空间也可以随机从扩容前存储池的主存储介质和划入存储池的扩展存储介质中分配。也就是说,在接收到存储数据时,随机从扩容后的存储池中为存储数据分配存储空间。
参阅图3,图3是本申请扩容方法另一实施方式的流程示意图。该方法包括:
S210:侦测存储池的使用率。
S220:判断存储池的使用率是否超过使用率阈值。
若超过,则进入步骤S230,若没有超过,则返回执行步骤S210。
S230:将扩展存储介质的至少部分存储空间划入存储池,以对存储池进行扩容。
S240:更新使用率阈值。
在执行完步骤S240后返回执行步骤S210。
其中步骤S210至步骤S230与前述实施方式中的步骤S110至S130对应相同,具体可参见上述实施方式,在此不再赘述。
具体地,与上述实施方式不同的是,本实施方式可以对存储池进行多次扩容。
在一应用场景中,针对同一个存储池而言,可以利用同一个扩展存储介质为该存储池进行多次扩容,也可以利用多个不同的扩展存储介质为该存储池进行多次扩容。
在一应用场景中,假设扩容前存储池的总容量为C1,使用率阈值为P1,步骤S230将扩展存储介质中容量为E1的存储空间划入存储池,则在扩容后,将使用率阈值更新为:
需要说明的是,在其他应用场景中,在返回执行步骤S210前也可以不更新使用率阈值,例如保持使用率阈值始终为80%。
参阅图4,图4是本申请扩容方法另一实施方式的流程示意图。该方法包括:
S301:侦测存储池的使用率。
S302:判断存储池的使用率是否超过使用率阈值。
若超过,则进入步骤S303,若没有超过,则返回执行步骤S301。
S303:将扩展存储介质的至少部分存储空间划入存储池,以对存储池进行扩容。
其中步骤S301至步骤S303与前述实施方式中的步骤S110至S130对应相同,具体可参见上述实施方式,在此不再赘述。
S304:继续侦测存储池的使用率。
S305:判断存储池当前的使用空间低于空间阈值的持续时间是否达到时间阈值。
若达到,则进入步骤S306,若没有达到,则返回执行步骤S304。
具体地,存储池当前的使用空间等于存储池当前的总容量与当前的使用率的乘积,而空间阈值为扩容前存储池的总容量与使用率阈值的乘积。
当存储池当前的使用空间低于空间阈值时,表明扩容前存储池的存储空间也能够满足当前的存储需求,此时的存储池存在存储空间浪费的情况,因此当存储池当前的使用空间低于空间阈值的持续时间达到时间阈值(例如1小时、2小时等)时,考虑是否接下来进行缩容步骤。
S306:判断存储池中属于扩展存储介质的存储空间是否已经分配使用。
若已经分配使用,则进入步骤S307,若没有分配使用,则进入步骤S310。
具体地,若存储池中属于扩展存储介质的存储空间没有被分配使用,则直接执行步骤S310,即直接将存储池中属于扩展存储介质的存储空间移出存储池。若存储池中属于扩展存储介质的存储空间已经被分配使用,则执行步骤S307。
S307:将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中。
S308:在迁移完成前判断存储池的使用空间是否超过空间阈值。
若判断结果为超过空间阈值,则进入步骤S309,若判断结果为没有超过空间阈值,则进入步骤S310。
在迁移过程中若侦测到存储池的使用空间超过空间阈值,则说明在迁移过程中存储池中又存储了新数据,此时扩容前存储池的存储空间已经不能满足当前的存储需求,则中断迁移过程,即进入步骤S309,若在迁移完成前都没有侦测到存储池的使用空间超过空间阈值,则在数据迁移完成后将存储池中属于扩展存储介质的存储空间移出存储池,即执行步骤S310。
S309:停止迁移。
S310:将存储池中属于扩展存储介质的存储空间移出存储池。
与上述实施方式不同的是,本实施方式考虑到存储池支持discard/trim功能,其空间使用率可能随时会下降,因此在扩容后,还会在满足一定条件时对扩容后的存储池进行缩容处理,提高扩展存储介质的有效使用,最大限度地减少存储空间的浪费。
需要说明的是,在其他实施方式中,当步骤S306判断出存储池中属于扩展存储介质的存储空间已经分配使用时,也可以不进行数据的迁移,即不执行步骤S307、S308以及S309,而是直接返回执行步骤S304。也就是说,此时只有存储池中属于扩展存储介质的存储空间没有被分配使用时,才会进行缩容。
在一应用场景中,为了减少数据迁移对业务性能的影响,在步骤S306判定出存储池中属于扩展存储介质的存储空间已经分配使用后,可以在存储池的读写频率(I/O频率)低于频率阈值时,将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中。
具体地,在步骤S306判定出存储池中属于扩展存储介质的存储空间已经分配使用后,判断存储池当前的读写频率是否低于频率阈值,若是,则将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中,若否,则继续等待,并在等到存储池当前的读写频率低于频率阈值时,将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中。
其中需要注意的是,若在等待存储池当前的读写频率低于频率阈值的过程中出现存储池当前的使用空间高于空间阈值,则返回执行步骤S304。
同时在进行数据迁移时,将存储池中属于扩展存储介质的存储空间内的数据按照存储池的块大小迁移至扩容前存储池中的主存储介质中。
具体地,在进行数据迁移时,先将待迁移数据划分成多份数据,其中每份数据的大小与存储池的块大小相等,然后再迁移多份数据。
参阅图5,图5是本申请电子设备一实施方式的结构示意图。该电子设备200包括处理器210、存储器220以及通信电路230,处理器210分别耦接存储器220、通信电路230,存储器220中存储有程序数据,处理器210通过执行存储器220内的程序数据以实现上述任一项实施方式扩容方法中的步骤,其中详细的步骤可参见上述实施方式,在此不再赘述。
其中,电子设备200可以是任一项具有存储能力的装置,在此不做限制。
本实施方式中的电子设备200在内部存储池的使用率超过使用率阈值时,自动将扩展存储介质的至少部分存储空间划入存储池,以增加存储池的总容量,从而整个扩容过程无需人工参与,相比手动扩容,及时性更强,能够避免手动扩容不及时造成的业务中断或数据丢失问题。
参阅图6,图6是本申请电子设备另一实施方式的结构示意图。该电子设备300包括管理模块310。
管理模块310用于侦测配置自动精简功能的存储池的使用率,并在存储池的使用率超过使用率阈值时,将扩展存储介质的至少部分存储空间划入存储池,以对存储池进行扩容。
在一实施方式中,管理模块310在对存储池进行扩容之后,还用于继续侦测存储池的使用率,并在根据存储池的使用率侦测到存储池当前的使用空间低于空间阈值的持续时间达到时间阈值时,判断存储池中属于扩展存储介质的存储空间是否已经分配使用,然后若管理模块310判定存储池中属于扩展存储介质的存储空间未分配使用,则将存储池中属于扩展存储介质的存储空间移出存储池,以对存储池进行缩容。其中,空间阈值为扩容前存储池的总容量与使用率阈值的乘积。
在一实施方式中,管理模块310还用于在存储池中属于扩展存储介质的存储空间已经分配使用时,将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中,同时在迁移过程中若管理模块310侦测到存储池的使用空间超过空间阈值,则停止迁移,并继续侦测存储池的使用率,以及在迁移完成后未侦测到存储池的使用空间超过空间阈值,则管理模块310将存储池中属于扩展存储介质的存储空间移出存储池,以对存储池进行缩容。
在一实施方式中,管理模块310具体用于在存储池的读写频率低于频率阈值时,将存储池中属于扩展存储介质的存储空间内的数据迁移至扩容前存储池中的主存储介质中。
在一实施方式中,管理模块310具体用于将存储池中属于扩展存储介质的存储空间内的数据按照存储池的块大小迁移至扩容前存储池中的主存储介质中。
在一实施方式中,管理模块310在为存储池扩容后,在接收到存储数据时,从扩容前存储池中的主存储介质中为存储数据分配存储空间,直至扩容前存储池中的主存储介质的存储空间使用完毕,然后再从存储池中属于扩展存储介质的存储空间中为存储数据分配存储空间。
在一实施方式中,管理模块310具体用于:获取存储池的总容量;将扩展存储介质中预设大小的存储空间划入存储池,以使存储池的总容量和使用率阈值的乘积与扩容后存储池的总容量的比例为预设比例。
在一实施方式中,管理模块310在为存储池扩容后,还会更新使用率阈值,然后继续侦测存储池的使用率。
本实施方式中的电子设备300在内部存储池的使用率超过使用率阈值时,自动将扩展存储介质的至少部分存储空间划入存储池,以增加存储池的总容量,从而整个扩容过程无需人工参与,相比手动扩容,及时性更强,能够避免手动扩容不及时造成的业务中断或数据丢失问题。
参阅图7,图7是本申请计算机可读存储介质一实施方式的结构示意图。该计算机可读存储介质400存储有计算机程序410,计算机程序410能够被处理器执行以实现上述任一项方法中的步骤。
其中,计算机可读存储介质400具体可以为U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储计算机程序410的装置,或者也可以为存储有该计算机程序410的服务器,该服务器可将存储的计算机程序410发送给其他设备运行,或者也可以自运行该存储的计算机程序410。
总而言之,本申请在存储池的使用率超过使用率阈值时,自动将扩展存储介质的至少部分存储空间划入存储池,以增加存储池的总容量,从而整个扩容过程无需人工参与,相比手动扩容,本申请中的方法及时性更强,能够避免手动扩容不及时造成的业务中断或数据丢失问题。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种在安卓系统上实现存储加速的方法