CN110209342B - 云硬盘的扩容方法、装置、设备及系统 - Google Patents
云硬盘的扩容方法、装置、设备及系统 Download PDFInfo
- Publication number
- CN110209342B CN110209342B CN201810251506.8A CN201810251506A CN110209342B CN 110209342 B CN110209342 B CN 110209342B CN 201810251506 A CN201810251506 A CN 201810251506A CN 110209342 B CN110209342 B CN 110209342B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- capacity
- cloud hard
- expansion
- target cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本申请实施例公开了一种云硬盘的扩容方法、装置、设备及系统。所述方法包括:接口服务组件接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,第一扩容请求包括:目标云硬盘的标识信息,以及为目标云硬盘设定的扩容容量;向卷管理组件转发第一扩容请求;卷管理组件在接收到第一扩容请求之后,向存储节点发送第二扩容请求,第二扩容请求用于请求存储节点根据扩容容量对目标云硬盘进行扩容;存储节点根据第二扩容请求,对目标云硬盘进行扩容。本申请实施例在对正处于使用状态的目标云硬盘进行扩容时,无需中断与该云硬盘绑定的应用,使得云硬盘支持在线扩容的功能,拓展了云硬盘的应用场景。
Description
技术领域
本申请实施例涉及云存储技术领域,特别涉及一种云硬盘的扩容方法、装置、设备及系统。
背景技术
云硬盘(Cloud Block Storage,CBS)为云服务器实例提供高效可靠的存储设备,它是一种高可用、高可靠、低成本、可定制化的块存储设备,可以作为云服务器的独立可扩展硬盘使用。
目前,云硬盘的扩容方式如下:正处于使用状态的云硬盘在有扩容需求时,需要用户先中断与该云硬盘绑定的应用,也即停止运行使用该云硬盘的存储空间的应用,而后再对该云硬盘执行扩容操作。
可见,目前云硬盘仅支持离线扩容,这会导致使用该云硬盘的存储空间的应用出现中断。
发明内容
本申请实施例提供了一种云硬盘的扩容方法、装置、设备及系统,以实现云硬盘的在线扩容。所述技术方案如下:
一方面,本申请实施例提供一种云硬盘的扩容方法,所述方法包括:
接口服务组件接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;向卷管理组件转发所述第一扩容请求;
所述卷管理组件在接收到所述第一扩容请求之后,向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;
所述存储节点根据所述第二扩容请求,对所述目标云硬盘进行扩容。
另一方面,本申请实施例提供一种云硬盘的扩容系统,所述系统包括:
接口服务组件,用于接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;向卷管理组件转发所述第一扩容请求;
所述卷管理组件,用于在接收到所述第一扩容请求之后,向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;
所述存储节点,用于根据所述第二扩容请求,对所述目标云硬盘进行扩容。
再一方面,本申请实施例提供一种云硬盘的扩容方法,所述方法包括:
接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;
根据所述第一扩容请求向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容。
再一方面,本申请实施例提供一种云硬盘的扩容装置,所述装置包括:
接收模块,用于接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;
发送模块,用于根据所述第一扩容请求向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容。
又一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行上述方面所述的扩容方法。
还一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的扩容方法。
又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的扩容方法。
本申请实施例提供的方案中,在对正处于使用状态的目标云硬盘进行扩容时,无需中断与该云硬盘绑定的应用,使得云硬盘支持在线扩容的功能,拓展了云硬盘的应用场景。
附图说明
图1示例性示出了离线扩容时客户端的界面示意图;
图2是本申请一个实施例提供的应用场景的示意图;
图3是本申请一个实施例提供的云硬盘的扩容系统的框图;
图4是本申请一个实施例提供的云硬盘的扩容方法的流程图;
图5是本申请另一个实施例提供的云硬盘的扩容方法的流程图;
图6示例性示出了在线扩容时客户端的界面示意图;
图7是本申请另一个实施例提供的云硬盘的扩容方法的流程图;
图8是本申请另一个实施例提供的云硬盘的扩容方法的流程图;
图9是本申请一个实施例提供的云硬盘的扩容装置的框图;
图10是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例的技术方案进行介绍说明之前,首先对本申请实施例中涉及的一些名词进行解释说明。
1、云硬盘
云硬盘为云服务器实例提供高效可靠的存储设备,它是一种高可用、高可靠、低成本、可定制化的块存储设备,可以作为云服务器的独立可扩展硬盘使用。云硬盘可提供数据块级别的数据存储,采用多副本的分布式机制,为云服务器实例(如CVM(Cloud VirtualMachine,云虚拟机))提供数据可靠性保证。云硬盘支持在可用区内自动复制,将数据备份在不同机器上,从而免除单个机器故障带来的数据丢失等问题,提高数据的可用性及持久性。根据性能的不同,可分为普通云硬盘、高性能云硬盘和SSD(Solid State Drives,固态硬盘)云硬盘等几种不同类型。云硬盘可以挂载到同一可用区中任何运行中的云服务器实例上。云硬盘通常用作需要频繁和细粒度更新的数据(如文件系统、数据库等)的主存储设备。
在一种可能的应用场景中,云硬盘是为容器提供的基于块设备的存储卷,用于作为容器的后端存储。容器(container)是应用的运行实例,容器之间是相互隔离、互不可见的。可以把容器看作一个简易版的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在这个环境上的应用打包而成的应用盒子。容器云平台是以容器为资源分割和调度单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建、发布和运行分布式应用的平台。
2、离线扩容
离线扩容是对未处于使用状态的云硬盘进行容量扩展的方式。扩容时,需要用户中断与该云硬盘绑定的应用。
结合参考图1,其示出了云硬盘离线扩容时涉及的相关用户界面的示意图。如图1所示,云硬盘“test”的当前状态为使用中,也即与该云硬盘绑定的应用正处于运行状态。用于触发对该云硬盘执行扩容操作的控件(即图中的“扩容”按钮11不可用),且显示相应的提示信息12,停止绑定的应用后可扩容。
3、在线扩容
在线扩容是对处于使用状态的云硬盘进行容量扩展的方式。扩容时,不需要用户中断与该云硬盘绑定的应用。
4、计算节点
计算节点是运行应用实例的服务器。例如,当计算节点是运行容器的服务器时,可以称为容器节点。
5、存储节点
存储节点是部署云硬盘的服务器。存储节点中可以部署一个或多个云硬盘,每个云硬盘对应存储节点中的一部分存储区域。
在本申请实施例提供的技术方案中,扩展了云硬盘支持在线扩容的功能,使得云硬盘在扩容的过程中,无需中断相关的应用,拓展了云硬盘的应用场景。
请参考图2,其示出了本申请一个实施例提供的应用场景的示意图。该应用场景可以是一容器云平台20。如图2所示,容器云平台20可以包括:计算节点21和存储节点22。
计算节点21的数量通常为多个,例如该多个计算节点21可以实现成为一服务器集群。计算节点21是运行容器的服务器。
存储节点22的数量通常也为多个,例如该多个存储节点22可以实现成为一服务器集群。存储节点22是部署云硬盘的服务器。
需要说明的是,上述图2所示的应用场景仅是示例性的。本申请实施例提供的技术方案,除了适用于对容器云平台场景中的云硬盘实现在线扩容之外,对于其它云平台应用场景中的云硬盘,解决类似的问题同样适用。
请参考图3,其示出了本申请一个实施例提供的云硬盘的扩容系统30的框图。该系统30可以包括:接口服务组件31、卷管理组件32、存储节点33和计算节点34。
接口服务组件31和客户端对接,用于与客户端之间进行数据交互。例如,接收客户端发送的扩容请求,向客户端反馈相关信息或响应等。在一个示例中,客户端为浏览器,用户通过浏览器能够登录至容器云平台,对容器云平台中的云硬盘进行管理。
卷管理(volume manager)组件32分别与接口服务组件31和后端存储集群(backend storage cluster)对接。后端存储集群中可以包括多个存储节点33,存储节点33中部署有云硬盘。卷管理组件32主要用于控制后端存储集群中云硬盘的容量扩展。
计算节点34中运行有应用实例(如容器)。在本申请实施例中,计算节点34中可以部署卷操作(volume operator)组件35,卷操作组件35主要用于控制云硬盘内文件系统的扩展,使得文件系统能够识别云硬盘中新近可用的存储空间。
有关上述系统30中各部分的功能,可参见下述方法实施例。
请参考图4,其示出了本申请一个实施例提供的云硬盘的扩容方法的流程图。该方法可应用于图3所示的系统30中。该方法可以包括如下几个步骤:
步骤401,接口服务组件31接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求。
第一扩容请求包括:目标云硬盘的标识信息,以及为目标云硬盘设定的扩容容量。
目标云硬盘的标识信息用于唯一指示该目标云硬盘,不同的云硬盘具有不同的标识信息。可选地,标识信息以UID表示。云硬盘的标识信息可以由云平台分配,也可以由用户预先设定,本申请实施例对此不作限定。
在一个示例中,扩容容量指示将目标云硬盘扩容至的容量。在另一个示例中,扩容容量指示目标云硬盘增加的容量。例如,目标云硬盘的当前容量为10T,用户希望将该目标云硬盘扩容至20T,则上述第一扩容请求中携带的扩容容量可以指示将目标云硬盘扩容至的容量20T,也可以指示目标云硬盘增加的容量10T。在实际应用中,扩容容量所指示的含义可以预先设定,本申请实施例不作限定。
可选地,第一扩容请求中还包括操作信息,该操作信息用于指示对目标云硬盘所执行的操作。例如,第一扩容请求中携带的操作信息用于指示对目标云硬盘执行扩容操作。
在本申请实施例中,目标云硬盘可以是云平台中的任意一个云硬盘。并且,本申请实施例提供的技术方案支持云硬盘的在线扩容,在目标云硬盘处于使用状态的情况下,也即无需中断与该目标云硬盘绑定的应用的情况下,也能够执行对该目标云硬盘的扩容操作。
步骤402,接口服务组件31向卷管理组件32转发第一扩容请求。
接口服务组件31接收到第一扩容请求之后,向卷管理组件32转发该第一扩容请求。
步骤403,卷管理组件32向存储节点33发送第二扩容请求。
卷管理组件32在接收到第一扩容请求之后,向存储节点33发送第二扩容请求。第二扩容请求用于请求存储节点33根据扩容容量对目标云硬盘进行扩容。
步骤404,存储节点33根据第二扩容请求,对目标云硬盘进行扩容。
存储节点33在接收到第二扩容请求之后,根据扩容容量对目标云硬盘进行扩容。在一个示例中,当扩容容量指示将目标云硬盘扩容至的容量时,存储节点33将目标云硬盘的容量扩容至上述扩容容量。例如,目标云硬盘的当前容量为10T,扩容容量指示将目标云硬盘扩容至20T,则存储节点33将目标云硬盘的容量由10T扩容至20T。在另一个示例中,当扩容容量指示目标云硬盘增加的容量时,存储节点33将目标云硬盘的容量增加上述扩容容量。例如,目标云硬盘的当前容量为10T,扩容容量指示目标云硬盘增加的容量为10T,则存储节点33将目标云硬盘的容量由10T扩容至20T。
在一种可能的实施方式中,第二扩容请求中携带目标云硬盘的标识信息,以及为目标云硬盘设定的扩容容量。存储节点33根据第二扩容请求中携带的上述信息,对目标云硬盘进行扩容。
综上所述,本申请实施例提供的方案中,在对正处于使用状态的目标云硬盘进行扩容时,无需中断与该云硬盘绑定的应用,使得云硬盘支持在线扩容的功能,拓展了云硬盘的应用场景。
请参考图5,其示出了本申请另一个实施例提供的云硬盘的扩容方法的流程图。该方法可应用于图3所示的系统30中。该方法可以包括如下几个步骤:
步骤501,接口服务组件31接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求。
第一扩容请求包括:目标云硬盘的标识信息,以及为目标云硬盘设定的扩容容量。步骤501和图4实施例中的步骤401相同,参见上文介绍说明,此处不再赘述。
步骤502,接口服务组件31检测目标云硬盘的剩余容量配额是否满足扩容容量的需求。
目标云硬盘的剩余容量配额用于指示目标云硬盘剩余可扩展的容量。目标云硬盘的剩余容量配额可以根据目标云硬盘的最大容量配额和当前容量确定。例如,目标云硬盘的剩余容量配额等于目标云硬盘的最大容量配额与当前容量的差值。其中,目标云硬盘的最大容量配额用于指示目标云硬盘所能扩展至的最大容量,目标云硬盘的最大容量配额可以在客户端向云平台申请该目标云硬盘时设定。例如,目标云硬盘的最大容量配额为50T,则表明该目标云硬盘所能扩展至的最大容量为50T。
可选地,接口服务组件31根据第一扩容请求中携带的扩容容量,确定目标云硬盘请求增加的容量值;而后检测上述容量值是否大于目标云硬盘的剩余容量配额;若上述目标容量不大于目标云硬盘的剩余容量配额,则执行下述步骤503。
另外,若上述目标容量大于目标云硬盘的剩余容量配额,则向客户端发送超额指示信息,该超额指示信息用于指示客户端所请求增加的容量值已超过目标云硬盘的剩余容量配额。客户端可将超额指示信息反馈给用户,以便用户重新调整扩容容量。可选地,客户端根据超额指示信息显示目标云硬盘的剩余容量配额和/或最大容量配额,从而使得用户在重新设定扩容容量时,不会超出额定要求。
步骤503,若目标云硬盘的剩余容量配额满足扩容容量的需求,则接口服务组件31向卷管理组件32转发第一扩容请求。
在一个示例中,接口服务组件31向卷管理组件32透明转发第一扩容请求。也即,接口服务组件31接收到客户端发来的第一扩容请求之后,不对该第一扩容请求做处理,将该第一扩容请求直接转发给卷管理组件32。
在另一个实施例中,接口服务组件31接收到客户端发来的第一扩容请求之后,对该第一扩容请求中携带的目标云硬盘的标识信息做转换处理,目标云硬盘的标识信息由外部标识信息转换为内部标识信息,而后将转换处理后的第一扩容请求发送给卷管理组件32。
可选地,接口服务组件31从客户端接收的第一扩容请求中携带目标云硬盘的外部标识信息,该外部标识信息是指目标云硬盘在云平台外部(例如在客户端侧)使用的标识信息,例如该外部标识信息可以是UID或者名称。接口服务组件31将目标云硬盘的外部标识信息转换为内部标识信息,接口服务组件31向卷管理组件32发送的第一扩容请求中包括:目标云硬盘的内部标识信息,以及为目标云硬盘设定的扩容容量。其中,内部标识信息是指目标云硬盘在云平台内部(例如在后台存储集群中)使用的标识信息,例如目标云硬盘的内部标识信息可以是目标云硬盘在后台存储集群中对应的存储区域的位置和大小。接口服务组件31中可以预存云硬盘的外部标识信息和内部标识信息之间的映射关系,根据该预设关系执行相应的转换处理。
步骤504,卷管理组件32在接收到第一扩容请求之后,根据扩容容量,预扣减目标云硬盘的剩余容量配额。
具体的,卷管理组件32根据扩容容量确定目标云硬盘请求增加的容量值,而后将目标云硬盘的剩余容量配额减去上述请求增加的容量值,得到预扣减之后的值。例如,目标云硬盘的最大容量配额为50T,当前容量为10T,则该目标云硬盘的剩余容量配额为40T。客户端本次请求增加的容量值为10T,则预扣减之后的值为30T。
对目标云硬盘的剩余容量配额执行预扣减,其目的是为了在接收到针对同一云硬盘的多个扩容请求的情况下,准确判断目标云硬盘的剩余容量配额是否满足扩容容量的需求,避免因判断出错而导致执行无效的扩容操作。
可选地,卷管理组件32在接收到第一扩容请求之后,还将目标云硬盘的状态由使用状态修改为扩容状态。类似地,接口服务组件31在向卷管理组件32转发第一扩容请求之后,可以向客户端发送状态修改指示,该状态修改指示用于指示客户端将目标云硬盘的状态由使用状态修改为扩容状态。例如,结合参考图6,其示出了云硬盘在线扩容时所涉及的相关用户界面的示意图。云硬盘1处于使用状态,用户选择该云硬盘1,并点击“扩容”按钮61触发对其进行扩容,在开始扩容之后,客户端将云硬盘1的状态由“使用中”修改为“扩展中”。
步骤505,卷管理组件32向存储节点33发送第二扩容请求。
第二扩容请求用于请求存储节点33根据扩容容量对目标云硬盘进行扩容。
第二扩容请求中至少包括目标云硬盘的标识信息。可选地,第二扩容请求中包括目标云硬盘的内部标识信息。可选地,第二扩容请求中还包括扩容容量。
步骤506,存储节点33根据第二扩容请求,对目标云硬盘进行扩容。
当第二扩容请求中携带扩容容量时,存储节点33可直接根据第二扩容请求中携带的扩容容量对目标云硬盘进行扩容。
当第二扩容请求中未携带扩容容量时,存储节点33获取目标云硬盘的剩余容量配额,根据该剩余容量配额确定目标云硬盘需要扩容至的目标容量,而后将目标云硬盘扩容至目标容量。
步骤507,卷管理组件32在确认目标云硬盘扩容成功之后,将目标云硬盘的剩余容量配额设定为预扣减之后的值。
可选地,存储节点33在对目标云硬盘扩容成功之后,向卷管理组件32发送与第二扩容请求对应的第二扩容响应,该第二扩容响应用于指示目标云硬盘扩容成功。卷管理组件32在确认目标云硬盘扩容成功之后,将目标云硬盘的剩余容量配额设定为预扣减之后的值。
可选地,卷管理组件32在确认目标云硬盘扩容成功之后,还向接口服务组件31发送与第一扩容请求对应的第一扩容响应,该第一扩容响应用于指示目标云硬盘扩容成功。
步骤508,接口服务组件31获取目标云硬盘所在的计算节点34。
接口服务组件31在确认目标云硬盘扩容成功之后,获取目标云硬盘所在的计算节点34。例如,目标云硬盘所在的计算节点34可以由卷管理组件32告知给接口服务组件31,卷管理组件32可以在向接口服务组件31发送的第一扩容响应中携带目标云硬盘所在的计算节点34的标识信息。
步骤509,接口服务组件31向计算节点34发送配置请求。
配置请求用于请求计算节点34对目标云硬盘的文件系统进行配置。目标云硬盘的文件系统用于对目标云硬盘的可用空间进行管理,包括对该可用空间的划分和分配等。在本申请实施例中,目标云硬盘扩容成功之后,需要对目标云硬盘的文件系统进行配置,以使得该文件系统能够识别目标云硬盘扩展的可用空间,对上述新近扩展的可用空间进行划分和分配等。
步骤510,计算节点34根据配置请求,获取文件系统的挂载路径。
步骤511,计算节点34根据挂载路径对文件系统进行配置,以使得文件系统识别目标云硬盘扩展的可用空间。
可选地,计算节点34中部署卷操作组件35。卷操作组件35主要用于控制云硬盘内文件系统的扩展。也即,卷操作组件35在接收到接口服务组件31发送的配置请求之后,获取文件系统的挂载路径,而后根据该挂载路径对文件系统进行配置。
可选地,针对不同的文件系统,云硬盘中可以相应部署不同的扩展工具。卷操作组件35调用文件系统对应的扩展工具,通过该扩展根据文件系统的挂载路径对文件系统进行配置。示例性的,当文件系统为xfs文件系统时,相应的扩展工具为xfs_growfs工具。
可选地,计算节点34在文件系统扩展完成之后,向接口服务组件31发送对应于配置请求的配置响应,该配置响应用于指示文件系统已扩展完成。
在图5所示实施例中,云硬盘的整个扩容过程包括两部分:1、云硬盘的容量扩展;2、云硬盘内文件系统的扩展。在云硬盘内文件系统扩展完成之后,视为整个扩容过程完成,目标云硬盘扩容成功。
可选地,卷管理组件32在确认目标云硬盘扩容成功之后,将目标云硬盘的状态由扩容状态修改为使用状态。例如,接口服务组件31在接收到上述配置响应之后,向卷管理组件32发送扩容成功通知,该扩容成功通知用于指示目标云硬盘已扩容成功。卷管理组件32在接收到扩容成功通知之后,将目标云硬盘的状态由扩容状态修改为使用状态。并且,接口服务组件31在接收到上述配置响应之后,向客户端发送扩容成功响应,该扩容成功响应用于指示目标云硬盘已扩容成功。客户端接收到上述扩容成功响应之后,将目标云硬盘的状态由扩容状态修改为使用状态。
综上所述,本申请实施例提供的方案中,在对正处于使用状态的目标云硬盘进行扩容时,无需中断与该云硬盘绑定的应用,使得云硬盘支持在线扩容的功能,拓展了云硬盘的应用场景。
另外,还通过在对目标云硬盘的容量进行扩展之后,对目标云硬盘内的文件系统进行相应扩展,使得文件系统能够识别目标云硬盘中扩展的可用空间。
另外,在接收到扩容请求之后,先对目标云硬盘的剩余容量配额执行预扣减,使得在接收到针对同一云硬盘的多个扩容请求的情况下,准确判断目标云硬盘的剩余容量配额是否满足扩容容量的需求,避免因判断出错而导致执行无效的扩容操作。
需要说明的一点是,在上述图4和图5所示的方法实施例中,仅从系统30中各部分交互的角度对本申请技术方案进行介绍说明。上述方法实施例中有关接口服务组件31的步骤可以单独实现成为接口服务组件31一侧的扩容方法,有关卷管理组件32的步骤可以单独实现成为卷管理组件32一侧的扩容方法,有关存储节点33的步骤可以单独实现成为存储节点33一侧的扩容方法,有关计算节点34的步骤可以单独实现成为计算节点34一侧的扩容方法。
请参考图7,其示出了本申请另一个实施例提供的云硬盘的扩容方法的流程图。该方法可应用于部署有云硬盘的云平台中。例如,该云平台可以包括上文介绍的接口服务组件21、卷管理组件32、存储节点33和计算节点34等,以实现云硬盘在线扩容的功能。该方法可以包括如下几个步骤:
步骤701,接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求。
第一扩容请求包括:目标云硬盘的标识信息,以及为目标云硬盘设定的扩容容量。
步骤702,根据第一扩容请求向存储节点发送第二扩容请求。
第二扩容请求用于请求存储节点根据扩容容量对目标云硬盘进行扩容。
请参考图8,其示出了本申请另一个实施例提供的云硬盘的扩容方法的流程图。该方法可应用于部署有云硬盘的云平台中。该方法可以包括如下几个步骤:
步骤801,接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求。
步骤802,检测目标云硬盘的剩余容量配额是否满足扩容容量的需求。
步骤803,若目标云硬盘的剩余容量配额满足扩容容量的需求,则根据扩容容量,预扣减目标云硬盘的剩余容量配额。
可选地,在目标云硬盘的剩余容量配额满足扩容容量的需求的情况下,还将目标云硬盘的状态由使用状态修改为扩容状态。
步骤804,根据第一扩容请求向存储节点发送第二扩容请求,以使得存储节点根据第二扩容请求对目标云硬盘进行扩容。
步骤805,在确认目标云硬盘扩容成功之后,将目标云硬盘的剩余容量配额设定为预扣减之后的值。
步骤806,获取目标云硬盘所在的计算节点。
步骤807,向计算节点发送配置请求,该配置请求用于请求计算节点对目标云硬盘的文件系统进行配置,以使得文件系统识别目标云硬盘扩展的可用空间。
可选地,在确认目标云硬盘扩容成功之后,还将目标云硬盘的状态由扩容状态修改为使用状态。
对于上述图7和图8实施例中未披露的细节,可参见上文图4和图5实施例中的介绍说明。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图9,其示出了本申请一个实施例提供的云硬盘的扩容装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:接收模块910和发送模块920。
接收模块910,用于接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量。
发送模块920,用于根据所述第一扩容请求向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容。
可选地,所述装置还包括:处理模块(图中未示出)。
所述处理模块,用于获取所述目标云硬盘所在的计算节点。
所述发送模块920,还用于向所述计算节点发送配置请求,所述配置请求用于请求所述计算节点对所述目标云硬盘的文件系统进行配置,以使得所述文件系统识别所述目标云硬盘扩展的可用空间。
可选地,所述处理模块,还用于在接收到所述第一扩容请求之后,根据所述扩容容量,预扣减所述目标云硬盘的剩余容量配额。
可选地,所述处理模块,还用于在确认所述目标云硬盘扩容成功之后,将所述目标云硬盘的剩余容量配额设定为所述预扣减之后的值。
可选地,所述处理模块,还用于在接收到所述第一扩容请求之后,将所述目标云硬盘的状态由使用状态修改为扩容状态。
可选地,所述处理模块,还用于在确认所述目标云硬盘扩容成功之后,将所述目标云硬盘的状态由所述扩容状态修改为所述使用状态。
可选地,所述处理模块,还用于在接收到所述第一扩容请求之后,检测所述目标云硬盘的剩余容量配额是否满足所述扩容容量的需求;当所述目标云硬盘的剩余容量配额满足所述扩容容量的需求时,控制所述发送模块920执行所述根据所述第一扩容请求向存储节点发送第二扩容请求的步骤。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图10,其示出了本申请一个实施例提供的计算机设备的结构框图。例如,该计算机设备可以是一服务器。该计算机设备用于实施上述实施例中提供的扩容方法。具体来讲:
所述计算机设备1000包括中央处理单元(CPU)1001、包括随机存取存储器(RAM)1002和只读存储器(ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
根据本发明的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
在示例中实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述扩容方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述扩容方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述扩容方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种云硬盘的扩容方法,其特征在于,应用于云硬盘的扩容系统中,所述系统包括接口服务组件、卷管理组件、存储节点和计算节点;其中,所述存储节点中部署有云硬盘,所述云硬盘挂载在计算节点中的用于运行应用的容器上,用作所述容器的后端存储;所述计算节点中部署有卷操作组件;所述方法包括:
由所述接口服务组件接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;
若所述目标云硬盘的剩余容量配额满足所述扩容容量的需求,由所述接口服务组件向所述卷管理组件转发所述第一扩容请求;
若所述剩余容量配额不满足所述扩容容量的需求,由所述接口服务组件向所述客户端发送超额指示信息,所述超额指示信息用于指示所述扩容容量超过所述剩余容量配额;
由所述卷管理组件在接收到所述第一扩容请求之后,根据所述扩容容量,预扣减所述剩余容量配额;
由所述卷管理组件将所述目标云硬盘的状态由使用状态修改为扩容状态,并向所述存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;
由所述存储节点根据所述第二扩容请求,对所述目标云硬盘进行扩容;
由所述卷管理组件在确认所述目标云硬盘扩容成功之后,将所述剩余容量配额设定为所述预扣减之后的值;
由所述接口服务组件在确认目标云硬盘扩容成功之后获取所述目标云硬盘对应的容器所在的计算节点;
由所述接口服务组件向所述容器所在的计算节点发送配置请求,所述配置请求用于请求对所述目标云硬盘的文件系统进行配置;
由所述容器所在的计算节点根据所述配置请求,获取所述文件系统在所述容器上的挂载路径;
由所述容器所在的计算节点中的所述卷操作组件根据所述文件系统的类型和所述挂载路径,对所述文件系统进行配置,以使得所述文件系统在不中断所述容器中运行的应用的情况下识别所述目标云硬盘扩展的可用空间;以及
在所述文件系统扩展完成后,由所述卷操作组件将所述目标云硬盘的状态由所述扩容状态修改为所述使用状态,并向所述接口服务组件发送对应所述配置请求的配置响应,所述配置响应用于指示所述文件系统扩展完成。
2.根据权利要求1所述的方法,其特征在于,所述卷管理组件分别与所述接口服务组件和后端存储集群对接,所述后端存储集群中包括多个所述存储节点。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
由所述卷管理组件向所述接口服务组件发送对应所述第一扩容请求的第一扩容响应,所述第一扩容响应用于指示所述目标云硬盘扩容成功;所述第一扩容响应包括所述目标云硬盘所在的计算节点的标识信息。
4.根据权利要求1所述的方法,其特征在于,所述超额指示信息还用于指示所述目标云硬盘的剩余容量配额和/或最大容量配额。
5.一种云硬盘的扩容系统,其特征在于,所述系统包括接口服务组件、卷管理组件、存储节点和计算节点;其中,所述存储节点中部署有云硬盘,所述云硬盘挂载在计算节点中的容器上,用作所述容器的后端存储,所述计算节点中部署有卷操作组件;
所述接口服务组件,用于接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;
若剩余容量配额满足所述扩容容量的需求,则向所述卷管理组件转发所述第一扩容请求;
若所述剩余容量配额不满足所述扩容容量的需求,则向所述客户端发送超额指示信息,所述超额指示信息用于指示所述扩容容量超过所述剩余容量配额;
所述卷管理组件,用于在接收到所述第一扩容请求之后,根据所述扩容容量,预扣减所述剩余容量配额;将所述目标云硬盘的状态由使用状态修改为扩容状态,并向所述存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;
所述存储节点,用于根据所述第二扩容请求,对所述目标云硬盘进行扩容;
所述卷管理组件,还用于在确认所述目标云硬盘扩容成功之后,将所述剩余容量配额设定为所述预扣减之后的值;
所述接口服务组件,还用于在确认目标云硬盘扩容成功之后获取所述目标云硬盘对应的容器所在的计算节点;向所述容器所在的计算节点发送配置请求,所述配置请求用于请求对所述目标云硬盘的文件系统进行配置;
所述容器所在的计算节点,用于根据所述配置请求,获取所述文件系统在所述容器上的挂载路径;所述容器所在的计算节点中的所述卷操作组件根据所述文件系统的类型和所述挂载路径,对所述文件系统进行配置,以使得所述文件系统在不中断所述容器中运行的应用的情况下识别所述目标云硬盘扩展的可用空间;以及,在所述文件系统扩展完成后,由所述卷操作组件将所述目标云硬盘的状态由所述扩容状态修改为所述使用状态,并向所述接口服务组件发送对应所述配置请求的配置响应,所述配置响应用于指示所述文件系统扩展完成。
6.一种云硬盘的扩容方法,其特征在于,所述方法包括:
接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;
若所述目标云硬盘的剩余容量配额满足所述扩容容量的需求,则根据所述扩容容量,预扣减所述剩余容量配额;将所述目标云硬盘的状态由使用状态修改为扩容状态,根据所述第一扩容请求向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;所述存储节点用于根据所述第二扩容请求,对所述目标云硬盘进行扩容;
若所述剩余容量配额不满足所述扩容容量的需求,则向所述客户端发送超额指示信息,所述超额指示信息用于指示所述扩容容量超过所述剩余容量配额;
在确认所述目标云硬盘扩容成功之后,将所述剩余容量配额设定为所述预扣减之后的值;
在确认目标云硬盘扩容成功之后获取所述目标云硬盘对应的容器所在的计算节点;向所述容器所在的计算节点发送配置请求,所述配置请求用于请求对所述目标云硬盘的文件系统进行配置;所述目标云硬盘所在的计算节点用于根据所述配置请求,获取所述文件系统的挂载路径;所述容器所在的计算节点中的卷操作组件根据所述文件系统的类型和所述挂载路径,对所述文件系统进行配置,以使得所述文件系统在不中断所述容器中运行的应用的情况下识别所述目标云硬盘扩展的可用空间;扩展工具用于对所述文件系统进行扩展;
将所述目标云硬盘的状态由所述扩容状态修改为所述使用状态;接收所述目标云硬盘所在的计算节点发送的对应所述配置请求的配置响应,所述配置响应用于指示所述文件系统扩展完成。
7.一种云硬盘的扩容装置,其特征在于,所述装置包括:
接收模块,用于接收客户端针对正处于使用状态的目标云硬盘的第一扩容请求,其中,所述第一扩容请求包括:所述目标云硬盘的标识信息,以及为所述目标云硬盘设定的扩容容量;接收所述目标云硬盘所在的计算节点发送的对应配置请求的配置响应,所述配置响应用于指示文件系统扩展完成;
发送模块,用于若所述目标云硬盘的剩余容量配额满足所述扩容容量的需求,则根据所述扩容容量,预扣减所述剩余容量配额;将所述目标云硬盘的状态由使用状态修改为扩容状态,并根据所述第一扩容请求向存储节点发送第二扩容请求,所述第二扩容请求用于请求所述存储节点根据所述扩容容量对所述目标云硬盘进行扩容;若所述剩余容量配额不满足所述扩容容量的需求,则向所述客户端发送超额指示信息,所述超额指示信息用于指示所述扩容容量超过所述剩余容量配额;在确认所述目标云硬盘扩容成功之后,将所述剩余容量配额设定为所述预扣减之后的值;获取所述目标云硬盘对应的容器所在的计算节点;向所述容器所在的计算节点发送配置请求,所述配置请求用于请求对所述目标云硬盘的文件系统进行配置;所述目标云硬盘所在的计算节点用于根据所述配置请求,获取所述文件系统的挂载路径;所述容器所在的计算节点中的卷操作组件根据所述文件系统的类型和所述挂载路径,对所述文件系统进行配置,以使得所述文件系统识别在不中断所述容器中运行的应用的情况下所述目标云硬盘扩展的可用空间。
8.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求6所述的方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810251506.8A CN110209342B (zh) | 2018-03-26 | 2018-03-26 | 云硬盘的扩容方法、装置、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810251506.8A CN110209342B (zh) | 2018-03-26 | 2018-03-26 | 云硬盘的扩容方法、装置、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209342A CN110209342A (zh) | 2019-09-06 |
CN110209342B true CN110209342B (zh) | 2022-08-30 |
Family
ID=67778780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810251506.8A Active CN110209342B (zh) | 2018-03-26 | 2018-03-26 | 云硬盘的扩容方法、装置、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209342B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938392B (zh) * | 2020-07-09 | 2023-11-14 | 亚信科技(南京)有限公司 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
CN114253463A (zh) * | 2020-09-25 | 2022-03-29 | 华为云计算技术有限公司 | 云主机的云磁盘管理方法及装置、计算机设备、存储介质 |
CN113190503B (zh) * | 2021-05-08 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 文件系统扩容方法、装置、电子设备及存储介质 |
CN113282250B (zh) | 2021-07-19 | 2022-02-22 | 苏州浪潮智能科技有限公司 | 一种云卷扩容的方法、装置、设备及可读介质 |
CN113672173A (zh) * | 2021-07-31 | 2021-11-19 | 济南浪潮数据技术有限公司 | 一种存储卷扩容方法、系统、设备及可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226457A (zh) * | 2008-01-25 | 2008-07-23 | 中兴通讯股份有限公司 | 一种磁盘阵列的在线扩容系统及方法 |
US9009405B2 (en) * | 2012-04-30 | 2015-04-14 | Lsi Corporation | Methods and systems for instantaneous online capacity expansion |
CN105554132B (zh) * | 2015-12-23 | 2018-11-09 | 浪潮集团有限公司 | 一种Hadoop在线扩容的方法 |
CN107133331A (zh) * | 2017-05-11 | 2017-09-05 | 郑州云海信息技术有限公司 | 基于shell脚本实现的数据库自动扩容方法及装置 |
CN107291395B (zh) * | 2017-06-27 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 一种lun在线扩容方法及系统 |
-
2018
- 2018-03-26 CN CN201810251506.8A patent/CN110209342B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110209342A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209342B (zh) | 云硬盘的扩容方法、装置、设备及系统 | |
CN111277460B (zh) | 一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备 | |
US9612814B2 (en) | Network topology-aware recovery automation | |
CN108255497B (zh) | 一种应用的部署方法及装置 | |
EP4013000A1 (en) | Cloud service processing method and device, cloud server, cloud service system and storage medium | |
CN110138577B (zh) | 集群创建方法、第一服务器以及可读存储介质 | |
US9317268B2 (en) | Recovery automation in heterogeneous environments | |
EP3531280A1 (en) | Accelerator loading method and system, and accelerator loading apparatus | |
CN113590146B (zh) | 服务器及容器升级方法 | |
EP3402123B1 (en) | Method and apparatus for transmitting request message | |
CN110825399A (zh) | 一种应用程序的部署方法及装置 | |
CN110890987A (zh) | 自动创建集群的方法、装置、设备和系统 | |
KR20180044579A (ko) | 컨테이너 기반의 분산 애플리케이션 관리 시스템 및 방법 | |
US9317355B2 (en) | Dynamically determining an external systems management application to report system errors | |
CN107168774B (zh) | 一种基于本地存储的虚拟机迁移方法及系统 | |
CN112202879B (zh) | 中间件管理方法、装置、电子设备和存储介质 | |
CN111506388B (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN111176577B (zh) | 分布式块存储服务命令处理方法、装置、设备及介质 | |
CN111008064B (zh) | 虚机资源调度方法和装置、集群部署方法和装置 | |
CN109962914B (zh) | 一种防火墙配置方法及装置 | |
US20080229315A1 (en) | Distributed processing program, system, and method | |
EP3346671B1 (en) | Service processing method and equipment | |
EP4164183A1 (en) | Default gateway management method, gateway manager, server, and storage medium | |
US11269615B2 (en) | Automatically orchestrating deployments of software-defined storage stacks | |
CN111045778B (zh) | 一种虚拟机的创建方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |