CN114461149B - 一种基于K8s的分布式数据存储方法及装置 - Google Patents

一种基于K8s的分布式数据存储方法及装置 Download PDF

Info

Publication number
CN114461149B
CN114461149B CN202210121301.4A CN202210121301A CN114461149B CN 114461149 B CN114461149 B CN 114461149B CN 202210121301 A CN202210121301 A CN 202210121301A CN 114461149 B CN114461149 B CN 114461149B
Authority
CN
China
Prior art keywords
stored
available area
resource
resources
image
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
Application number
CN202210121301.4A
Other languages
English (en)
Other versions
CN114461149A (zh
Inventor
杨朋辉
张吉坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mgjia Beijing Technology Co ltd
Original Assignee
Mgjia Beijing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mgjia Beijing Technology Co ltd filed Critical Mgjia Beijing Technology Co ltd
Priority to CN202210121301.4A priority Critical patent/CN114461149B/zh
Publication of CN114461149A publication Critical patent/CN114461149A/zh
Application granted granted Critical
Publication of CN114461149B publication Critical patent/CN114461149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于K8s的分布式数据存储方法及装置,所述方法包括:在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;在所述目标可用区对应的映像池中创建RBD映像;创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。将存储与计算放置在同一可用区,从而缩短数据传输路径,减少跨可用区数据传输量,提升IO性能。进而可以保证分布式应用和服务的性能较高,同时使得硬件资源被充分利用,减少了资源的浪费。

Description

一种基于K8s的分布式数据存储方法及装置
技术领域
本发明涉及分布式数据处理技术领域,具体涉及一种基于K8s的分布式数据存储方法及装置。
背景技术
Kubernetes,简称K8s,是用于自动部署,扩展和管理容器化应用程序的开源系统。K8s将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现,常用于大规模分布式应用和服务的容器云编排方案。Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统,常用于大规模云存储方案。K8s、Ceph二者经常结合使用,通过一个外部的存储供应程序,动态创建RBD映像,并将这些RBD映像映射为K8s工作节点上的块设备,从而被Pod挂载使用。在K8s中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的管理、创建、计划的最小单元。
为了保障分布式应用和服务的高效可用性,K8s和Ceph在实际应用中会做跨可用区(Available Zone,AZ)部署。而可用区之间通常存在一定物理距离,如果计算资源和存储资源位于不同可用区,则会因为网络延迟导致IO性能下降,进而导致分布式应用和服务的性能下降,硬件资源无法被充分利用而造成浪费。
发明内容
有鉴于此,本发明提供了一种基于K8s的分布式数据存储方法及装置,以解决现有技术中当计算资源和存储资源位于不同可用区,导致的IO性能下降及分布式应用和服务的性能下降,硬件资源无法被充分利用而造成浪费的技术问题。
第一方面,根据本发明实施例提供的一种基于K8s的分布式数据存储方法,所述方法包括如下步骤:
在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
在所述目标可用区对应的映像池中创建RBD映像;
创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。
优选地,所述基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,包括:
根据所述待存储资源的标识信息,创建持久卷申明信息并确定对应的需求方Pod;
获取所述Pod所在的节点信息,所述节点信息包括可用区的标识信息;
基于所述节点信息确定待存储资源的目标可用区。
优选地,所述在所述目标可用区对应的映像池中创建RBD映像,包括:
基于所述待存储资源、请求信息、持久卷申明信息确定存储类别;
基于所述存储类别确定预定义映射关系;
根据所述预定义映射关系,在目标可用区对应的映像池中创建RBD映像。
优选地,所述创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源,包括:
基于所述持久卷申明信息创建持久卷;
将所述持久卷和所述RBD映像绑定。
优选地,所述基于K8s的分布式数据存储方法,还包括:
为所述持久卷对象添加节点亲和性。
优选地,所述基于K8s的分布式数据存储方法,还包括:
将第一可用区内存储的数据备份至第二可用区。
优选地,所述基于K8s的分布式数据存储方法,还包括:
当第一可用区对应的主机宕机时,启动第二可用区对应的主机;
通过第一可用区的K8s节点调用第二可用区对应的存储资源,执行第一可用区的K8s节点对应的数据操作。
第二方面,根据本发明实施例提供的一种基于K8s的分布式数据存储装置,所述装置至少包括如下模块:
分区模块,用于在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
获取模块,用于获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
寻区模块,用于基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
虚拟模块,用于在所述目标可用区对应的映像池中创建RBD映像;
建卷模块,用于创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。
第三方面,根据本发明实施例提供的一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而实现第一方面任一项所述的基于K8s的分布式数据存储方法。
第四方面,根据本发明实施例提供的一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现第一方面任一项所述的基于K8s的分布式数据存储方法。
本发明实施例提供的基于K8s的分布式数据存储方法及装置,至少具有如下有益效果:
本发明实施例提供的基于K8s的分布式数据存储方法及装置,可以通过在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点,在获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息后,基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,其中目标可用区为对应带存储资源的需求Pod所在的计算节点相匹配的可用区,从而在目标可用区内创建持久卷以存储待存储资源,保证计算节点和存储资源属于同一可用区,进而可以使得计算节点与存储资源之间的数据传输通道为高效通道,减少由于物理距离导致的网络延迟,保证计算节点与存储资源间的数据传输性能,,保证数据传输效率相对较高,进而可以保证分布式应用和服务的性能较高,同时使得硬件资源被充分利用,减少了资源的浪费。将存储与计算放置在同一可用区,从而缩短数据传输路径,减少跨可用区数据传输量,提升IO性能。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为分布式数据传输结构示意图;
图2为本发明实施例1中基于K8s的分布式数据存储方法的一个具体示例的流程图;
图3为本发明实施例1中基于K8s的分布式数据存储方法的另一个具体示例的流程图;
图4为本发明实施例1中基于K8s的分布式数据存储方法的再一个具体示例的流程图;
图5为本发明实施例2中基于K8s的分布式数据存储装置的一个具体示例的原理框图;
图6为本发明实施例3中一种计算机设备的一个具体示例的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
虽然下文描述的过程包括以特定的顺序出现的多个操作,但是应该清楚地了解到,这些过程也可以包括更多或者更少的操作,这些操作可以顺序执行或者并行执行。
实施例1
为了保障分布式应用和服务的高效可用性,Kubernetes和Ceph在实际应用中会做跨可用区(Available Zone,AZ)部署,参见图1所示,在分布式存储集群中存在较多的且相对分散的存储块即图所示的“ceph osd”,其分别位于不同的可用区(Available Zone,AZ)。而可用区之间通常存在一定物理距离,如图1所示,可用区1和可用区2之间存在一定的物理距离,可用区2和可用区3之间存在一定的物理距离。如果位于可用区1的K8S计算节点1,想要将待存储资源存储到位于可用区2的存储块上时,亦或是计算节点1想要访问到位于可用区2的存储块内的资源数据时,由于可用区1和可用区2之间存在一定的物理距离,由于网络延迟,会导致计算节点1到位于可用区2的存储块的数据传输性能下降,计算节点1与位于可用区2的存储块之间的数据传输通道为低效通道,进而导致分布式应用和服务的性能下降,硬件资源无法被充分利用而造成浪费。
针对上述场景中出现的分布式应用和服务的性能下降,硬件资源无法被充分利用而造成浪费的问题,本实施例提供一种基于K8s的分布式数据存储方法,参见图2所示,所述基于K8s的分布式数据存储方法包括如下步骤:
步骤S101、在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
步骤S102、获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
步骤S103、基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
步骤S104、在所述目标可用区对应的映像池中创建RBD映像;
步骤S105、创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。
在上述实施方式中,具体地,在启动分布式存储集群和基于K8s的计算节点后,在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s计算节点,为每个计算节点添加可用区标识,每个可用区对应一个映像池,每个映像池对应一个存储池。获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息,K8s StatefulSet在存储资源时,会添加持久卷的声明(PVC:Persistent Volume Claim),并指定对应的存储类型,根据获取到的基于K8s StatefulSet的待存储资源及待存储资源的标识信息,其中待存储资源的标识信息及对应的资源存储的需求方Pod所在的计算节点的标识信息,基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,换句话说即就是确定存储所述待存储资源的对应的Pod对应的计算节点所在的可用区为目标可用区,在确定目标可用区后,在所述目标可用区对应的映像池中创建RBD映像,并创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。
举例来说,如图1所示,在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点,分别在可用区1-3中创建一个映像池,每个可用区对应一个映像池,每个映像池对应一个存储池,其中每个存储池中存在至少一个存储块,图1中示意出每个存储池中的两个存储块,每个可用区分别示意出一个与之对应的K8s计算节点,为每个计算节点添加可用区标识,即计算节点1携带可用区1的标识信息,计算节点2携带可用区2的标识信息,计算节点3携带可用区3的标识信息。获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息,根据所述待存储资源的标识信息,创建持久卷申明信息并确定对应的需求方Pod;获取所述Pod所在的计算节点的标识信息,所述计算节点的标识信息中包括对应的可用区的标识信息。例如建持久卷申明信息并确定对应的需求方Pod存在于计算节点1中,即获取该Pod所在的计算节点1的标识信息,并确定对应的可用区为可用区1,并确定带存储资源的目标可用区为可用区1。在确定目标可用区后,在可用区1对应的映像池中创建RBD映像,并在可用区1对应的存储池中创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。通过确定待存储对应的需求方Pod,并确定对应的计算节点所在的可用区1,从而确定目标可用区创建持久卷,即就是,确定待存储资源的需求Pod所在的计算节点,若计算节点则在同一个可用区创建持久卷以存储资源,即确定计算节点与用于存储资源的存储块属于同一个可用区,保证计算节点与存储资源之间的数据传输通道为高效通道,保证数据传输效率相对较高,进而可以保证分布式应用和服务的性能较高,同时使得硬件资源被充分利用,减少了资源的浪费。将存储与计算放置在同一可用区,从而缩短数据传输路径,减少跨可用区数据传输量,提升IO性能。
在上述实施方式中,通过在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点,在获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息后,基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,其中目标可用区为对应带存储资源的需求Pod所在的计算节点相匹配的可用区,从而在目标可用区内创建持久卷以存储待存储资源,保证计算节点和存储资源属于同一可用区,进而可以使得计算节点与存储资源之间的数据传输通道为高效通道,减少由于物理距离导致的网络延迟,保证计算节点与存储资源间的数据传输性能,保证数据传输效率相对较高,进而可以保证分布式应用和服务的性能较高,同时使得硬件资源被充分利用,减少了资源的浪费。
参见图3所示,在一个实施方式中,步骤S103、基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,包括:
步骤S1031、根据所述待存储资源的标识信息,创建持久卷申明信息并确定对应的需求方Pod;
步骤S1032、获取所述Pod所在的节点信息,所述节点信息包括可用区的标识信息;
步骤S1033、基于所述节点信息确定待存储资源的目标可用区。
参见图4所示,在一个实施方式中,步骤S104、所述在所述目标可用区对应的映像池中创建RBD映像,包括:
步骤S1041、基于所述待存储资源、请求信息、持久卷申明信息确定存储类别;
步骤S1042、基于所述存储类别确定预定义映射关系;
步骤S1043、根据所述预定义映射关系,在目标可用区对应的映像池中创建RBD映像。
在上述实施方式中,具体地,根据待存储资源的标识信息,进而确定对应的需求方Pod,结合存储资源的需求创建持久卷申明信息,在创建持久卷声明信息时会制定对应的存储类别(SC:StorageClass),根据存储类别确定预定义映射关系,创建RBD映像以对创建与RBD映像绑定的持久卷。举例来说,存储类别资源指定块存储供应程序(rbd-provisioner),则通过控制修改块存储供应程序中对应的功能,以获取确定的需求方Pod对应的计算节点的标识信息,其中,计算节点的标识信息中包括对应的可用区的标识信息,进而确定带存储资源的目标可用区对应为需求方Pod对应的计算节点所在的可用区,以便于后续讲带存储资产资源存储于与需求方Pod相同的可用区,以便于对应的需求方Pod直接访问对应的存储资源,从而充分利用同一可用区内的高效数据传输通道,提升IO性能。进一步地提高了分布式应用和服务的性能,同时使得硬件资源被充分利用,减少了资源的浪费。
在一个实施方式中,所述创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源,包括:
基于所述持久卷申明信息创建持久卷;
将所述持久卷和所述RBD映像绑定。
在上述实施方式中,具体地,根据持久卷申明信息对应的持久卷需求,创建对应的持久卷,并在创建持久卷后将创建的持久卷和对应的RBD映像绑定。通过在对应的可用区内创建对应的持久卷,进而使得让待存储的数据存储至与计算节点相同的可用区内,通过将创建的持久卷和对应的RBD映像进行绑定,以便于对应的需求方Pod直接访问对应的存储资源,从而充分利用同一可用区内的高效数据传输通道,提升IO性能。进一步地提高了分布式应用和服务的性能,同时使得硬件资源被充分利用,减少了资源的浪费。
在一个实施方式中,所述基于K8s的分布式数据存储方法,还包括:
为所述持久卷对象添加节点亲和性。
在上述实施方式中,具体地,为所述持久卷添加节点亲和性,避免Pod重启后转移到其他可用区节点启动。为持久卷对象添加对应可用区的节点亲和性,绑定到该持久卷的Pod则会满足该亲和性的配置。充分利用同一可用区内的高效数据传输通道,提升IO性能。进一步地提高了分布式应用和服务的性能,同时使得硬件资源被充分利用,减少了资源的浪费。
在一个实施方式中,所述基于K8s的分布式数据存储方法,还包括:
将第一可用区内存储的数据备份至第二可用区。
在上述实施方式中,具体地,在分布式存储集群中创建属于不同可用区的印象池,通过crush map定义实现存储位置的选择,如果同时需要跨可用区数据复制,则可以将主数据放入指定的可用区中的存储块中,其中制定可以区可以为第一可用区,则备份数据则放入其它可用区即第二可用于,客户端只与主数据所在可用区对应的计算节点通信,即客户端与第一可用区内的计算节点进行通信,若在第一可用区内存储的资源可以正常访问时,则第一可用区的计算节点采用高效通道直接访问第一可用区内存储的资源,若高效通道出现异常亦或是第一可用区的存储资源丢失时,则可以控制第一可用区的计算节点访问第二可用区备份的数据。
在一个实施方式中,所述基于K8s的分布式数据存储方法,还包括:
当第一可用区对应的主机宕机时,启动第二可用区对应的主机;
通过第一可用区的K8s节点调用第二可用区对应的存储资源,执行第一可用区的K8S节点对应的数据操作。
在上述实施方式中,具体地,当第一可用区对应的主机宕机时,则启动第二可用区对应的主机,通过第一可用区的K8s节点调用第二可用区对应的存储资源,执行第一可用区的K8S节点对应的数据操作,进而进一步地提高了保证分布式应用和服务的性能。
实施例2
本实施例提供一种基于K8s的分布式数据存储装置,本实施例以该基于K8s的分布式数据存储装置应用于上述实施例1所述的基于K8s的分布式数据存储方法进行说明。该基于K8s的分布式数据存储装置用于将计算资源和存储资源放置于同一个可用区,以提高了IO性能,提高分布式应用的服务性能,如图5所示,该基于K8s的分布式数据存储装置至少包括以下几个模块:
分区模块51,用于在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
获取模块52,用于获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
寻区模块53,用于基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
虚拟模块54,用于在所述目标可用区对应的映像池中创建RBD映像;
建卷模块55,用于创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源。
本申请实施例提供的基于K8s的分布式数据存储装置,可用于如上实施例1中执行的基于K8s的分布式数据存储方法,相关细节参考上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
需要说明的是:上述实施例中提供的基于K8s的分布式数据存储装置在进行基于K8s的分布式数据存储时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将基于K8s的分布式数据存储装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于K8s的分布式数据存储装置与基于K8s的分布式数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实施例3
请参阅图6所示,本发明实施方式还提供了一种计算机设备,该计算机设备可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算机设备。该计算机设备可以包括,但不限于,处理器和存储器,其中处理器和存储器可以通过总线或者其他方式连接。
处理器可以为中央处理器(Central Processing Unit,CPU)也可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、图形处理器(GraphicsProcessing Unit,GPU)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)或者其他专用的深度学习协处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行上述方法实施方式中的方法。
本发明实施方式还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述方法实施方式中的方法。其中,所述非暂态计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述非暂态计算机可读存储介质还可以包括上述种类的存储器的组合。
本领域内的技术人员应明白,本发明的实施方式可提供为方法、装置、计算机设备或非暂态计算机可读存储介质均可涉及或包含计算机程序产品。
因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述实施方式的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施方式中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
显然,以上所述实施方式仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种基于K8s的分布式数据存储方法,其特征在于,所述方法包括如下步骤:
在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
在所述目标可用区对应的映像池中创建RBD映像;
创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源;
所述基于所述待存储资源的标识信息确定存储待存储资源的目标可用区,包括:根据所述待存储资源的标识信息,创建持久卷申明信息并确定对应的需求方Pod;获取所述Pod所在的节点信息,所述节点信息包括可用区的标识信息;基于所述节点信息确定待存储资源的目标可用区。
2.根据权利要求1所述的基于K8s的分布式数据存储方法,其特征在于,所述在所述目标可用区对应的映像池中创建RBD映像,包括:
基于所述待存储资源、请求信息、持久卷申明信息确定存储类别;
基于所述存储类别确定预定义映射关系;
根据所述预定义映射关系,在目标可用区对应的映像池中创建RBD映像。
3.根据权利要求2所述的基于K8s的分布式数据存储方法,其特征在于,所述创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源,包括:
基于所述持久卷申明信息创建持久卷对象;
将所述持久卷和所述RBD映像绑定。
4.根据权利要求3所述的基于K8s的分布式数据存储方法,其特征在于,还包括:
为所述持久卷对象添加节点亲和性。
5.根据权利要求4所述的基于K8s的分布式数据存储方法,其特征在于,还包括:
将第一可用区内存储的数据备份至第二可用区。
6.根据权利要求5所述的基于K8s的分布式数据存储方法,其特征在于,还包括:
当第一可用区对应的主机宕机时,启动第二可用区对应的主机;
通过第一可用区的K8s节点调用第二可用区对应的存储资源,执行第一可用区的K8S节点对应的数据操作。
7.一种基于K8s的分布式数据存储装置,其特征在于,所述装置至少包括如下模块:
分区模块,用于在分布式存储集群中创建属于不同可用区的映像池,每个可用区包括至少一个K8s节点;
获取模块,用于获取基于K8s StatefulSet的待存储资源及待存储资源的标识信息;
寻区模块,用于基于所述待存储资源的标识信息确定存储待存储资源的目标可用区;
虚拟模块,用于在所述目标可用区对应的映像池中创建RBD映像;
建卷模块,用于创建持久卷并与所述RBD映像绑定,所述持久卷用于存放所述待存储资源;
所述寻区模块在执行基于所述待存储资源的标识信息确定存储待存储资源的目标可用区的情况下,还用于根据所述待存储资源的标识信息,创建持久卷申明信息并确定对应的需求方Pod;获取所述Pod所在的节点信息,所述节点信息包括可用区的标识信息;基于所述节点信息确定待存储资源的目标可用区。
8.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-6中任一项所述的基于K8s的分布式数据存储方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-6中任一项所述的基于K8s的分布式数据存储方法。
CN202210121301.4A 2022-02-09 2022-02-09 一种基于K8s的分布式数据存储方法及装置 Active CN114461149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210121301.4A CN114461149B (zh) 2022-02-09 2022-02-09 一种基于K8s的分布式数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210121301.4A CN114461149B (zh) 2022-02-09 2022-02-09 一种基于K8s的分布式数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN114461149A CN114461149A (zh) 2022-05-10
CN114461149B true CN114461149B (zh) 2023-03-24

Family

ID=81413995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210121301.4A Active CN114461149B (zh) 2022-02-09 2022-02-09 一种基于K8s的分布式数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN114461149B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116301593B (zh) * 2023-02-09 2024-02-02 安超云软件有限公司 在云平台下跨集群跨存储拷贝块数据的方法及应用

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941279B2 (en) * 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US10860444B2 (en) * 2018-07-30 2020-12-08 EMC IP Holding Company LLC Seamless mobility for kubernetes based stateful pods using moving target defense
US11172024B2 (en) * 2020-03-23 2021-11-09 International Business Machines Corporation Co-location of storage buckets with containerized applications
US11194483B1 (en) * 2020-06-05 2021-12-07 Vmware, Inc. Enriching a storage provider with container orchestrator metadata in a virtualized computing system
CN112799588B (zh) * 2020-12-31 2022-10-21 深圳软通动力信息技术有限公司 使用外部存储加载容器集群应用数据时的数据存储方法
CN113452758A (zh) * 2021-06-04 2021-09-28 中国联合网络通信集团有限公司 一种业务访问方法及装置
CN113641311B (zh) * 2021-10-18 2022-02-01 浩鲸云计算科技股份有限公司 一种基于本地盘的容器存储资源动态分配的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一次高可用架构设计实战总结;titi,云原生Lab;《一次高可用架构设计实战总结https://mp.weixin.qq.com/s/tR29YILhtd01G09j298txQ》;全文 *

Also Published As

Publication number Publication date
CN114461149A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US11704144B2 (en) Creating virtual machine groups based on request
US20200364608A1 (en) Communicating in a federated learning environment
US20190115264A1 (en) Client-initiated leader election in distributed client-server systems
US9176678B2 (en) Common contiguous memory region optimized virtual machine migration within a workgroup
EP4187813A1 (en) Resource distribution method for cloud service and related device
CN109992373B (zh) 资源调度方法、信息管理方法和装置及任务部署系统
US20240097985A1 (en) Information processing method based on internet of things device, related device and storage medium
CN110389825B (zh) 管理专用处理资源的方法、设备和计算机程序产品
CN113485962B (zh) 日志文件的存储方法、装置、设备和存储介质
CN111209090B (zh) 一种云平台中虚拟机的创建方法、组件及服务器
CN106302640A (zh) 数据请求处理方法及装置
CN115361389B (zh) 一种云计算实例创建方法及装置
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN113674131A (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN112698952A (zh) 计算资源统一管理方法、装置、计算机设备及存储介质
CN115328662A (zh) 一种进程线程资源管理控制方法及系统
CN114253459A (zh) 创建持久数据卷的方法、装置和服务器
CN114461149B (zh) 一种基于K8s的分布式数据存储方法及装置
CN111274004A (zh) 进程实例管理方法、装置及计算机存储介质
CN114466031A (zh) 一种cdn系统节点配置方法、装置、设备及存储介质
CN112860421B (zh) 用于作业处理的方法、设备和计算机程序产品
CN109614242B (zh) 一种计算能力共享方法、装置、设备及介质
CN109005071B (zh) 一种决策部署方法和调度设备
CN115202856A (zh) 资源分配系统、方法、装置、计算机设备和存储介质
US9456024B1 (en) Content sharing in mobile ad hoc networks

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