一种分配存储空间的方法和终端
技术领域
本申请涉及数据存储领域,尤其涉及一种分配存储空间的方法及终端。
背景技术
存储空间是数据存储所需要的介质,随着应用程序的运行,往往需要增加存储空间。应用程序也可称为源程序,应用程序数据库的更新、为应用程序添加插件等行为,均需要增加应用程序的存储空间。在现有技术中,尤其对于存储在云端的应用程序,若要增加应用程序对应的存储空间,首先需要向云供应商或者存储供应商申请新的存储卷,然后在存储卷中创建持久卷。可见,现有的为应用程序增加存储空间的过程比较繁琐。当应用程序的存储空间已满时,往往需要在新增的持久卷创建好后,才能继续运行,因此,现有的增加存储空间的方案会对应用程序的运行造成影响,导致应用程序运行效率低。
发明内容
本申请实施例的目的是提供一种分配存储空间的方法和终端,用以解决现有技术中为应用程序增加存储空间步骤繁琐、以及导致的应用程序运行效率低的问题。
第一方面,提供了一种分配存储空间的方法,该方法包括:
识别源程序已关联的存储空间量;
基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量;
根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷;
将所述持久卷与所述源程序相关联。
第二方面,提供了一种终端设备,该终端设备包括:
识别模块,识别源程序已关联的存储空间量;
确定模块,基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量;
创建模块,根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷;
关联模块,将所述持久卷与所述源程序相关联。
第三方面,提供了一种终端设备,该终端设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
在本申请实施例中,根据源程序已关联的存储空间量和所述源程序预计关联的存储空间总量,在存储卷中创建持久卷,并将所述持久卷与所述源程序相关联。能够实现自动的根据源程序的实际需求增加与源程序相关联的存储空间,无需申请存储卷再创建的繁琐步骤。本方案能够使源程序在运行的过程中随需求而增加存储空间,实现存储空间的动态分配,避免由存储空间不足导致应用程序效率低下的情况。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请提供的一种分配存储空间的方法流程图之一;
图2为本申请提供的一种分配存储空间的方法流程图之二;
图3为本申请提供的一种终端结构图之一;
图4为本申请提供的一种终端结构图之二。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例一
本申请提供一种分配存储空间的方法,该方法可以应用于各种存储环境,例如:本地存储、云存储等,云存储可以包括私有云存储和公有云存储。具体的,可以由存储服务器实现存储空间的分配,如图1所示,该方法包括以下步骤:
步骤11:识别源程序已关联的存储空间量。
所述源程序可以是应用程序、脚本或插件,该源程序可以是终端上的应用APP,也可以是计算机中运行的应用程序,也可以是VR、AR等电子设备中运行的程序。
步骤12:基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量。
具体的,确定源程序预计关联的存储空间总量可以包括以下两个方案:
方案一:根据执行的进程任务确定预计关联的存储空间总量。
在源程序运行时,用户可以根据实际需求手动申请扩容,具体可以根据执行的进程任务确定扩容空间量,该进程任务可以是创建新的文件或者在一个现有文件中添加新的内容等。实际上,申请扩容可以是由源程序发送扩容指令至存储服务器,由存储服务器根据扩容指令为源程序分配存储空间。其中,扩容指令中可以包括有扩容空间量、扩容空间类型等扩容所需的各种属性,另外,存储服务器也可以根据源程序的当前属性或类型为源程序分配新的存储空间。
方案二:根据源程序已关联的存储空间容量状态确定预计关联的存储空间总量。
存储服务器可以按照预设周期对一个或多个源程序进行轮询,当源程序已占用的存储空间接近源程序已关联的存储空间量时,则确定需要为源程序分配新的存储空间。分配存储空间的容量可以预先设定,也可以根据源程序当前的进程任务等实际需求调整分配存储空间的容量。通常情况下,为源程序分配的存储空间的属性或类型与源程序现有的属性或类型一致。
步骤13:根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷。
其中,所述源程序已关联的存储空间量可以是现有的与源程序相关联的存储空间,源程序已关联的存储空间量可以是源程序本身占据的存储空间,也可以是源程序所占空间以及与源程序相关联的但未写入数据的空白空间。上述源程序预计关联的存储空间总量可以根据源程序正在运行的进程任务、等待运行的指令等确定。
步骤14:将所述持久卷与所述源程序相关联。
具体的,将持久卷与源程序相关联可以通过ip地址加路径等方式进行关联,即将与源程序相对应的ip地址与持久卷的路径相关联。
本申请实施例提供的方法,根据源程序已关联的存储空间量和所述源程序预计关联的存储空间总量,在存储卷中创建持久卷,并将所述持久卷与所述源程序相关联。能够实现自动的根据源程序的实际需求增加与源程序相关联的存储空间,无需申请存储卷再创建的繁琐步骤。本方案能够使源程序在运行的过程中随需求而增加存储空间,实现存储空间的动态分配,避免由存储空间不足导致应用程序效率低下的情况。
实施例二
基于上述实施例所述的方案,本申请还提供一种分配存储资源的方法,上述步骤103中,根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷,参见图2,具体包括:
步骤131:计算所述源程序已关联的存储空间量与所述源程序预计关联的存储空间总量的空间容量差值。
具体的,源程序预计关联的存储空间总量可以包括当前已经和源程序相关联的存储空间以及源程序将要使用的存储空间,源程序将要使用的存储空间可以根据源程序当前的状态和/或源程序发送的指令确定。
步骤132:在存储卷中创建持久卷,所述持久卷的空间容量大于或等于所述空间容量差值。
根据源程序预计关联的存储空间总量创建持久卷,持久卷可以是一个也可以是多个,多个持久卷可以具有不同的存储空间,创建的所有持久卷的空间容量大于或等于上述空间容量差值。
本方案能根据源程序预计关联的存储空间总量创建持久卷,保证源程序有充足的空间运行,而且,创建的持久卷与源程序的需求相对应,避免出现新创建的持久卷存储空间不足的情况。
上述步骤11:识别源程序已关联的存储空间量,具体包括:
识别所述源程序已关联的存储空间量的第一存储类型;
上述步骤12:基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量,具体包括:
确定所述源程序预计关联的存储空间总量的第二存储类型;
其中,所述存储类型包括存储空间类型和/或与所述存储空间类型相对应的存储资源类型。
本步骤中的存储空间类型包括:本地存储、云端存储;
与所述本地存储相对应的存储资源类型包括:固态类型、标准类型;
与所述云端存储相对应的存储资源类型包括:NFS、GLUSTERFS、CEPH、CINDER。
其中,存储空间类型为本地存储可以理解为源程序存储于本地存储设备中,本地存储设备可以是本地磁盘,具体指安装于同一台计算机主板上,不可随意插拔、移动的磁盘或硬盘。存储空间类型为云端存储是一种网络存储技术,云端存储是基于云计算衍生出的存储方式,具体指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。
在本地存储中,存储资源类型包括:固态类型(solid state disk,SSD)可以理解为存储于固态硬盘中,固态硬盘是一种用固态电子存储芯片阵列而制成的硬盘。标准类型(Hard Disk Drive,HDD)可以理解为非固态的传统存储硬盘。固态硬盘与非固态硬盘均可以通过Advanced Technology Attachment(ATA)、Serial ATA(SATA)、Small ComputerSystem Interface(SCSI)、Serial Attached SCSI(SAS)等数据接口收发数据。
在云端存储中,存储资源类型包括:NFS(Network File System)即网络文件系统,GLUSTERFS(Gluster File System)一种集群系统应用软件,CEPH分布式文件系统,CINDER是虚拟基础架构中的一种组件。
通常情况下,一个源程序的存储空间类型可以是本地存储或云端存储,在一些特殊的情况下,一个源程序的存储空间类型也可以是本地存储和云端存储,即对于一个源程序,一部分源程序的存储空间类型为本地存储,另一部分源程序的存储空间类型为云端存储。相应的,对于存储空间类型为本地存储的源程序,通常情况下,对应于一种存储资源类型,在一些特殊的情况下,存储空间类型为本地存储的源程序也可以有多种存储资源类型。对于一个源程序,可以有多个存储空间类型,也可以有多个存储资源类型。
本申请提供的上述方案,能实现对源程序的识别,可以实现对源程序存储空间类型、存储资源类型的识别,间接识别到源程序存储的属性信息,进而为随后分配存储空间提供信息。
对于上述步骤131,计算所述源程序已关联的存储空间量与所述源程序预计关联的存储空间总量的空间容量差值,具体包括:
计算所述源程序已关联的第二存储类型的存储空间量;
计算所述源程序预计关联的第二存储类型的存储空间量与所述源程序已关联的第二存储类型的存储空间量的差值。
其中,第二存储类型具体可以包括至少一个存储类型,即存储空间类型和/或存储资源类型。在实际应用过程中,对于比较复杂的源程序,所需的存储类型可以是多种,例如,所述第二存储类型可以是固态类型的本地存储以及NFS类型的云端存储,所述第二存储类型也可以是CEPH类型和CINDER类型的云端存储等。下面举例说明上述步骤:
当所述源程序预计关联的的第二存储类型是固态类型的本地存储以及NFS类型的云端存储,所需的本地存储量为100,所需的云端存储量为100时,计算所述源程序已关联的第二存储类型的存储空间量,具体包括:计算源程序已关联的固态类型的本地存储空间量以及NFS类型的云端存储空间量,如果源程序已关联的存储空间中不具备上述需要的存储类型,则确定源程序已关联的第二存储类型的存储空间量为0。计算所述源程序计划关联的第二存储类型的存储空间量与所述源程序已关联的第二存储类型的存储空间量的差值,为之后创建持久卷的容量提供参考。
对于上述步骤132:所述在存储卷中创建持久卷,具体包括:
在与第二存储类型相对应的存储卷中创建持久卷,所述持久卷的空间容量大于或等于所述空间容量差值。
具体的,与第二存储类型相对应的存储卷可以是多个不同类型的存储卷,根据第二存储类型,根据上述步骤131中计算获得的空间容量差值,在存储卷中创建大于或等于空间容量差值的持久卷。
本申请上述步骤能根据源程序预计关联的存储空间类型及存储空间容量创建持久卷,避免创建的持久卷与源程序互不兼容的情况,同时,根据源程序的需要创建持久卷能实现高效动态第提供存储空间,避免资源的浪费。
基于上述实施例所述的方法,上述步骤13,将所述持久卷与所述源程序相关联,具体包括:
将所述第二存储类型的存储卷中的持久卷与所述第一存储类型的所述源程序已关联的存储空间量相关联。
上述持久卷与所述源程序相互关联,使得源程序可以利用持久卷的空间运行存储,将持久卷与源程序已关联的存储空间相关联能提高数据互通性,避免持久卷与源程序原有的存储空间由于属性不同而造成数据不互通的情况。保证源程序可以调用相关联的任何存储空间,同时,存储空间之间可以进行数据收发,提高灵活性。
实施例三
本申请还提供一种终端,用以解决现有技术中为应用程序增加存储空间步骤繁琐、以及导致的应用程序运行效率低的问题,如图3所示,该终端30包括:
识别模块31,识别源程序已关联的存储空间量;
确定模块32,基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量;
创建模块33,根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷;
关联模块34,将所述持久卷与所述源程序相关联。
本发明实施例提供的终端能够实现图1和图2的方法实施例中终端实现的各个过程,为避免重复,这里不再赘述。本申请实施例提供的方法,根据源程序已关联的存储空间量和所述源程序预计关联的存储空间总量,在存储卷中创建持久卷,并将所述持久卷与所述源程序相关联。能够实现自动的根据源程序的实际需求增加与源程序相关联的存储空间,无需申请存储卷再创建的繁琐步骤。本方案能够使源程序在运行的过程中随需求而增加存储空间,实现存储空间的动态分配,避免由存储空间不足导致应用程序效率低下的情况。
图4为实现本发明各个实施例的一种终端的硬件结构示意图,该终端100包括但不限于:射频单元101、网络模块102、音频输出单元103、输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
处理器110,用于识别源程序已关联的存储空间量;基于所述源程序已关联的存储空间容量状态和执行的进程任务确定所述源程序预计关联的存储空间总量;根据所述源程序已关联的存储空间量以及所述源程序预计关联的存储空间总量,在存储卷中创建持久卷;将所述持久卷与所述源程序相关联。
本申请实施例根据源程序已关联的存储空间量和所述源程序预计关联的存储空间总量,在存储卷中创建持久卷,并将所述持久卷与所述源程序相关联。能够实现自动的根据源程序的实际需求增加与源程序相关联的存储空间,无需申请存储卷再创建的繁琐步骤。本方案能够使源程序在运行的过程中随需求而增加存储空间,实现存储空间的动态分配,避免由存储空间不足导致应用程序效率低下的情况。
应理解的是,本发明实施例中,射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信系统与网络和其他设备通信。
终端通过网络模块102为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元103可以将射频单元101或网络模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103包括扬声器、蜂鸣器以及受话器等。
输入单元104用于接收音频或视频信号。输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获终端(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或网络模块102进行发送。麦克风1042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。
终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器105还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作)。触控面板1071可包括触摸检测终端和触摸控制器两个部分。其中,触摸检测终端检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测终端上接收触摸信息,并将它转换成触点坐标,再送给处理器110,接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板1071可覆盖在显示面板1061上,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图4中,触控面板1071与显示面板1061是作为两个独立的部件来实现终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现终端的输入和输出功能,具体此处不做限定。
接口单元108为外部终端与终端100连接的接口。例如,外部终端可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的终端的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部终端的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端100内的一个或多个元件或者可以用于在终端100和外部终端之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,终端100包括一些未示出的功能模块,在此不再赘述。
可以理解的是,本发明实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
优选的,本发明实施例还提供一种移动终端,包括处理器110,存储器109,存储在存储器109上并可在所述处理器110上运行的计算机程序,该计算机程序被处理器110执行时实现上述分配存储空间的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述分配存储空间的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者终端中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。