CN115878374A - 针对指派给租户的命名空间备份数据 - Google Patents
针对指派给租户的命名空间备份数据 Download PDFInfo
- Publication number
- CN115878374A CN115878374A CN202210425685.9A CN202210425685A CN115878374A CN 115878374 A CN115878374 A CN 115878374A CN 202210425685 A CN202210425685 A CN 202210425685A CN 115878374 A CN115878374 A CN 115878374A
- Authority
- CN
- China
- Prior art keywords
- tenant
- namespace
- container
- cluster
- tenants
- 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.)
- Granted
Links
- 230000010076 replication Effects 0.000 claims abstract description 14
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 23
- 230000005012 migration Effects 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 14
- 230000008878 coupling Effects 0.000 abstract description 4
- 238000010168 coupling process Methods 0.000 abstract description 4
- 238000005859 coupling reaction Methods 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000002085 persistent effect Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- -1 Heptio Chemical class 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013468 resource allocation Methods 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
- G06F11/1469—Backup restoration techniques
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- 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/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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]
-
- 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
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文描述的示例涉及针对指派给租户的命名空间备份数据,通常涉及容器集群的备份和恢复。根据一个示例,命名空间和租户之间的常规紧密耦合通过在容器平台内提供针对容器平台的每个租户的租户抽象而被移除,容器平台的每个租户共享容器集群的资源。给定租户的租户抽象包括指示容器集群中指派给给定租户的命名空间子集的信息。响应于经由容器平台的用户接口接收到对备份容器平台的特定租户的请求:容器平台确定指派给特定租户的命名空间子集;并且对于每个命名空间,使命名空间级备份/恢复工具在备份位置内备份针对命名空间的对象数据并且备份与针对命名空间内的每个集群复制单元的持久化卷声明相关联的数据。
Description
背景技术
命名空间是将容器集群(例如,Kubernetes集群)组织成虚拟子集群的一种方式。当不同的团队或项目共享容器集群(例如,Kubernetes集群)时,命名空间会有帮助。利用命名空间可以提供与组织、隔离、许可、资源控制和性能相关的好处。例如,通过使用与可能由容器编排引擎(例如,Kubernetes)提供的默认命名空间不同的命名空间,在他们自己的虚拟集群内组织不同团队或项目的集群资源,团队或项目可以在不同的命名空间中使用相同的资源名称而没有冲突。此外,对一个命名空间中的项目执行操作可以排除对其他命名空间的影响。
附图说明
此处描述的示例在附图中以示例而非限制的方式而被图示,其中相似的参考标号指代相似的元件。
图1示出了概念性地图示根据示例的容器平台和它可以利用的关联基础设施的框图。
图2示出了概念性地图示根据示例的容器平台对租户抽象的使用的框图。
图3示出了图示根据示例的备份处理的流程图。
图4示出了图示根据示例的恢复处理的流程图。
图5A示出了图示根据第一示例的用于支持租户存储的迁移的方法的框图。
图5B示出了图示根据第二示例的用于支持租户存储的迁移的方法的框图。
图5C示出了图示根据第三示例的用于支持租户存储的迁移的方法的框图。
图6示出了根据示例的计算机系统的框图。
具体实施方式
本文描述的示例通常涉及容器集群的备份和恢复。为了提供对示例性方面的透彻理解,阐述了许多具体细节。然而,对于本领域的技术人员来说显而易见的是,可以在没有这些具体细节中的一些的情况下实践本文描述的示例。
虽然在容器集群内使用多个命名空间有各种优势,但是目前,由于将命名空间和租户视为一回事,因此容器编排引擎(例如,Kubernetes)和备份和恢复工具(例如,Velero)分别在命名空间级执行(i)资源管理和隔离;以及(ii)备份和恢复操作。这种限制性约定排除了租户使用多个命名空间的租赁观念。
期望通过移除备份和恢复工具以及现有容器编排引擎内的租户和命名空间之间展现的紧密耦合来移除由现有容器编排引擎假定的租户和命名空间之间严格的一对一对准的常规观念,从而允许在租户级(在每个租户的基础上)执行资源管理和隔离以及备份和恢复操作等等,作为在命名空间级(在每个命名空间的基础上)支持此类操作的补充或替代。以这种方式,就租户包括多个命名空间而言,用户可以与关于哪些命名空间被指派给哪些租户的细节隔离。因此,用户无需例如为了确保与租户相关联的所有命名空间都被包括在备份中而跟踪指派给租户的命名空间,而是可以简单地以租户的粒度向容器平台发出请求以执行各种操作(例如,备份、恢复、迁移、克隆和/或复制)。
一般而言,本文描述的示例试图通过提供租户和命名空间之间的更灵活的关联来提供租户级的操作和管理,以便允许向租户指派一个或多个命名空间的灵活性等等。根据一个示例,通过在容器平台内提供针对容器平台的多个租户中的每个租户的租户抽象,而不需要命名空间和租户具有一一对应关系,多个租户共享容器集群的资源。针对给定租户的租户抽象可以包括指示容器集群的指派给给定租户的命名空间子集的信息,以及其他信息。响应于经由容器平台的用户接口接收到对备份多个租户中的特定租户的请求,容器平台可以确定命名空间中被指派给特定租户的那些命名空间。然后,对于每个命名空间,容器平台可以使命名空间级备份/恢复工具在备份位置内备份针对命名空间的对象数据,并且备份与针对命名空间内的每个集群复制单元的持久化卷声明相关联的数据。
术语
术语“连接”或“耦合”和相关术语在操作意义上被使用并且不一定限于直接连接或耦合。因此,例如,两个设备可以直接耦合,或者经由一个或多个中间媒体或设备而耦合。作为另一示例,设备可以以这样的方式耦合,即信息可以在它们之间传递,同时彼此之间不共享任何物理连接。基于本文提供的公开内容,本领域普通技术人员将了解根据前述定义存在连接或耦合的多种方式。
如果说明书陈述组件或特征、“可以”、“能够”或“可能”被包括或具有特性,则该特定组件或特征不一定需要被包括或具有该特性。
如在本文的描述和随后的权利要求中使用的,除非上下文另有明确指出,否则“一”、“一个”和“该”的含义包括复数引用。此外,除非上下文另有明确指出,如在本文的描述中使用的,“在……中”的含义包括“在……中”和“在……上”。
在说明书中对“一个示例”或“示例”的引用意味着结合该示例描述的特定特征、结构或特性可以被包括在至少一个实现中。短语“在一个示例中”的出现不一定都指同一示例。
在本文中使用的术语“组件”、“模块”、“系统”等旨在指代计算机相关实体。这样的组件、模块或系统可以是软件执行的通用处理器、硬件、固件或其组合的形式。例如,组件可以是但不限于在处理器上运行的过程、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在过程和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种非瞬态计算机可读介质中执行。例如根据具有一个或多个数据分组的信号,组件可以经由本地和/或远程过程进行通信(例如,数据从一个组件与在本地系统、分布式系统中的另一个组件交互,和/或跨诸如互联网之类的网络经由信号与其他系统交互)。
图1示出了概念性地图示根据示例的容器平台110和它可以利用的关联基础设施120的框图。在一个示例中,容器平台220表示多租户软件解决方案,其使得在容器集群(例如,集群130a-130n)内部署各种类型的环境变得更容易、更快和/或更具成本效益。例如,用户(例如,数据工程师、数据科学家、应用开发人员或DevOps团队的成员)可以在各种基础设施120(例如,计算、存储和联网)上(无论是在本地(on-premises)121、在(多个)公共云122中、还是在混合模型中或在边缘123处)部署大规模人工智能(AI)或大数据环境,包括但不限于:TensorFlow、Spark、Kafka和Hadoop。容器平台110的用户还可以在几分钟而不是几个月内创建针对机器学习(ML)、数据科学、和分析学的分布式环境。容器平台110可以包括自助服务供应体验,以递送数据科学团队需要的数据和工具,同时还提供企业级安全性并降低成本。
用户可以利用容器平台110来部署和管理容器集群(例如,集群130a-130n),包括来自本地121、(多个)公共云122和边缘123中的一个或多个中的多个主机,以用于运行和编排容器化应用。通常,容器技术是一种计算虚拟化范式,其中应用与依赖项和库一起被打包在容器中,以提供用于运行应用的隔离环境。这样的应用可以被称为容器化应用。许多容器(在舱(pod)中)可以运行在单个操作系统之上,但是每个容器本质上都与其他容器隔离。以这种方式,容器范式可以被理解为将操作系统虚拟化。容器可能比其他形式的虚拟化(诸如将硬件虚拟化的虚拟机)更轻量级。例如,每个虚拟机可能有自己的操作系统内核副本,而相比之下,多个容器可以共享操作系统内核。
在一些实现中,容器平台110直接在裸机上,即直接在主机硬件上编排调度和运行租户(例如,租户140a-140x)的应用的容器,而不在主机裸机硬件上运行的管理程序上运行的虚拟机内运行容器。在其他一些实现中,容器平台110编排在虚拟机中运行租户应用的容器。
在本文描述的各种示例中,容器平台110支持针对任意数目的如下命名空间的租户级操作(例如,备份、恢复、迁移、克隆和/或复制)和资源管理:通过拒绝具有一一对应关系的租户和命名空间的现有约定而可能被指派给租户的命名空间。以这种方式,容器平台110具有将容器集群的一个或多个命名空间指派给租户的灵活性。例如,如下文进一步描述的,租户140a从集群130a到集群130n的迁移150可以响应于接收到租户级迁移请求而被执行,租户级迁移请求指定租户标识符(ID)或租户名称,并且不需要请求的发起者知晓指派给租户140a的一个或多个命名空间。下面参考图2描述可以在容器平台110内实现的各种组件。
图2示出了概念性地图示根据示例的容器平台210对租户抽象(例如,租户抽象220)的使用的框图。在本示例的上下文中,用户209(例如,租户成员、租户管理员或平台管理员)可以向容器平台210发出请求执行各种租户级操作(例如,备份、恢复、迁移、克隆和/或复制)。例如,用户209可以发起对与指派给特定租户(例如,租户140a-140x之一)的命名空间相关联的对象数据和与针对命名空间内的每个集群复制单元相关联的持久性数据(例如,与每个集群复制单元的持久化卷声明相关联的数据)的备份。
在本示例的上下文中,容器平台210(其表示图1的容器平台110的非限制性示例)被示为包括用户接口211、容器平台(CP)管理器212、命名空间级备份/恢复引擎213,以及针对容器平台210的每个租户的租户抽象220。
命名空间级备份/恢复引擎213可以负责执行针对如下的操作(例如,备份、恢复、迁移、克隆和/或复制):容器集群(例如,集群230a-230n中的一个)中的源命名空间到指定的备份位置(例如,在云260内)、从现有备份到目标容器集群(例如,集群230a-230n之一)、和/或从容器集群中的源命名空间到目标容器集群。命名空间级备份/恢复引擎213的非限制性示例是开源工具Velero(以前叫Heptio Ark)。
用户接口(UI)211可以向容器平台的用户(例如,用户209)提供基于浏览器的接口,通过该接口可以呈现各种视图和仪表板。例如,UI 211可以向租户管理员提供集群范围的资源利用视图,包括中央处理单元(CPU)核心、节点存储、存储器、持久存储、租户存储和网络流量。与本文描述的示例相关,UI 211可以为用户提供选择或以其他方式指定要对其执行操作的租户或备份的能力。
CP管理器212可以负责路由和/或处理经由用户接口211接收的请求等等。例如,在本示例的上下文中,CP管理器212可以将与备份、恢复、迁移、克隆和/或复制操作相关的租户级请求转换为可以由命名空间级备份/恢复引擎213执行的相应的命名空间级请求。如以下参考图3至图4进一步描述的,CP管理器212还可以在所讨论的租户级操作完成之前或之后执行附加任务(例如,创建备份位置、重新创建先前存在的租户、和/或复制/镜像/复制不受容器编排引擎控制的租户存储)。
租户抽象220的实例可以针对容器平台的每个租户被创建,以组织它们相应的命名空间等等。取决于特定的实现,租户可以表示来自相同或者来自不同组织的业务单位、部门、团队或其他用户组。租户抽象220可以存储租户配置225。租户配置225可以包括(多个)命名空间226、资源分配227和其他租户特定信息。例如,租户配置可以包括关于文件系统挂载到租户存储的信息,该信息可供租户使用。
(多个)命名空间226可以表示指派给对应租户的命名空间的一个或多个命名空间标识符(ID)或名称的列表。通过维护与给定租户相关联的一个或多个命名空间的列表或集合,可以移除假定租户和命名空间之间的一一对应关系的限制性约定,从而移除在租户和命名空间之间的前紧密耦合。以这种方式,可以将容器集群的命名空间子集指派给要共享容器集群的资源的每个租户。
取决于特定实现,与租户配置225相关联的一些或全部信息(在本示例的上下文中被示为本地地存储在租户抽象220内)可以被存储在租户抽象220外部,例如存储在数据库中。在这种情况下,租户抽象220可以存储信息(例如,指针、地址或统一资源定位符(URL)),该信息指示在其中存储了有争议的租户配置信息的外部数据存储库或数据库。
本文描述的(例如,参考图1至图2)的各种组件(例如,集群、用户接口、CP管理器和命名空间级备份/恢复引擎)和本文描述的处理(例如,在下面参考图3至图4的流程图所描述的处理)可以以存储在机器可读介质上并由基于硬件的处理资源执行的可执行指令的形式(例如,微控制器、微处理器、(多个)中央处理单元核心、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)和/或其他类型电子电路的形式来实现。例如,该处理可以由各种形式的一个或多个计算机系统(例如,服务器、刀片式计算机、台式计算机、膝上型计算机)来执行,诸如在下面参考图6描述的计算机系统。
图3示出了图示根据示例的备份处理的流程图。该示例假设存在为共享容器集群(例如,集群130a-130n之一)的容器平台的多个租户中的每一个租户提供租户抽象(例如,租户抽象220)的容器平台(例如,容器平台110)。如上面所指出,针对给定租户的租户抽象可以包括指示指派给给定租户的容器集群的一个或多个命名空间的信息等等。
在框310处,接收对备份特定租户的请求。在一个示例中,该请求经由用户接口(例如,用户接口211)从用户(例如,用户209)接收并且由容器平台的管理组件(例如,CP管理器212)处理。取决于特定实现和所讨论的用户的许可,请求可以指定要为其备份相应的命名空间的多个租户。
在框320处,确定指派给特定租户的一个或多个命名空间。例如,管理组件可以向对应于特定租户的租户抽象查询指派给特定租户的命名空间列表。响应于命名空间列表的接收,管理组件可以创建备份位置,该备份位置指示备份数据/信息将被存储的地方。备份位置可以表示公共云存储内的位置(例如,亚马逊Web服务(AWS)简单存储服务(S3)备份位置或Google或Azure存储内的类似位置)。
在框330处,对于每个命名空间,使命名空间级备份/恢复工具(例如,命名空间级备份/恢复引擎213)备份针对命名空间的对象数据并且备份与持久化卷声明相关联的数据。对象数据可以包括与容器集群中的持久实体(例如,Kubernetes对象)相关联的数据,其表示容器集群的状态。与持久化卷声明相关联的数据可以表示被持久化到与容器集群相关联的存储的数据。在一个示例中,管理组件引导命名空间级备份/恢复工具执行将(在框320中确定的)与命名空间列表相关联的数据备份到特定备份位置(例如,在框320中创建的备份位置)。就其这部分而言,命名空间级备份恢复工具可以创建备份对象(例如,Kubernetes备份对象),用于存储针对所讨论的每个命名空间的对象数据,开始该备份以捕获针对所选命名空间的所有对象数据,然后将备份对象存储在远程位置(例如,云260)中。命名空间级备份/恢复工具还可以将与命名空间内的每个集群复制单元相关联的持久化数据备份到备份对象。例如,命名空间级备份/恢复工具可以备份与命名空间内的每个集群复制单元的持久化卷声明(PVC)相关联的数据。
虽然在本示例的上下文中,包括了许多列举的框,但是应当理解,示例可以包括在列举的框之前、之后和/或之间的附加框。类似地,在一些示例中,所列举的框中的一个或多个可以被省略或以不同顺序来执行。
图4示出了图示根据示例的恢复处理的流程图。在框410处,接收对恢复特定备份的请求。如上所述,该请求可以经由用户接口(例如,用户接口211)从用户(例如,用户209)接收并且可以由容器平台(例如,容器平台110)处理。该请求可以可选地指定租户、一个或多个命名空间和/或目的地/目标(例如,容器集群之一)。例如,用户可以指示他/她希望恢复特定备份内的哪些命名空间/租户。
在框420处,恢复操作可以由管理组件提交给命名空间级备份/恢复工具,其继而又可以使恢复对象(例如,Kubernetes恢复对象)被创建。然后,对于每个命名空间(例如,与特定备份相关联的那些命名空间之中仅在框410中被指定的那些命名空间或与特定备份相关联的所有命名空间),命名空间级备份/恢复工具执行针对命名空间的恢复过程,例如包括从备份位置提取与命名空间相关联的备份数据和与命名空间内的每个集群复制单元相关联的持久化数据。
在决策框430处,关于(多个)命名空间是否与容器平台的租户相关联做出确定。例如,管理组件可以通过查询租户抽象(例如,租户抽象220)来识别特定命名空间与特定租户的对应关系。替代地,管理组件可以查询在所讨论的集群内运行的容器平台代理,以检查与所讨论的(多个)命名空间相关联的租户标签。在任一情况下,如果确定(多个)命名空间与容器平台的租户相关联,则处理继续到框440;否则,恢复处理完成。
在框440处,取回在框430处确定为与命名空间相关联的租户的租户配置(例如,租户配置225)。例如,管理组件可以从对应的租户抽象或从租户抽象所指定的外部位置取回租户配置。
在决策框450处,确定所讨论的租户是否存在。如果是,则处理分支到框470;否则,处理继续到框460。根据一个实施例,可以参考在容器平台内维护的租户信息来做出该确定。取决于特定实现,容器集群命名空间可以包括注释,该注释指示命名空间指向的哪个租户(例如租户ID),正如容器平台所理解的(并被存储在CP数据库中)。
在框460处,可以重新创建租户并且可以采用经恢复的命名空间。例如,通过使用在框440处取回的租户配置,管理组件可以使用租户先前具有的相同配置重新创建新租户,并且可以采用恢复的命名空间。在一个实施例中,对租户采用命名空间是指在创建租户之前创建命名空间,随后容器平台将恢复的命名空间附加到租户或以其他方式在恢复的命名空间和租户之间形成关联。为了说明的目的,考虑一个场景,其中租户最初驻留在一个集群(例如,集群A)内并且正被恢复到不同的集群(例如,集群B)。在这种场景中,在集群A中,租户的命名空间被备份。然后,在集群B上,命名空间的恢复发生。在此时,可以检查命名空间注释以确定原始租户身份。使用该租户身份,可以搜索由容器平台所维护的数据库以确定原始租户是否仍然存在。如果是这样,那么原始租户配置可以被用来重新创建采用刚刚恢复的(多个)命名空间的新租户。
在框470处,租户存储可以被恢复。如上面所指出,租户存储可能不受容器编排引擎的控制。租户存储可以表示租户可用的私有存储,其对运行在(多个)租户命名空间内的容器/应用可见。替代地或另外地,租户存储可以存储应用配置、YAML Ain’t Markup(YAML)文件等,用户可以将其用于实例化/配置app等等目的。取决于特定实现,租户存储可以由管理组件以多种方式来恢复。例如,如下面参照图5A至图5C进一步描述的,租户存储可以通过创建新的文件系统挂载来恢复(例如,指向新的空存储区域,指向新的存储区域,当前存在于旧的集群上的租户存储的内容已被复制到该新的存储区域,或指向旧的集群上的当前存在的存储)。
尽管在本示例的上下文中,为现有租户(先前没有租户存储)恢复租户存储的可能性由框470在决策框450的“是”路径之后解决,但是在替代实施例中,恢复处理可以在决策框450的“是”路径之后终止,而不执行框470。
虽然在本示例的上下文中,包括了许多列举的框,但是应当理解,示例可以包括在列举的框之前、之后和/或之间的附加框。类似地,在一些示例中,所列举的框中的一个或多个可以被省略或以不同顺序来执行。
在某种程度上,当租户被恢复到新的集群时,命名空间级备份/恢复工具不会覆盖现有租户配置,期望用户在恢复之前清除适当的资源/命名空间是适当的;然而,在一个示例中,管理组件可以删除当前租户配置(例如,移除所有要被恢复的命名空间)以确保在恢复之前清除正被恢复的命名空间/资源。
为简洁起见,本文没有描述各种其他租户级操作(例如迁移、复制和克隆)的流程图,因为它们可以通过适当的备份和恢复操作的组合来实现。
图5A至图5C图示了当租户(例如,租户140a-140x中的一个)已经被迁移时用于恢复租户存储541的三个示例场景,例如,由于租户在第一集群上的备份(例如,集群130a-130n中的一个)和租户随后到第二集群(例如,集群130a-130n中的另一个)的恢复的组合。在图5A中描绘的示例的上下文中,租户存储541的恢复可以涉及管理组件(例如,CP管理器212)为指向新的空本地存储区域的第二集群创建新的文件系统挂载。现在转向图5B中描绘的示例,租户存储541的恢复可以涉及:管理组件创建指向新本地存储区域的第二集群的新文件系统挂载,当前存在于第一集群上的租户存储的内容已被复制到该新的本地存储区域。最后,在图5C中描绘的示例的上下文中,管理组件可以通过创建指向原始本地租户存储区域的第二集群的新文件系统挂载来恢复租户存储541。
图6示出了根据示例的计算机系统的框图。在图6中所图示的示例中,计算机系统600包括耦合到非瞬态机器可读介质620的处理资源610,该非瞬态机器可读介质620用指令来进行编码以执行本文所述的一个或多个过程。处理资源610可以包括微控制器、微处理器、(多个)CPU核心、(多个)GPU核心、ASIC、FPGA和/或适于从机器可读介质620取回和/或执行指令以执行与本文描述的各种示例相关的功能的其他硬件设备。另外或替代地,处理资源610可以包括用于执行本文描述的指令的功能性的电子电路系统。
机器可读介质620可以是适于存储可执行指令的任何有形介质。机器可读介质620的非限制性示例包括RAM、ROM、EEPROM、闪存、硬盘驱动器、光盘等。机器可读介质620可以被安置在计算机系统600内,如图6中所示,在这种情况下,可执行指令可以被视为“被安装”或“被嵌入”在计算机系统600上。替代地,机器可读介质620可以是便携式(例如,外部)存储介质,并且可以是“安装包”的一部分。存储在机器可读介质620上的指令可以可用于至少部分地实现本文描述的方法中的一个或多个。
在本示例的上下文中,机器可读介质620被编码有一组可执行指令630-660。应当理解,包括在一个框内的部分或全部可执行指令和/或电子电路在替代实现中可以被包括在图中所示的不同框中或被包括在未示出的不同框中。
指令630在执行时可以使处理资源610请求备份特定租户(例如,租户140a-140n之一)。在一个示例中,指令630可以可用于执行图3的框310。
指令640在执行时可以使处理资源610确定指派给特定租户的命名空间。在一个示例中,指令640可以可用于执行图3的框320。
指令650在执行时可以使处理资源610:针对每个命名空间,使命名空间级备份/恢复工具(例如,命名空间级备份/恢复引擎213)备份针对命名空间的对象数据并且备份与持久化卷声明相关联的数据。在一个示例中,指令650可以可用于执行图3的框330。
在前述描述中,阐述了许多细节以提供对本文公开的主题的理解。然而,实现可以在没有这些细节中的一些或全部的情况下实践。其他实现可以包括上述细节的修改、组合和变化。所附权利要求旨在涵盖这样的修改、组合和变化。
Claims (18)
1.一种由一个或多个计算机系统的一个或多个处理资源执行的方法,所述方法包括:
维护针对容器平台的多个租户中的每个租户的租户抽象,所述多个租户共享容器集群的资源,其中通过在针对所述多个租户中的给定租户的租户抽象内包括如下信息而不需要所述多个租户和所述容器集群的多个命名空间具有一一对应关系:指示指派给所述给定租户的所述多个命名空间的子集的信息;
经由所述容器平台的用户接口,接收对备份所述多个租户中的特定租户的请求;以及
响应于接收到所述请求:
由所述容器平台确定指派给所述特定租户的命名空间子集;以及
对于所述命名空间子集中的每个命名空间,使命名空间级备份/恢复工具在备份位置内备份针对所述命名空间的对象数据,并且备份与针对所述命名空间内的每个集群复制单元的持久化卷声明相关联的数据。
2.根据权利要求1所述的方法,其中所述命名空间子集包括多于一个命名空间。
3.根据权利要求1所述的方法,其中所述请求是所述特定租户从所述容器集群向第二容器集群的迁移操作的一部分,并且其中所述方法还包括:
对于所述一个或多个命名空间中的每个命名空间,使所述命名空间级备份/恢复工具:
将针对所述命名空间的对象数据从所述备份位置恢复到所述第二容器集群内的所述命名空间;以及
将与针对所述命名空间内的每个集群复制单元的所述持久化卷声明相关联的数据恢复到所述第二容器集群;以及
通过由所述容器平台在所述第二容器集群中创建新的文件系统挂载,来恢复针对所述特定租户的租户存储。
4.根据权利要求3所述的方法,其中所述新文件系统挂载指向空存储区域。
5.根据权利要求3所述的方法,其中所述新文件系统挂载指向新存储区域,针对所述特定租户的现有租户存储的内容已被复制到所述新存储区域。
6.根据权利要求3所述的方法,其中所述新文件系统挂载指向针对所述特定租户的现有租户存储。
7.一种系统,包括:
处理资源;以及
被耦合到所述处理资源的非瞬态计算机可读介质,在其中存储有指令,所述指令在由所述处理资源执行时,使所述处理资源:
维护针对容器平台的多个租户中的每个租户的租户抽象,所述多个租户共享容器集群的资源,其中通过在针对所述多个租户中的给定租户的租户抽象内包括如下信息而不需要所述多个租户和所述容器集群的多个命名空间具有一一对应关系:指示指派给所述给定租户的所述多个命名空间的子集的信息;
经由所述容器平台的用户接口,接收对备份所述多个租户中的特定租户的请求;以及
响应于接收到所述请求:
由所述容器平台确定指派给所述特定租户的命名空间子集;以及
对于所述命名空间子集中的每个命名空间,使命名空间级备份/恢复工具在备份位置内备份针对所述命名空间的对象数据,并且备份与针对所述命名空间内的每个集群复制单元的持久化卷声明相关联的数据。
8.根据权利要求7所述的系统,其中所述命名空间子集包括多于一个命名空间。
9.根据权利要求7所述的系统,其中所述请求是所述特定租户从所述容器集群向第二容器集群的迁移操作的一部分,并且其中所述指令还使所述处理资源:
对于所述一个或多个命名空间中的每个命名空间,使所述命名空间级备份/恢复工具:
将针对所述命名空间的对象数据从所述备份位置恢复到所述第二容器集群内的所述命名空间;以及
将与针对所述命名空间内的每个集群复制单元的所述持久化卷声明相关联的数据恢复到所述第二容器集群;以及
通过由所述容器平台在所述第二容器集群中创建新的文件系统挂载,来恢复针对所述特定租户的租户存储。
10.根据权利要求9所述的系统,其中所述新文件系统挂载指向空存储区域。
11.根据权利要求9所述的系统,其中所述新文件系统挂载指向新存储区域,针对所述特定租户的现有租户存储的内容已被复制到所述新存储区域。
12.根据权利要求9所述的系统,其中所述新文件系统挂载指向针对所述特定租户的现有租户存储。
13.一种存储指令的非瞬态机器可读介质,所述指令在由计算机系统的处理资源执行时,使所述处理资源:
维护针对容器平台的多个租户中的每个租户的租户抽象,所述多个租户共享容器集群的资源,其中通过在针对所述多个租户中的给定租户的租户抽象内包括如下信息而不需要所述多个租户和所述容器集群的多个命名空间具有一一对应关系:指示指派给所述给定租户的所述多个命名空间的子集;
经由所述容器平台的用户接口,接收对备份所述多个租户中的特定租户的请求;以及
响应于接收到所述请求:
由所述容器平台确定指派给所述特定租户的命名空间子集;以及
对于所述命名空间子集中的每个命名空间,使命名空间级备份/恢复工具在备份位置内备份针对所述命名空间的对象数据,并且备份与针对所述命名空间内的每个集群复制单元的持久化卷声明相关联的数据。
14.根据权利要求13所述的非瞬态机器可读介质,其中所述命名空间子集包括多于一个命名空间。
15.根据权利要求11所述的非瞬态机器可读介质,其中所述请求是所述特定租户从所述容器集群向第二容器集群的迁移操作的一部分,并且其中所述指令还使所述处理资源:
对于所述一个或多个命名空间中的每个命名空间,使所述命名空间级备份/恢复工具:
将针对所述命名空间的对象数据从所述备份位置恢复到所述第二容器集群内的所述命名空间;以及
将与针对所述命名空间内的每个集群复制单元的所述持久化卷声明相关联的数据恢复到所述第二容器集群;以及
通过由所述容器平台在所述第二容器集群中创建新的文件系统挂载,来恢复针对所述特定租户的租户存储。
16.根据权利要求15所述的非瞬态机器可读介质,其中所述新文件系统挂载指向空存储区域。
17.根据权利要求15所述的非瞬态机器可读介质,其中所述新文件系统挂载指向新存储区域,针对所述特定租户的现有租户存储的内容已被复制到所述新存储区域。
18.根据权利要求15所述的非瞬态机器可读介质,其中所述新文件系统挂载指向针对所述特定租户的现有租户存储。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/485,910 | 2021-09-27 | ||
US17/485,910 US11693742B2 (en) | 2021-09-27 | 2021-09-27 | Backing up data for a namespace assigned to a tenant |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878374A true CN115878374A (zh) | 2023-03-31 |
CN115878374B CN115878374B (zh) | 2024-03-05 |
Family
ID=85476942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210425685.9A Active CN115878374B (zh) | 2021-09-27 | 2022-04-21 | 针对指派给租户的命名空间备份数据 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11693742B2 (zh) |
CN (1) | CN115878374B (zh) |
DE (1) | DE102022108863A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022182577A (ja) * | 2021-05-28 | 2022-12-08 | 株式会社日立製作所 | ストレージリストアシステム、ストレージリストア方法、及びストレージリストアプログラム |
US11693742B2 (en) * | 2021-09-27 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Backing up data for a namespace assigned to a tenant |
US20230409730A1 (en) * | 2022-06-16 | 2023-12-21 | Sap Se | Native multi-tenancy for database system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200012443A1 (en) * | 2018-07-05 | 2020-01-09 | Red Hat, Inc. | Flexible deprovisioning of distributed storage |
CN110990150A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 容器云平台的租户管理方法、系统、电子设备及存储介质 |
WO2021097397A1 (en) * | 2019-11-17 | 2021-05-20 | Trilio Data, Inc. | Container-based application data protection method and system |
CN113132295A (zh) * | 2019-12-30 | 2021-07-16 | 北京懿医云科技有限公司 | 集群内网访问外网的方法及装置、存储介质、电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220147391A1 (en) * | 2020-11-12 | 2022-05-12 | Trilio Data, Inc. | Cloud Resource Monitor and Interface Method and System for Containerized Applications |
US11693742B2 (en) * | 2021-09-27 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Backing up data for a namespace assigned to a tenant |
US20230148158A1 (en) * | 2021-11-09 | 2023-05-11 | Diamanti Inc. | Method and system for managing cloud resources |
-
2021
- 2021-09-27 US US17/485,910 patent/US11693742B2/en active Active
-
2022
- 2022-04-12 DE DE102022108863.4A patent/DE102022108863A1/de active Pending
- 2022-04-21 CN CN202210425685.9A patent/CN115878374B/zh active Active
-
2023
- 2023-06-02 US US18/328,030 patent/US12026066B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200012443A1 (en) * | 2018-07-05 | 2020-01-09 | Red Hat, Inc. | Flexible deprovisioning of distributed storage |
CN110990150A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 容器云平台的租户管理方法、系统、电子设备及存储介质 |
WO2021097397A1 (en) * | 2019-11-17 | 2021-05-20 | Trilio Data, Inc. | Container-based application data protection method and system |
CN113132295A (zh) * | 2019-12-30 | 2021-07-16 | 北京懿医云科技有限公司 | 集群内网访问外网的方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
DE102022108863A1 (de) | 2023-03-30 |
CN115878374B (zh) | 2024-03-05 |
US20230315584A1 (en) | 2023-10-05 |
US12026066B2 (en) | 2024-07-02 |
US11693742B2 (en) | 2023-07-04 |
US20230099014A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249956B2 (en) | Scalable distributed storage architecture | |
US9871851B2 (en) | Migrating private infrastructure services to a cloud | |
US11500814B1 (en) | Chain file system | |
US11748006B1 (en) | Mount path management for virtual storage volumes in a containerized storage environment | |
US8478801B2 (en) | Efficient reconstruction of virtual disk hierarchies across storage domains | |
CN115878374B (zh) | 针对指派给租户的命名空间备份数据 | |
US10834190B2 (en) | Provisioning of clustered containerized applications | |
US9521194B1 (en) | Nondeterministic value source | |
US11070419B2 (en) | Methods and systems to troubleshoot and localize storage failures for a multitenant application run in a distributed computing system | |
US10042711B1 (en) | Distributed data protection techniques with cloning | |
US20200019468A1 (en) | Network configuration method to allow access to the backup and restores to mtrees on a clustered backup appliance | |
US20120151095A1 (en) | Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device | |
US20130132945A1 (en) | Virtual machine updates | |
US10466991B1 (en) | Computing instance software package installation | |
CN106777394B (zh) | 一种集群文件系统 | |
US11042522B2 (en) | Resolving versions in an append-only large-scale data store in distributed data management systems | |
US8826305B2 (en) | Shared versioned workload partitions | |
US20200042393A1 (en) | Efficient transfer of copy-on-write snapshots | |
US10831520B2 (en) | Object to object communication between hypervisor and virtual machines | |
US10701176B1 (en) | Messaging using a hash ring with host groups | |
US12081389B1 (en) | Resource retention rules encompassing multiple resource types for resource recovery service | |
US20230103888A1 (en) | Optimization of file system snapshot performance in hybrid storage deployments |
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 |