CN115269260A - 应用管理系统及相关方法、装置、设备、介质、产品 - Google Patents
应用管理系统及相关方法、装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN115269260A CN115269260A CN202110475607.5A CN202110475607A CN115269260A CN 115269260 A CN115269260 A CN 115269260A CN 202110475607 A CN202110475607 A CN 202110475607A CN 115269260 A CN115269260 A CN 115269260A
- Authority
- CN
- China
- Prior art keywords
- application
- data center
- storage volume
- disaster recovery
- migration
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000011084 recovery Methods 0.000 claims description 171
- 230000005012 migration Effects 0.000 claims description 149
- 238000013508 migration Methods 0.000 claims description 149
- 238000007726 management method Methods 0.000 claims description 91
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008602 contraction Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 abstract description 10
- 230000001960 triggered effect Effects 0.000 abstract description 10
- 230000008569 process Effects 0.000 abstract description 9
- 238000004519 manufacturing process Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 241000380131 Ammophila arenaria Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种应用管理系统,包括:第一数据中心和第二数据中心,第一数据中心用于检测到应用管理指示,在第二数据中心创建第一存储卷的复制存储卷,得到第二存储卷,第二数据中心用于同步第一存储卷中应用的状态数据至第二存储卷。该系统中状态数据的同步过程由应用触发,而不是管理员手动定期触发,并且通过复制存储卷同步状态数据,由此实现实时同步状态数据,降低了业务中断的几率,满足了对于业务持续性的需求。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种应用管理系统以及相关方法、装置、设备、计算机可读存储介质、计算机程序产品。
背景技术
随着云容器技术的快速发展,越来越多的用户倾向于基于容器在云上搭建业务,以降低计算开销、提升业务部署速度、缩减信息技术(information technology,IT)基础架构、提升业务云上迁移的灵活度。基于容器的自动部署和管理系统(例如kubernetes,简称为k8s)的出现,也进一步提升业务部署速度,缩减用户运维成本。
为了保证业务连续性和可靠性,用户在一个数据中心部署应用时还可以选择一个备份数据中心,当数据中心因自然灾害或者计划性故障导致服务不可达,或者用户需要进行应用迁移时,可以在上述备份数据中心恢复应用,从而保证业务连续性。
对于有状态应用(例如是服务端存储上下文的应用),业界提供了一种定期备份的方案以保证业务连续性。具体地,管理员定期将应用的状态数据由部署应用的数据中心备份至上述备份数据中心。当部署应用的数据中心故障或者用户需要迁移应用时,可以基于备份数据中心的状态数据恢复应用。
然而,定期备份的方案无法支持应用状态的实时同步,备份间隔期间的应用数据难以保存至灾备数据中心,当部署应用的数据中心故障时容易导致数据丢失,由此增大了业务中断的几率,难以满足业务连续性的需求。
发明内容
本申请提供了一种应用管理系统。该系统中状态数据的同步过程由应用触发,例如是第一数据中心在检测到应用触发信号如应用管理指示时,在第二数据中心创建复制存储卷,该复制存储卷与第一存储卷绑定,能够同步应用的状态数据,而不是管理员手动定期备份,因而可以实现实时同步状态数据,避免了数据丢失,为应用容灾或迁移提供保障,降低了业务中断的概率,满足了对于业务持续性的需求。本申请还提供了上述应用管理系统对应的方法、计算机集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种应用管理系统。该应用管理系统可以是部署在第一数据中心和第二数据中心的软件系统,第一数据中心和第二数据中心运行上述软件系统实现应用管理,如应用容灾或应用迁移。该应用管理系统也可以是硬件系统,例如是具有应用管理功能的第一数据中心和第二数据中心形成的系统。
具体地,第一数据中心用于检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,该第二存储卷为所述第一存储卷的复制存储卷,第二数据中心用于同步所述第一存储卷中应用的状态数据至所述第二存储卷。
该系统中状态数据的同步过程由应用触发,具体是第一数据中心在检测到应用触发信号如应用管理指示时,在第二数据中心创建复制存储卷,该复制存储卷与第一存储卷绑定,能够同步应用的状态数据,而不是管理员手动定期触发,由此可以实现实时同步状态数据,解决了管理员手动定期备份状态数据导致在备份间隔期间应用数据难以保存、易于丢失的问题,为应用容灾或迁移提供了保障,降低了业务中断的几率,满足了对于业务持续性的需求。
在一些可能的实现方式中,所述第一数据中心还用于未检测到所述应用管理指示时,不创建所述第二存储卷。即第一数据中心在检测到应用管理指示时进行状态数据同步,从而为应用容灾或应用迁移提供帮助,未检测到应用管理指示时不进行状态数据同步。如此,可以实现根据应用管理指示实时同步状态数据,一方面可以避免数据丢失,另一方面可以避免占用资源。
在一些可能的实现方式中,所述应用管理指示包括应用容灾指示或应用迁移指示。其中,应用容灾指示是指对应用进行容灾保护的指示。对应用进行容灾保护可以是在第二数据中心预先提供容灾环境,以便第一数据中心故障时,在容灾环境部署容灾应用,实现应用恢复。应用迁移指示是指对应用进行迁移的指示。
该方法可以实现自动部署用于容灾的复制存储卷,并且自动绑定复制存储卷至容灾应用中。整个容灾保护流程减少了用户手动介入,提升了容灾效率和容灾操作的便捷性。该方法也可以支持有状态应用跨集群迁移,应用状态数据的迁移和应用恢复均可以自动化完成,提升了迁移效率。
在一些可能的实现方式中,应用容灾通常包括容灾保护和容灾恢复等不同阶段,因此,第一数据中心在容灾保护阶段创建第二存储卷后,可以先将第二存储卷标识为不可用状态,避免影响应用正常运行。然后第二数据中心在容灾恢复阶段,例如是第一数据中心故障时,恢复所述第二存储卷为可用状态,基于所述第二存储卷中所述应用的状态数据部署容灾应用或迁移应用。
无论是容灾保护阶段还是容灾恢复阶段,第一存储卷和第二存储卷不会同时处于可用状态,如此可以避免第一存储卷和第二存储卷同时处于可用状态时,部分数据被分发到第二存储卷,导致第一存储卷上存储的数据不完整,影响应用正常运行。由此可以实现平滑地应用容灾。
在一些可能的实现方式中,所述第二数据中心记录有所述容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系,第二数据中心具体可以用于接收应用程序编程接口(application programming interface,API)请求,当所述API请求用于请求操作所述容灾应用或所述迁移应用的资源时,重构所述API请求,重构后的API请求中所述资源关联的存储卷被修改为所述第二存储卷;第二数据中心执行所述重构后的API请求,以将所述资源与所述第二存储卷绑定,由此可以实现应用容灾恢复或者应用迁移。
该方法通过自动修改API请求中存储卷关联的存储卷,进而实现将容灾应用或迁移应用的资源自动地与第二存储卷绑定,从而实现自动容灾恢复或自动迁移应用,提升了容灾或迁移的效率,以及提升了容灾或迁移的便捷性。
在一些可能的实现方式中,所述应用管理指示为应用容灾指示,第二数据中心还用于所述第一数据中心故障时,创建所述容灾应用的资源。由于在第一数据中心故障之前,仅需创建复制存储卷,无需创建容灾应用的资源,在故障恢复时再创建应用的资源,减少了第二数据中心软硬件资源占用,提升了整体资源使用效率,降低了容灾成本。
在一些可能的实现方式中,所述应用管理指示为应用迁移指示,所述第一数据中心还用于将部署在所述第一数据中心的所述应用停止。如此,避免了应用迁移过程中第一数据中心中部署的应用继续运行导致数据丢失的情况发生。
在一些可能的实现方式中,所述第二数据中心还用于当所述API请求用于请求对所述容灾应用或所述迁移应用的资源扩容或缩容时,拒绝执行所述API请求。如此,可以确保第一数据中心和第二数据中心状态数据的一致性。
在一些可能的实现方式中,所述第二数据中心还用于异步监听所述第一数据中心中所述应用的资源的拓扑关系,并同步所述拓扑关系至所述第二数据中心,以保证所述第一数据中心与所述第二数据中心中拓扑关系的一致性。由此可以实现第一数据中心和第二数据中心之间容灾保护关系或迁移关系的一致性。
在一些可能的实现方式中,所述应用包括一个有状态应用或者由多个有状态应用形成的集群。也即该方法不仅可以用于基于容器部署的有状态应用容灾保护,同时也适用于包括多个有状态应用的集群容灾保护场景,如此可以提升容灾保护粒度,规避集群故障风险。
第二方面,本申请提供一种应用管理方法。该方法由应用管理系统执行,所述应用管理系统包括第一数据中心和第二数据中心,所述方法包括:
第一数据中心检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,所述第二存储卷为所述第一存储卷的复制存储卷;
第二数据中心同步所述第一存储卷中应用的状态数据至所述第二存储卷。
在一些可能的实现方式中,所述方法还包括:
所述第一数据中心未检测到所述应用管理指示时,不创建所述第二存储卷。
在一些可能的实现方式中,所述应用管理指示包括应用容灾指示或应用迁移指示。
在一些可能的实现方式中,所述方法还包括:
所述第二数据中心恢复所述第二存储卷为可用状态,基于所述第二存储卷中所述应用的状态数据部署容灾应用或迁移应用。
在一些可能的实现方式中,所述第二数据中心记录有所述容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系;
所述方法还包括:
接收应用程序编程接口API请求;
当所述API请求用于请求操作所述容灾应用或所述迁移应用的资源时,重构所述API请求,重构后的API请求中所述资源关联的存储卷被修改为所述第二存储卷;
执行所述重构后的API请求,以将所述资源与所述第二存储卷绑定。
在一些可能的实现方式中,所述应用管理指示为应用容灾指示,所述方法还包括:
所述第一数据中心故障时,所述第二数据中心创建所述容灾应用的资源。
在一些可能的实现方式中,所述应用管理指示为应用迁移指示,所述方法还包括:
所述第一数据中心将部署在所述第一数据中心的所述应用停止。
在一些可能的实现方式中,所述方法还包括:
当所述API请求用于请求对所述容灾应用或所述迁移应用的资源扩容或缩容时,所述第二数据中心拒绝执行所述API请求。
在一些可能的实现方式中,所述方法还包括:
所述第二数据中心异步监听所述第一数据中心中所述应用的资源的拓扑关系,并同步所述拓扑关系至所述第二数据中心,以保证所述第一数据中心与所述第二数据中拓扑关系的一致性。
在一些可能的实现方式中,所述应用包括一个有状态应用或者由多个有状态应用形成的集群。
第三方面,本申请提供一种计算机集群。该计算机集群包括至少一台计算机。所述计算机包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以执行如第一方面或第一方面的任一种实现方式所述的应用管理方法。
第四方面,本申请提供一种计算机可读存储介质。所述计算机可读存储介质中存储有指令,所述指令指示计算机执行上述第一方面或第一方面的任一种实现方式所述的应用管理方法。
第五方面,本申请提供了一种包含指令的计算机程序产品。当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种实现方式所述的应用管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种应用管理系统的系统架构图;
图2为本申请实施例提供的一种第一数据中心中准入控制器的结构示意图;
图3为本申请实施例提供的一种第二数据中心中准入控制器的结构示意图;
图4为本申请实施例提供的一种应用管理方法的交互流程图;
图5为本申请实施例提供的一种应用容灾方法的流程图;
图6为本申请实施例提供的一种应用集群容灾方法的流程图;
图7为本申请实施例提供的一种应用迁移方法的流程图;
图8为本申请实施例提供的一种计算机集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
云计算(cloud computing)也称作网络计算,具体是一种基于互联网的计算方式。通过这种方式,可以实现将共享的计算资源按需提供给用户。在具体实现时,云服务提供商通常对实体资源进行虚拟化,然后通过互联网向用户(个人用户或者企业用户等)提供动态易扩展的并且是经过虚拟化的计算资源,以便于用户在该计算资源中部署应用。
容器(container)是一个标准化的软件单元。容器将应用的代码以及依赖关系打包,能够实现将应用由一个计算环境(例如是一个数据中心)快速地切换到另一个计算环境(例如是另一个数据中心)。
在许多场景中均存在将应用由一个数据中心切换至另一个数据中心的需求。例如,出于业务连续性、可靠性的考虑,应用运营商通常会在一个数据中心部署应用时,同时在另一个数据中心进行容灾保护。又例如,应用运营商考虑到业务规模的扩大,将应用由一个数据中心迁移至另一个数据中心。
对于有状态应用,例如是服务端存储用户的上下文信息的应用,在对该应用进行容灾保护或者进行迁移时,通常需要将应用的状态数据由一个数据中心同步至另一个数据中心。目前,业界主要是通过定期备份的方式同步状态数据以保证业务连续性。具体地,管理员定期将应用的状态数据由部署应用的数据中心备份至备份数据中心。当部署应用的数据中心故障或者用户需要迁移应用时,可以基于备份数据中心的状态数据恢复应用。
然而,定期备份的方案无法支持应用状态数据的实时同步,备份间隔期间的应用数据难以保存至灾备数据中心,当部署应用的数据中心故障时容易导致应用数据丢失。由此增大了业务中断的几率,难以满足业务连续性的需求。
有鉴于此,本申请实施例提供了一种应用管理系统。该应用管理系统可以是部署在第一数据中心和第二数据中心上的软件系统,该软件系统可以实现应用管理的功能。该应用管理系统也可以是硬件系统,该硬件系统包括用于实现应用管理功能的第一数据中心和第二数据中心。
具体地,第一数据中心用于检测到应用管理指示,基于第一存储卷在第二数据中心创建第二存储卷,其中,第二存储卷为第一存储卷的复制存储卷,第二数据中心用于同步第一存储卷中应用的状态数据至第二存储卷。
该系统中状态数据的同步过程由应用触发,具体是第一数据中心在检测到应用触发信号如应用管理指示时,在第二数据中心创建复制存储卷,该复制存储卷与第一存储卷绑定,能够同步应用的状态数据,而不是管理员手动定期触发,由此可以实现实时同步状态数据,解决了管理员手动定期备份状态数据导致在备份间隔期间应用数据难以保存、易于丢失的问题,为应用容灾或迁移提供了保障,降低了业务中断的几率,满足了对于业务持续性的需求。
为了使得本申请的技术方案更加清楚、易于理解,下面对应用管理系统的系统架构进行介绍。
参见图1所示的应用管理系统的系统架构图,该应用管理系统10包括第一数据中心100和第二数据中心200,第一数据中心100和第二数据中心200建立有通信连接。该通信连接可以是有线通信方式的连接,例如同轴电缆连接、光纤连接等等。在一些实例中,该通信连接也可以是无线通信方式的连接,例如蜂窝网络连接、无线局域网连接等等。
具体地,第一数据中心100用于检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,该第二存储卷为第一存储卷的复制存储卷,第二数据中心200用于同步所述第一存储卷中应用的状态数据至所述第二存储卷,以为应用容灾恢复或应用迁移提供帮助。
在一些可能的实现方式中,如图1所示,第一数据中心100包括计算环境和存储环境,其中,计算环境指示云服务提供商拥有的,用于提供计算资源的计算设备集群。该计算设备集群可以是运行容器化应用的集群,例如是kubernetes(简称为k8s)集群。k8s集群中包括准入控制器102和应用程序编程接口服务器(application programming interface-server,API-server)104。进一步地,k8s集群中还可以包括记录模块106。
类似地,第二数据中心200包括计算环境和存储环境,该计算环境指示的计算设备集群可以是k8s集群,第二数据中心200的k8s集群中包括准入控制器202和API-Server204。进一步地,第二数据中心200的k8s集群中还包括记录模块206。
用户在k8s集群中搭建基于容器部署的有状态应用时,可以创建资源。该资源具体包括pod资源、持久卷(persistent volume,PV)资源和持久卷请求(persistent volumeclaim,PVC)资源。在创建资源时,还可以在存储环境中创建存储卷,例如是第一存储卷,并将该第一存储卷和应用的PV资源绑定,用于存储应用的状态数据。
其中,状态数据是有状态应用具有,而无状态应用不具有的数据。有状态应用是服务端存储上下文,并在客户端下一次请求时使用该上下文的应用,无状态应用时服务端不保存上下文,不依赖上下文进行响应的应用。状态数据具体是指服务端保存的、在客户端下一次请求时被使用的上下文。根据状态数据功能不同,可以将状态数据分为以下几种类型:持久性状态数据、配置状态数据、会话状态数据、连接状态数据、集群状态数据、日志数据等。持久性状态数据在应用重启或宕机时被保存。配置状态数据包括数据库连接字符串等,通常保存在配置文件。会话状态数据是用户登录应用产生的一种数据,该数据例如可以是会话标识(session ID)。连接状态数据包括应用使用的有状态通信协议,例如websocket。集群状态数据包括应用以集群形式运行多个实例时集群内成员的状态和角色。日志数据包括应用运行产生的日志。
pod资源是一种集合了一到多个容器、存储资源、专用网络协议地址(Internetprotocol address,IP)及支撑容器运行的其他选项的逻辑组件。pod代表着k8s的部署单元及原子运行单元,即一个应用的单一运行实例。
PV资源是集群中由管理员配置的一段网络存储资源。PV资源是集群中的资源,PV资源的生命周期独立于使用PV资源的任何单个pod。PVC资源是由用户触发的对PV资源的请求。与pod资源类似,PVC资源为消耗资源。其中,pod资源可以请求特定级别的资源如中央处理器(central processing unit,CPU)和内存,pvc可以请求特定的大小和访问模式(如一次读写或者多次只读)。其中,PVC资源和PV资源通常是一一对应的。
其中,API-server104用于接收API请求和处理API请求,该API请求可以是对pod资源、PVC资源或PV资源的操作请求,其中,操作可以是增、删、改、查中的任一种或多种。记录模块106用于记录应用的资源的拓扑关系,例如是出于容灾或迁移状态下的应用的资源的拓扑关系。准入控制器102可以监听记录模块106的变化,执行相应的容灾或迁移操作。进一步地,准入控制器102还用于拦截API请求,并对API请求进行控制约束。
在第一数据中心100(在一些场景如容灾场景中也可以称作生产数据中心),用户可以基于k8s集群创建有状态应用,将该应用的状态数据和应用数据存储在第一存储卷(在一些场景如容灾场景中也可以称作生产存储卷)。
用户可以为第一数据中心100中的有状态应用进行容灾保护。具体地,当用户对第一数据中心100的有状态应用执行容灾保护时,将在记录模块106中新增容灾保护关系。该容灾保护关系可以通过应用的资源的拓扑关系表征。第一数据中心100的准入控制器102检测到记录模块106中记录的容灾保护关系发生变化时,则表明准入控制器102接收到应用容灾指示,可以执行容灾保护操作,具体包括基于第一存储卷在第二数据中心200创建第二存储卷,该第二存储卷为第一存储卷的复制存储卷,第二存储卷与第一存储卷可以组成容灾复制对,可以通过数据远程同步的方式,保存第一存储卷中应用的状态数据至第二数据中心200(例如是第二数据中心200中的第二存储卷)。
进一步地,第一数据中心100的准入控制器102还可以更新应用的容灾保护关系至第二数据中心200的记录模块206。其中,准入控制器102可以是在第二存储卷创建完成时更新上述容灾保护关系至第二数据中心。该容灾保护关系具体可以包括pod资源和PVC资源之间的关系、PVC资源和PV资源之间的关系、PV资源和第一存储卷的关系、第一存储卷和第二存储卷的关系中的至少一个。
第二数据中心200的准入控制器202还可以异步监听第一数据中心100的记录模块106中记录的容灾保护关系。例如,准入控制器202可以通过list/watch机制异步监听容灾保护关系。当容灾保护关系变化时,则准入控制器202同步该容灾保护关系以保证集群间(不同数据中心间)容灾保护关系的一致性。
当第一数据中心100(例如是生产数据中心)故障时,用户可以在第二数据中心200进行容灾恢复。具体地,用户可以通过客户端或网页触发恢复操作,客户端或浏览器可以响应于该操作,生成API请求。第二数据中心200接收到API请求,可以重构该API请求,具体是修改API请求中资源关联的存储卷,重构后的API请求中资源关联的存储卷被修改为所述第二存储卷。第二数据中心执行该重构后的API请求,实现基于第二存储卷(即复制存储卷)恢复应用,进而实现有状态应用的跨集群容灾。
用户也可以为第一数据中心100中的有状态应用进行迁移。具体地,当用户对第一数据中心100的有状态应用执行迁移时,将在记录模块106中新增迁移关系。该迁移关系可以通过应用的资源的拓扑关系表征。第一数据中心100的准入控制器102检测记录模块106中记录的迁移关系变化时,则表明准入控制器102接收到应用迁移指示,可以执行应用迁移操作,具体包括基于第一存储卷在第二数据中心200创建第二存储卷,该第二存储卷为第一存储卷的复制存储卷,第二存储卷用于保存应用的状态数据和应用数据。需要说明的是,在创建第二存储卷之前,准入控制器102可以先将部署在所述第一数据中心100的所述应用停止,由此避免应用在迁移过程中产生数据,导致数据丢失。
接着,用户可以在第二数据中心200部署应用。具体地,第二数据中心200的准入控制器202拦截API请求,然后重构该API请求,例如是根据迁移关系修改API请求中资源关联的存储卷,重构后的API请求中资源关联的存储卷为第二存储卷,准入控制器202可以指示k8s集群执行重构后的请求,创建资源,并将资源和第二存储卷(即复制存储卷)绑定,以基于该复制存储卷还原应用的状态数据。当第二数据中心200的应用部署完成时,用户可以删除第一数据中心100中的应用,完成整个应用的跨集群迁移。
在一些可能的实现方式中,第二数据中心200的准入控制器202还可以拦截API请求,当该API请求用于请求对容灾应用或迁移应用的资源进行操作,例如对容灾应用的PV资源进行扩容或缩容时,为了保证第一数据中心100与第二数据中心200状态数据的一致性,此操作可以被准入控制器202限制,准入控制器202指示API-Server204拒绝执行该API请求以保证状态数据的一致性。
本申请的应用管理系统10基于准入控制器(例如是第一数据中心100的准入控制器102、第二数据中心200的准入控制器102)实现有状态应用的状态数据的实时同步,解决了管理员手动备份状态数据导致备份间隔期间数据难以保存、容易丢失的问题,降低了业务中断的概率,满足了对于业务连续性的需求。
接下来,将分别对第一数据中心100的准入控制器102和第二数据中心200的准入控制器进行详细说明。
参见图2所示的准入控制器102的结构示意图,在图1基础上,图2重点展示了准入控制器102的结构,并进一步展示了准入控制器102与API-server104、记录模块106的连接关系。
具体地,准入控制器102包括记录同步模块1022、容灾迁移模块1024和API控制模块1026。其中,API控制模块1026可以包括API拦截模块10262和API限制模块10264。记录同步模块1022与记录模块106连接,用于同步记录模块106中记录的资源的拓扑关系。API拦截模块10262与API-server104连接,用于拦截API请求。
当用户对第一数据中心100的应用执行容灾保护时,第一数据中心100的记录模块106中容灾保护关系(由应用的资源的拓扑关系表征)会发生变化。准入控制器102中的记录同步模块1022同步记录模块106中记录的应用的资源的拓扑关系。准入控制器102中的容灾迁移模块1024遍历应用的资源,建立应用的资源的拓扑关系,该拓扑关系可以包括pod资源与PVC资源的关系、PVC资源和PV资源的关系以及PV资源和第一存储卷的关系。当容灾迁移模块1024建立的拓扑关系与记录同步模块1022同步的拓扑关系不一致时,可以确定记录模块106记录的容灾保护关系发生变化,容灾迁移模块1024可以执行相应的容灾保护操作。
具体地,容灾迁移模块1024可以调用存储API在第二数据中心200(例如是灾备数据中心)创建第二存储卷,该存储API具体可以是用于复制存储卷的API,相应地,第二存储卷为第一存储卷的复制存储卷。容灾迁移模块1024将第一存储卷中存储的应用的状态数据同步至第二数据中心200的第二存储卷。第二存储卷创建完成后,记录同步模块1022还可以将第二存储卷的信息(例如第二存储卷的标识、大小以及与第一存储卷的对应关系等)同步到记录模块106。
当用户对第一数据中心100的应用执行迁移操作时,第一数据中心100的记录模块106中迁移关系(由应用的资源的拓扑关系表征)会发生变化。第一数据中心100的准入控制器102中的容灾迁移模块1024检测到迁移关系变化时,可以调用存储API,基于第一存储卷在第二数据中心200创建第二存储卷,用于迁移应用的状态数据,进而实现应用的跨集群迁移。
当用户对第一数据中心100中处于容灾保护或迁移状态的应用的存储卷执行扩容或缩容操作时,准入控制器102中API拦截模块10262可以拦截用于扩容或缩容的API请求,API限制模块10264对该API请求所请求的扩容或缩容操作进行限制,例如可以指示API-server104拒绝执行上述API请求,从而保证第一数据中心100和第二数据中心200状态数据的一致性。
参见图3所示的准入控制器202的结构示意图,在图1基础上,图3重点展示了准入控制器202的结构,并进一步展示了准入控制器202与API-server204、记录模块206的连接关系。
具体地,准入控制器202包括记录同步模块2022、容灾迁移模块2024和API控制模块2026。其中,API控制模块2026可以包括API拦截模块20262和API限制模块20264和API重构模块20266。记录同步模块2022与记录模块206连接,用于同步记录模块206中记录的资源的拓扑关系。API拦截模块20262、API限制模块20264和API重构模块20266分别与API-server104连接。其中,API拦截模块20262用于拦截API请求,API重构模块20266用于重构API请求,API限制模块20264用于对请求操作应用的资源的API请求进行限制。
准入控制器202中的记录同步模块2022可以异步监听第一数据中心100中记录模块106记录的应用的资源的拓扑关系。其中,记录同步模块2022可以通过list/watch方式进行异步监听。当该拓扑关系变化时,记录同步模块2022可以动态更新该拓扑关系至第二数据中心200。
在应用容灾场景中,当第一数据中心100故障时,用户可以在第二数据中心200部署容灾应用。准入控制器202中API控制模块2026的API拦截模块20262对API-Server204接收到的API请求进行拦截,基于API请求中API属性和容灾保护关系确定该API请求是否为容灾应用的资源操作请求,若是,则API重构模块20266对API请求进行重构,具体是将API请求中容灾应用的资源关联的存储卷修改为第二存储卷,例如可以将API请求中资源关联的存储卷的标识修改为第二存储卷的标识。API-server204接收重构后的API请求,执行重构后的API请求,将容灾应用的资源关联的存储卷修改为第二存储卷,由此将容灾应用的资源与第二存储卷绑定,进而可以实现在第二数据中心200恢复应用。
在应用迁移场景中,用户可以在第二数据中心200部署迁移应用,第二数据中心200的准入控制器202中API拦截模块20262可以拦截API请求,API重构模块20266可以根据记录同步模块2022同步的应用资源的拓扑关系,将API请求中迁移应用的资源关联的存储卷修改为第二存储卷,具体是将API请求中存储卷的标识修改为第二存储卷的标识,得到重构后的API请求。API-server204执行重构后的API请求,将迁移应用的资源与第二存储卷绑定,从而实现基于第二存储卷还原应用。当第二数据中心200中迁移应用部署完成,还可以删除第一数据中心100中的应用,完成整个应用的跨集群迁移。
与第一数据中心100的准入控制器102类似,第二数据中心200的准入控制器202中的API拦截模块可以拦截API请求,API限制模块可以对用于请求操作容灾应用或迁移应用的资源的API请求进行限制,例如对请求对容灾应用的PV资源扩容的API请求进行限制,从而保证第一数据中心100和第二数据中心200状态数据的一致性。
基于本申请实施例提供的应用管理系统10,本申请实施例还提供了一种应用管理方法。下面结合附图对本申请实施例提供的应用管理方法进行说明。
参见图4所示的应用管理方法的流程图,该方法包括:
S402:第一数据中心100检测应用管理指示。当检测到应用管理指示时,执行S404,否则不执行S404。
具体地,第一数据中心100中准入控制器102可以检测记录模块106记录的容灾保护关系或迁移关系。其中,容灾保护关系、迁移关系可以通过应用的资源的拓扑关系表征。当容灾保护关系或者迁移关系发生变化时,则表征检测到应用管理指示。该应用管理指示包括应用容灾指示或应用迁移指示。容灾保护关系发生变化时,则第一数据中心100检测到应用容灾指示,迁移关系发生变化时,则第一数据中心100检测到应用迁移指示。
需要说明的是,应用管理指示可以是针对一个有状态应用,也可以是针对由多个有状态应用形成的集群。也即应用管理的粒度可以是单个应用,或者是多个应用的集群。本申请实施例的应用管理方法可以实现单个应用的容灾保护或迁移,也可以实现多个应用的集群的容灾保护或迁移。
S404:第一数据中心100基于第一存储卷在所述第二数据中心200创建第二存储卷。
具体地,第一数据中心100(例如是第一数据中心100中的准入控制器102)可以调用存储API,基于第一存储卷在第二数据中心200创建第二存储卷。其中,存储API可以是存储卷容灾系统的API,该API包括用于复制存储卷的API,第一数据中心100可以通过上述用于复制存储卷的API复制第一存储卷,得到第一存储卷的复制存储卷,即为第二存储卷。
针对迁移场景,为了避免状态数据丢失,第一数据中心100(例如是第一数据中心100中的准入控制器102)还可以停止部署在该第一数据中心100中的上述应用。
S406:第二数据中心200同步第一存储卷中应用的状态数据至第二存储卷。
状态数据具体是指服务端保存的、在客户端下一次请求时被使用的上下文。根据状态数据功能不同,可以将状态数据分为以下几种类型:持久性状态数据、配置状态数据、会话状态数据、连接状态数据、集群状态数据、日志数据等。
持久性状态数据在应用重启或宕机时被保存。配置状态数据包括数据库连接字符串等,通常保存在配置文件。会话状态数据是用户登录应用产生的一种数据,该数据例如可以是会话标识(session ID)。连接状态数据包括应用使用的有状态通信协议,例如websocket。集群状态数据包括应用以集群形式运行多个实例时集群内成员的状态和角色。日志数据包括应用运行产生的日志。
第二数据中心200(例如是第二数据中心200中的第二存储卷)可以远程同步第一数据中心100中第一存储卷存储的应用的状态数据,从而为后续的容灾恢复或者应用迁移提供支持。
S408:第一数据中心100将第二存储卷标识为不可用状态。
考虑到第一数据中心100发生故障的时间通常是不可预测的,因而用户触发对应用的容灾保护时,第一数据中心100在创建第二存储卷,且第二数据中心200将第一存储卷中应用的状态数据同步至上述第二存储卷后,第一数据中心100(例如是第一数据中心100中的准入控制器102)可以将第二存储卷标识为不可用状态。
需要说明的是,执行本申请实施例的应用管理方法可以不执行上述S408。例如在对应用进行迁移时,由于迁移时间可以是确定的,例如用户触发迁移操作后可以立即执行,因而第一数据中心200可以不执行上述S408,而是直接将第二存储卷标识为可用状态,以为后续应用迁移提供支持。
S410:第一数据中心100保存第一存储卷和第二存储卷的关联关系。
其中,应用的资源还包括存储卷。在创建第二存储卷后,应用的资源的拓扑关系还可以包括第一存储卷和第二存储卷的关联关系。第一数据中心100(例如是第一数据中心100中的记录模块106)可以保存该第一存储卷和第二存储卷的关联关系。
S412:第二数据中心200异步监听第一数据中心100中存储的容灾保护关系或迁移关系。当容灾保护关系或迁移关系变化时,执行S414。
第二数据中心200(例如是第二数据中心200中的准入控制器202)可以通过list-watch机制异步监听第一数据中心100(例如是第一数据中心100中记录模块106)存储的容灾保护关系或迁移关系。该容灾保护关系或迁移关系具体通过应用的资源的拓扑关系表征。当第二数据中心200检测到容灾保护关系或迁移关系变化时,执行S414。
S414:第二数据中心200更新容灾保护关系或迁移关系。
第二数据中心200同步第一数据中心100中存储的容灾保护关系或迁移关系,从而保证第一数据中心100和第二数据中心200中容灾保护关系或迁移关系的一致性。
S416:第二数据中心200恢复第二存储卷为可用状态。
在应用容灾场景中,当第一数据中心100故障时,第二数据中心200可以恢复第二存储卷为可用状态,以便为后续应用容灾恢复提供支持。需要说明的是,在其他可能的实现方式中,例如在应用迁移场景中,也可以不执行上述S416。
S418:第二数据中心200基于第二存储卷中应用的状态数据部署容灾应用或迁移应用。
当应用管理指示为应用容灾指示时,第二数据中心200可以在第一数据中心100故障时,基于第二存储卷中应用的状态数据部署容灾应用。当应用管理指示为应用迁移指示时,第二数据中心200可以在状态数据同步、迁移关系同步完成时,基于第二存储卷中应用的状态数据部署迁移应用。
具体地,用户可以通过客户端触发部署容灾应用或迁移应用的操作,客户端响应于该操作生成API请求,第二数据中心200(例如是第二数据中心200中的API-server204)可以接收API请求,第二数据中心200中记录有容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系,基于此,第二数据中心200可以确定该API请求是否用于请求操作容灾应用的资源或所述迁移应用的资源。当API请求用于请求操作容灾应用的资源或迁移应用的资源,例如是创建容灾应用的PV资源时,第二数据中心200可以修改API请求中资源关联的存储卷为第二存储卷,以对API请求进行重构,得到重构后的API请求。第二数据中心200执行上述重构后的API请求,将资源与第二存储卷绑定,进而实现基于第二存储卷中的状态数据部署容灾应用或迁移应用。
基于上述内容描述,本申请实施例提供的应用管理方法通过在应用的触发下如检测到应用管理指示时在第二数据中心创建第一存储卷的复制存储卷,并同步第一存储卷中应用的状态数据至复制存储卷,而不是由管理员手动定期触发,实现了状态数据的实时同步,解决了管理员手动定期备份状态数据导致在备份间隔期间应用数据难以保存、易于丢失的问题,为应用容灾或迁移提供了保障,降低了业务中断的几率,满足了对于业务持续性的需求
针对容灾场景,该方法支持自动部署用于容灾的复制存储卷,并且自动绑定复制存储卷至容灾应用中。整个容灾保护流程减少了用户手动介入,提升了容灾效率和容灾操作的便捷性。并且,在第一数据中心故障之前,仅需创建复制存储卷,无需创建容灾应用的资源,在故障恢复时再创建应用的资源,减少了第二数据中心软硬件资源占用,提升了整体资源使用效率,降低了容灾成本。
此外,上层的应用与下层的资源、存储卷等解耦,因此,用户无需修改有状态应用的部署形式,支持标准kubernetes有状态应用容灾,自动适配statefulset、operator有状态应用的部署形式,同时对helm部署方式高度适配,对用户部署操作不存在任何约束限制,支持的容灾场景丰富,具有较高可用性。
针对迁移场景,该方法支持有状态应用跨集群迁移,应用状态迁移和恢复均自动化完成,提升迁移效率。而且,与容灾场景类似,该方法支持标准kubernetes有状态应用迁移,支持statefulset、operator应用迁移,用户无需修改应用的部署方式,支持丰富的应用迁移场景,满足了不同应用迁移场景的需求。
为了使得本申请的技术方案更加清楚、易于理解,下面结合应用容灾场景和应用迁移场景分别对本申请的技术方案进行说明。其中,应用容灾场景包括对单个应用进行容灾,和对由多个应用形成的集群进行容灾。
参见图5所示的应用容灾方法的流程图,该容灾过程具体可以分为容灾保护和容灾恢复两个阶段。容灾保护是对生产数据中心(本实施例也可简称为生产中心)已部署好的应用创建容灾保护环境,容灾恢复是生产中心故障,有状态应用服务无法正常访问时,在灾备中心重新恢复应用,保证业务的连续性。该方法具体包括如下步骤:
S502:用户触发在生产中心kubernetes集群部署应用的操作。
S504:生产中心kubernetes集群创建应用的资源。
应用的资源可以包括pod资源、PV资源和PVC资源的至少一种。在一些可能的实现方式中,应用的资源还可以包括存储卷。
S506:生产中心kubernetes集群在生产中心存储环境中创建生产存储卷。
具体地,生产中心kubernetes集群可以通过调用存储API在生产中心存储环境创建生产存储卷。生产中心kubernetes集群通过创建应用的资源和生产存储卷实现在生产中心部署应用。该应用具体是有状态应用。
需要说明的是,上述S502至506为在生产中心部署应用的一种具体实现,在本申请实施例其他可能的实现方式中,也可以通过其他方式部署该应用,本申请实施例对此不作限定。
S508:用户使用应用容灾服务,在生产中心记录模块新增应用的容灾保护关系。
其中,该容灾保护关系可以通过应用的资源的拓扑关系表征。资源的拓扑关系可以包括pod资源和PVC资源的关系、PVC资源和PV资源的关系中的至少一种。应用的资源还可以包括存储卷,例如是生成存储卷。当该生产存储卷和其他存储卷关联时,容灾保护关系还可以包括生产存储卷和关联的存储卷的关联关系。需要说明,用户在添加容灾保护关系时,还可以添加类型字段,用于标识应用容灾保护。
S510:生产中心准入控制器检测容灾保护关系。当检测到容灾保护关系发生变化时,执行S512。
生产中心准入控制器可以遍历应用的资源,建立应用的资源的拓扑关系,然后将该拓扑关系与记录模块中记录的应用的资源的拓扑关系进行比较,从而检测容灾保护关系是否发生变化。当拓扑关系不同时,则表明容灾保护关系发生变化,生产中心准入控制器执行S512。
需要说明的是,生产中心记录模块和生产中心准入控制器是生产中心kubernetes集群中为了实现应用容灾或迁移等应用管理功能新增的功能模块,该功能模块仅仅是一种示意性地划分方式,在本申请实施例其他可能的实现方式中还可以包括其他划分方式。另外,与生产中心类似,灾备中心kubernetes集群还包括灾备中心记录模块和灾备中心准入控制器。
S512:生产中心准入控制器在灾备中心存储环境创建灾备存储卷。
具体地,生产中心准入控制器可以调用存储API在灾备中心存储环境创建灾备存储卷。该存储API具体可以是用于复制存储卷的API。生产中心准入控制通过调用上述用于复制存储的API复制生产存储卷,从而实现创建灾备存储卷。
S514:生产中心准入控制器更新生产存储卷和灾备存储卷的关联关系至生产中心记录模块。
容灾保护关系中还包括生产存储卷和灾备存储卷的关联关系,基于此,生产中心准入控制器更新生产存储卷和灾备存储卷的关联关系至记录容灾保护关系的生产中心记录模块。
S516:灾备中心准入控制器通过list/watch异步更新生产中心记录模块中的容灾保护关系至灾备中心。
S518:灾备中心记录模块从灾备中心准入控制器同步容灾保护关系。
S520:生产中心故障时,用户触发在灾备中心kubernetes集群部署容灾应用的操作。
S522:灾备中心准入控制器拦截来自于灾备中心kubernetes集群的API请求。
API请求是灾备中心kubernetes集群响应于用户触发的在灾备中心kubernetes集群部署容灾应用的操作所生成。
S524:灾备中心记录模块输入容灾保护关系至灾备中心准入控制器。
S526:灾备中心准入控制器基于容灾保护关系确定API请求操作的资源是容灾应用的资源时,对API请求进行重构,得到重构后的API请求。
具体地,灾备中心准入控制器基于API请求中API属性以及容灾保护关系描述的容灾应用的资源的拓扑关系,确定API请求操作的资源是否为容灾应用的资源。当灾备中心准入控制器确定API请求操作的资源是容灾应用的资源时,可以修改API请求中资源关联的存储卷,例如可以将API请求中资源关联的存储的标识修改为灾备存储卷的标识,从而得到重构后的API请求。
S528:灾备中心准入控制器向生产中心kubernetes集群发送重构后的API请求。
S530:灾备中心kubernetes集群执行重构后的API请求,以创建容灾应用的资源,将容灾应用的资源与灾备存储卷绑定,从而实现应用容灾。
其中,生产中心kubernetes集群包括原生的控制器和API-server,控制器可以创建容灾应用的资源,API-server可以将容灾应用的资源与灾备存储卷绑定。
接下来,参见图6所示的应用集群容灾方法的流程图,该容灾过程具体可以分为容灾保护和容灾恢复两个阶段。容灾保护是对生产数据中心(本实施例也可简称为生产中心)已部署好的应用集群创建容灾保护环境,容灾恢复是生产中心故障,有状态应用集群的服务无法正常访问时,在灾备中心重新恢复应用集群,保证业务的连续性。该方法具体包括如下步骤:
S602:生产中心kubernetes集群创建多个应用的资源。
应用的资源可以包括pod资源、PV资源和PVC资源的至少一种。在一些可能的实现方式中,应用的资源还可以包括存储卷。
S604:生产中心kubernetes集群在生产中心存储环境中创建生产存储卷。
S606:生产中心kubernetes集群完成多个应用形成的集群的部署。
S608:管理员使用集群应用容灾服务,在生产中心记录模块新增集群容灾保护关系。
S610:生产中心准入控制器检测集群容灾保护关系。当检测到集群容灾保护关系发生变化时,执行S612。
S612:生产中心准入控制器在灾备中心存储环境创建灾备存储卷。
S614:生产中心准入控制器更新生产存储卷和灾备存储卷的关联关系至生产中心记录模块。
S616:灾备中心准入控制器通过list/watch异步更新生产中心记录模块中的集群容灾保护关系至灾备中心。
S618:灾备中心记录模块从灾备中心准入控制器同步集群容灾保护关系。
S620:生产中心故障时,管理员触发在灾备中心kubernetes集群部署容灾应用集群的操作。
S622:灾备中心准入控制器拦截来自于灾备中心kubernetes集群的API请求。
S624:灾备中心记录模块输入集群容灾保护关系至灾备中心准入控制器。
S626:灾备中心准入控制器基于容灾保护关系确定API请求操作的资源是容灾应用集群的资源时,对API请求进行重构,得到重构后的API请求。
S628:灾备中心准入控制器向生产中心kubernetes集群发送重构后的API请求。
S630:灾备中心kubernetes集群执行重构后的API请求,以创建容灾应用集群的资源,将容灾应用集群的资源与灾备存储卷绑定,从而实现应用集群容灾。
基于图5、图6所示实施例,本申请的方案不仅可以用于基于容器部署的有状态应用容灾保护,同时也适用于包括多个有状态应用的集群容灾保护场景,如此可以提升容灾保护粒度,规避集群故障风险。在集群容灾场景中,集群管理员将集群容灾保护关系添加到生产中心记录模块中,将自动触发生产中心准入控制器进行容灾保护操作。生产中心准入控制器依次遍历集群中各应用的资源,获得资源的拓扑关系,在灾备中心创建复制存储卷。当生产中心故障时,管理员在灾备中心部署集群容灾应用,灾备中心的准入控制器拦截集群容灾应用资源请求,并将灾备存储卷自动绑定到容灾应用的资源,从而实现集群有状态应用的恢复,保证集群容灾粒度。
接下来,参见图7所示的应用迁移方法的流程图,该方法包括:
S702:用户触发在生产中心kubernetes集群部署应用的操作。
S704:生产中心kubernetes集群创建应用的资源。
S706:生产中心kubernetes集群在生产中心存储环境中创建生产存储卷。
S708:用户计划迁移应用至灾备中心时,新增迁移关系至生产中心记录模块。
其中,迁移关系可以通过应用的资源的拓扑关系进行表征。应用的资源的拓扑关系包括pod资源与PVC资源的关系、PVC资源与PV资源的关系中的至少一个。需要说明,用户在添加迁移关系时,还可以添加类型字段,用于标识应用迁移。
S710:生产中心准入控制器检测容灾保护关系。当检测到容灾保护关系发生变化时,执行S712。
生产中心准入控制器可以遍历应用的资源,建立应用的资源的拓扑关系,然后将该拓扑关系与记录模块中记录的应用的资源的拓扑关系进行比较,从而检测迁移关系是否发生变化。当拓扑关系不同时,则表明迁移关系发生变化,生产中心准入控制器执行S712。
S712:生产中心准入控制器将部署在生产数据中心的应用停止。
S714:生产中心准入控制器在灾备中心存储环境创建灾备存储卷。
具体地,生产中心准入控制器可以调用存储API在灾备中心存储环境创建灾备存储卷。该存储API具体可以是用于复制存储卷的API。生产中心准入控制通过调用上述用于复制存储的API复制生产存储卷,从而实现创建灾备存储卷。
S716:生产中心准入控制器更新生产存储卷和灾备存储卷的关联关系至生产中心记录模块。
迁移关系中还包括生产存储卷和灾备存储卷的关联关系,基于此,生产中心准入控制器更新生产存储卷和灾备存储卷的关联关系至记录迁移关系的生产中心记录模块。
S718:灾备中心准入控制器通过list/watch异步更新生产中心记录模块中的迁移关系至灾备中心。
S720:灾备中心记录模块从灾备中心准入控制器同步迁移关系。
S722:生产中心故障时,用户触发在灾备中心kubernetes集群部署迁移应用的操作。
S724:灾备中心准入控制器拦截来自于灾备中心kubernetes集群的API请求。
API请求是灾备中心kubernetes集群响应于用户触发的在灾备中心kubernetes集群部署迁移应用的操作所生成。
S726:灾备中心记录模块输入迁移关系至灾备中心准入控制器。
S728:灾备中心准入控制器基于迁移关系确定API请求操作的资源是迁移应用的资源时,对API请求进行重构,得到重构后的API请求。
具体地,灾备中心准入控制器基于API请求中API属性以及迁移关系描述的容灾应用的资源的拓扑关系,确定API请求操作的资源是否为容灾应用的资源。当灾备中心准入控制器确定API请求操作的资源是容灾应用的资源时,可以修改API请求中资源关联的存储卷,例如可以将API请求中资源关联的存储的标识修改为灾备存储卷的标识,从而得到重构后的API请求。
S730:灾备中心准入控制器向生产中心kubernetes集群发送重构后的API请求。
S732:灾备中心kubernetes集群执行重构后的API请求,以创建迁移应用的资源,将迁移应用的资源与灾备存储卷绑定,从而实现应用迁移。
其中灾备中心kubernetes集群包括原生的控制器和API-server,控制器可以创建容灾应用的资源,API-server可以将迁移应用的资源与灾备存储卷绑定。
S734:生产中心准入控制器删除已迁移应用的资源。
S736:生产中心准入控制器删除已迁移应用的生产存储卷。
基于图7所示实施例,本申请的方案不仅可以用于基于容器部署的有状态应用容灾场景,同时也适用于有状态应用迁移跨集群迁移场景。图7所示为跨集群迁移应用实施案例的运行流程。用户计划将生产中心的有状态应用迁移至灾备中心时,将迁移关系添加至生产中心的记录模块中。生产中心的准入控制器监控到记录模块发生变化,则先停止生产中心待迁移应用运行,然后在灾备中心中创建复制存储卷,用于保存应用数据和状态数据。灾备中心准入控制器异步更新记录模块。当用户在灾备中心部署迁移应用时,灾备中心的准入控制器拦截API请求,根据迁移关系对迁移应用的资源请求进行重构,从而将资源绑定至灾备存储卷以基于当前应用数据恢复应用。迁移应用在灾备中心部署完成后,将生产中心已迁移应用删除。
上文结合附图对本申请实施例提供的应用管理方法如应用容灾方法或应用迁移方法进行了介绍,下面结合附图对本申请实施例提供的应用管理系统进行详细说明。
参见图1所示的应用管理系统10的结构示意图,该应用管理系统10包括:
第一数据中心100,用于检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,所述第二存储卷为所述第一存储卷的复制存储卷;
第二数据中心200,用于同步所述第一存储卷中应用的状态数据至所述第二存储卷。
其中,第一数据中心100的内部结构可以参见图1及图2所示实施例相关内容描述,第二数据中心200的内部结构可以参见图1及图3所示实施例相关内容描述,在此不再赘述。
在一些可能的实现方式中,所述第一数据中心100还用于:
未检测到所述应用管理指示时,不创建所述第二存储卷。
在一些可能的实现方式中,所述应用管理指示包括应用容灾指示或应用迁移指示。
在一些可能的实现方式中,所述第二数据中心200还用于:
恢复所述第二存储卷为可用状态,基于所述第二存储卷中所述应用的状态数据部署容灾应用或迁移应用。
在一些可能的实现方式中,所述第二数据中心200记录有所述容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系;
所述第二数据中心200具体用于:
接收应用程序编程接口API请求;
当所述API请求用于请求操作所述容灾应用或所述迁移应用的资源时,重构所述API请求,重构后的API请求中所述资源关联的存储卷被修改为所述第二存储卷;
执行所述重构后的API请求,以将所述资源与所述第二存储卷绑定。
在一些可能的实现方式中,所述应用管理指示为应用容灾指示,所述第二数据中心还用于:
所述第一数据中心100故障时,创建所述容灾应用的资源。
在一些可能的实现方式中,所述应用管理指示为应用迁移指示,所述第一数据中心100还用于:
将部署在所述第一数据中心的所述应用停止。
在一些可能的实现方式中,所述第二数据中心200还用于:
当所述API请求用于请求对所述容灾应用或所述迁移应用的资源扩容或缩容时,拒绝执行所述API请求。
在一些可能的实现方式中,所述第二数据中心200还用于:
异步监听所述第一数据中心中所述应用的资源的拓扑关系,并同步所述拓扑关系至所述第二数据中心,以保证所述第一数据中心与所述第二数据中拓扑关系的一致性。
在一些可能的实现方式中,所述应用包括一个有状态应用或者由多个有状态应用形成的集群。
根据本申请实施例的应用管理系统10可对应于执行本申请实施例中描述的方法,并且应用管理系统10的各个组成部分的上述和其它操作和/或功能分别为了实现图4至图7所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机集群。该计算机集群可以是云环境、边缘环境或者终端设备中的至少一台计算机形成的计算机集群。该计算机集群具体用于实现如图1所示实施例中应用管理系统10的功能。
图8提供了一种计算机集群的结构示意图,如图8所示,计算机集群80包括至少一台计算机800,计算机800包括总线801、处理器802、通信接口803和存储器804。处理器802、存储器804和通信接口803之间通过总线801通信。
总线801可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器802可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口803用于与外部通信。例如,通信接口803可以用于接收API请求等等。
存储器804可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器804还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器804中存储有可执行代码,处理器802执行该可执行代码以执行前述应用管理方法。
具体地,在实现图1所示实施例的情况下,且图1实施例中所描述的应用管理系统10的各模块为通过软件实现的情况下,图1中各组成部分如各模块的软件或程序代码可以存储在存储器804中。处理器802执行存储器804中存储的各模块对应的程序代码,以执行前述应用管理方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用管理方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
所述计算机程序产品可以为一个软件安装包,在需要使用前述应用管理方法的任一方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (23)
1.一种应用管理系统,其特征在于,所述系统包括:
第一数据中心,用于检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,所述第二存储卷为所述第一存储卷的复制存储卷;
第二数据中心,用于同步所述第一存储卷中应用的状态数据至所述第二存储卷。
2.根据权利要求1所述的系统,其特征在于,所述第一数据中心还用于:
未检测到所述应用管理指示时,不创建所述第二存储卷。
3.根据权利要求1或2所述的系统,其特征在于,所述应用管理指示包括应用容灾指示或应用迁移指示。
4.根据权利要求1至3任一项所述的系统,其特征在于,所述第二数据中心还用于:
恢复所述第二存储卷为可用状态,基于所述第二存储卷中所述应用的状态数据部署容灾应用或迁移应用。
5.根据权利要求4所述的系统,其特征在于,所述第二数据中心记录有所述容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系;
所述第二数据中心具体用于:
接收应用程序编程接口API请求;
当所述API请求用于请求操作所述容灾应用或所述迁移应用的资源时,重构所述API请求,重构后的API请求中所述资源关联的存储卷被修改为所述第二存储卷;
执行所述重构后的API请求,以将所述资源与所述第二存储卷绑定。
6.根据权利要求5所述的系统,其特征在于,所述应用管理指示为应用容灾指示,所述第二数据中心还用于:
所述第一数据中心故障时,创建所述容灾应用的资源。
7.根据权利要求5所述的系统,其特征在于,所述应用管理指示为应用迁移指示,所述第一数据中心还用于:
将部署在所述第一数据中心的所述应用停止。
8.根据权利要求5至7任一项所述的系统,其特征在于,所述第二数据中心还用于:
当所述API请求用于请求对所述容灾应用或所述迁移应用的资源扩容或缩容时,拒绝执行所述API请求。
9.根据权利要求1至8任一项所述的系统,其特征在于,所述第二数据中心还用于:
异步监听所述第一数据中心中所述应用的资源的拓扑关系,并同步所述拓扑关系至所述第二数据中心,以保证所述第一数据中心与所述第二数据中拓扑关系的一致性。
10.根据权利要求1至9任一项所述的系统,其特征在于,所述应用包括一个有状态应用或者由多个有状态应用形成的集群。
11.一种应用管理方法,其特征在于,由应用管理系统执行,所述应用管理系统包括第一数据中心和第二数据中心,所述方法包括:
第一数据中心检测到应用管理指示,基于第一存储卷在所述第二数据中心创建第二存储卷,所述第二存储卷为所述第一存储卷的复制存储卷;
第二数据中心同步所述第一存储卷中应用的状态数据至所述第二存储卷。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第一数据中心未检测到所述应用管理指示时,不创建所述第二存储卷。
13.根据权利要求11或12所述的方法,其特征在于,所述应用管理指示包括应用容灾指示或应用迁移指示。
14.根据权利要求11至13任一项所述的方法,其特征在于,所述方法还包括:
所述第二数据中心恢复所述第二存储卷为可用状态,基于所述第二存储卷中所述应用的状态数据部署容灾应用或迁移应用。
15.根据权利要求14所述的方法,其特征在于,所述第二数据中心记录有所述容灾应用的资源的拓扑关系或所述迁移应用的资源的拓扑关系;
所述方法还包括:
接收应用程序编程接口API请求;
当所述API请求用于请求操作所述容灾应用或所述迁移应用的资源时,重构所述API请求,重构后的API请求中所述资源关联的存储卷被修改为所述第二存储卷;
执行所述重构后的API请求,以将所述资源与所述第二存储卷绑定。
16.根据权利要求15所述的方法,其特征在于,所述应用管理指示为应用容灾指示,所述方法还包括:
所述第一数据中心故障时,所述第二数据中心创建所述容灾应用的资源。
17.根据权利要求15所述的方法,其特征在于,所述应用管理指示为应用迁移指示,所述方法还包括:
所述第一数据中心将部署在所述第一数据中心的所述应用停止。
18.根据权利要求15至17任一项所述的方法,其特征在于,所述方法还包括:
当所述API请求用于请求对所述容灾应用或所述迁移应用的资源扩容或缩容时,所述第二数据中心拒绝执行所述API请求。
19.根据权利要求11至18任一项所述的方法,其特征在于,所述方法还包括:
所述第二数据中心异步监听所述第一数据中心中所述应用的资源的拓扑关系,并同步所述拓扑关系至所述第二数据中心,以保证所述第一数据中心与所述第二数据中拓扑关系的一致性。
20.根据权利要求11至19任一项所述的方法,其特征在于,所述应用包括一个有状态应用或者由多个有状态应用形成的集群。
21.一种计算机集群,其特征在于,所述计算机集群包括至少一台计算机,所述计算机包括处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令,以执行如权利要求11至20任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求11至20任一项所述的方法。
23.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求11至20任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110475607.5A CN115269260A (zh) | 2021-04-29 | 2021-04-29 | 应用管理系统及相关方法、装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110475607.5A CN115269260A (zh) | 2021-04-29 | 2021-04-29 | 应用管理系统及相关方法、装置、设备、介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269260A true CN115269260A (zh) | 2022-11-01 |
Family
ID=83745775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110475607.5A Pending CN115269260A (zh) | 2021-04-29 | 2021-04-29 | 应用管理系统及相关方法、装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269260A (zh) |
-
2021
- 2021-04-29 CN CN202110475607.5A patent/CN115269260A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220066892A1 (en) | Automatic configuration of a recovery service | |
US10073747B2 (en) | Reducing recovery time in disaster recovery/replication setup with multitier backend storage | |
US11409622B1 (en) | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator | |
CN103226502B (zh) | 一种数据灾备控制系统及数据恢复方法 | |
US8473692B2 (en) | Operating system image management | |
US9235482B2 (en) | Consistent data retrieval in a multi-site computing infrastructure | |
US11709743B2 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
US9882980B2 (en) | Managing continuous priority workload availability and general workload availability between sites at unlimited distances for products and services | |
US11550679B2 (en) | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
US9792150B1 (en) | Detecting site change for migrated virtual machines | |
US20120151095A1 (en) | Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device | |
CN113032085A (zh) | 云操作系统的管理方法、装置、服务器、管理系统及介质 | |
US20240045770A1 (en) | Techniques for using data backup and disaster recovery configurations for application management | |
US20240160538A1 (en) | Virtual machine failover management for geo-redundant data centers | |
JP2011209811A (ja) | 仮想マシンシステムおよび仮想マシン配置方法 | |
US20230315503A1 (en) | Snapshot-based virtual machine transfer across hypervisors | |
CN115269260A (zh) | 应用管理系统及相关方法、装置、设备、介质、产品 | |
EP3985495A1 (en) | Smart network interface card-based splitter for data replication | |
JP5947974B2 (ja) | 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法 | |
WO2016046951A1 (ja) | 計算機システム及びそのファイル管理方法 | |
US20240143454A1 (en) | System and techniques for backing up scalable computing objects | |
CN111142921A (zh) | 软件升级方法及装置 | |
US20240054052A1 (en) | Failover recovery techniques for multi cloud recovery | |
US12019618B2 (en) | Prechecking for non-disruptive update of a data management system | |
US20240241795A1 (en) | Disaster recovery techniques |
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 |