CN115391238B - 持久卷的静态制备方法、装置、终端设备与介质 - Google Patents

持久卷的静态制备方法、装置、终端设备与介质 Download PDF

Info

Publication number
CN115391238B
CN115391238B CN202211342123.4A CN202211342123A CN115391238B CN 115391238 B CN115391238 B CN 115391238B CN 202211342123 A CN202211342123 A CN 202211342123A CN 115391238 B CN115391238 B CN 115391238B
Authority
CN
China
Prior art keywords
persistent volume
volume
persistent
creating
preparation
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
CN202211342123.4A
Other languages
English (en)
Other versions
CN115391238A (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.)
Shenzhen Everything Safety Technology Co ltd
Original Assignee
Shenzhen Everything Safety 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 Shenzhen Everything Safety Technology Co ltd filed Critical Shenzhen Everything Safety Technology Co ltd
Priority to CN202211342123.4A priority Critical patent/CN115391238B/zh
Publication of CN115391238A publication Critical patent/CN115391238A/zh
Application granted granted Critical
Publication of CN115391238B publication Critical patent/CN115391238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种持久卷的静态制备方法、装置、终端设备与介质,该方法包括:当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据(物理文件),创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息(元数据),基于所述IP地址构建所述第一持久卷与第二持久卷的连接关系,以对所述第二持久卷进行静态制备。基于IP地址,在第二持久卷中封装第一持久卷,解耦了第一持久卷与第二持久卷的集群以及卷名,实现第二持久卷对第一持久卷间的单向访问,最终达到删除第二持久卷时不会删除第一持久卷,防止数据误删除的发生。该方式用于运行中PV的制备,提高PV的制备适用性及实用性。

Description

持久卷的静态制备方法、装置、终端设备与介质
技术领域
本发明涉及数据处理领域,尤其涉及一种持久卷的静态制备方法、装置、终端设备与介质。
背景技术
Kubenetes中,对存储资源的管理方式和计算资源(CPU/内存)截然不同。为了能够屏蔽底层存储的实现细节,让用户方便使用及管理员方便管理,PV(PersistentVolume,持久卷)和PVC(Persistent Volume Claim,持久卷申领)提供了管理GlusterFS等各类存储系统的统一的抽象层,本专利只针对GlusterFS。其中,PV是对存储资源的抽象,将存储定义为一种集群中容器应用可以使用的资源,而PVC是用户对存储资源的一个申请,以消费PV的方式进行资源的调配。
目前,Heketi提供了一个RESTful管理界面,用于管理GlusterFS卷的生命周期。Kubernetes使用Heketi的RESTful接口,根据需要进行动态的创建、销毁PV卷操作。
但Heketi只提供了PV的动态制备和管理方法,不支持PV静态制备和管理,而Heketi动态创建的PV卷和GlusterFS卷强耦合,即对PV卷或GlusterFS卷其中一个进行操作时容易影响到另一个。具体地,PV卷存储的是资源管理信息,GlusterFS卷存储的是底层资源数据,根据PV删除策略,删除PV可能会导致删除底层的GlusterFS卷,有数据误删除的风险。
发明内容
本发明的主要目的在于提供一种持久卷的静态制备方法、装置、终端设备与介质,旨在解决目前PV卷不支持静态制备和管理,而动态创建的PV删除时容易误删底层数据GlusterFS卷的技术问题,提高持久卷制备的实用性。
为实现上述目的,本发明提供一种持久卷的静态制备方法,所述持久卷的静态制备方法包括以下步骤:
当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。
可选地,所述当接收到制备指令时,创建第一持久卷的步骤之前,还包括:
获取所述第一持久卷对应的节点信息,并基于所述节点信息搭建集群:
获取所述第一持久卷对应的节点信息;
基于预设规则对节点信息进行配置。
可选地,所述当接收到制备指令时,创建第一持久卷的步骤包括:
当接收到制备指令时,创建并启动第一持久卷命令行或创建并启动第一持久卷序列命令行,获取并设置第三持久卷的名称、命名空间、起始参数及终止参数,将所述第三持久卷作为所述第一持久卷。
可选地,所述创建第二持久卷的步骤包括:
创建并启动第二持久卷命令行或创建并启动第二持久卷序列命令行,获取并设置第四持久卷的名称、命名空间、起始参数及终止参数,将所述第四持久卷作为所述第二持久卷。
可选地,所述获取所述第一持久卷的IP地址的步骤包括:
基于预设寻址命令行,获取所述第一持久卷的IP地址,并发送至所述第二持久卷。
可选地,所述当接收到制备指令时,创建第一持久卷的步骤之前,还包括:
获取所述第一持久卷对应的文件系统中至少为一个的虚拟IP,并将获取的第一个所述虚拟IP作为预设IP;
将所有所述虚拟IP统一修改为所述预设IP。
可选地,所述基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备的步骤之后,还包括:
获取所述第一持久卷的名称,并基于所述名称为每一个所述第一持久卷生成特征标签;
创建对外接口,当接收到交互指令时,通过所述特征标签找到对应的所述第一持久卷,并通过所述对外接口发送所述第一持久卷。
此外,为实现上述目的,本发明还提供一种持久卷的静态制备装置,所述持久卷的静态制备装置包括:
第一创建模块,用于当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
第二创建模块,用于创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
构建模块,用于基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的持久卷的静态制备程序,所述持久卷的静态制备程序被所述处理器执行时实现如上所述的持久卷的静态制备方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机介质,所述介质为计算机可读存储介质,所述计算机可读存储介质上存储有持久卷的静态制备程序,所述持久卷的静态制备和管理被处理器执行时实现如上所述的持久卷的静态制备方法的步骤。
本发明提供了一种持久卷的静态制备方法、装置、终端设备与介质。当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据,创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备,即以IP地址为基础,在第二持久卷中封装第一持久卷,解耦了第一持久卷与第二持久卷的集群以及卷名,实现第二持久卷对第一持久卷间的单向访问,最终达到删除第二持久卷时不会删除第一持久卷,防止数据误删除的发生,该方式可用于运行中PV的制备,相比运行前PV的制备适用性更广,实用性更高。
附图说明
图1为本申请持久卷的静态制备装置所属终端设备的功能模块示意图;
图2为本申请持久卷的静态制备方法第一实施例的流程示意图;
图3为本申请持久卷的静态制备方法搭建集群的流程示意图;
图4为本申请持久卷的静态制备方法涉及的管理流程示意图;
图5为本申请持久卷的静态制备方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前使用的主流Heketi技术支持运行前制备PV或动态制备PV的方式,若是运行前制备PV,由于所制备的PV与使用时实际需要的不一定相同,只适用于对固定要求的存储数据,且PV与存储数据的集群为双向访问,删除PV可能导致集群中的数据误删除;动态制备即在运行中根据PVC的变化,进行动态的创建、销毁PV卷,而当PV被删除时,根据PV删除策略,PV的周期状态会发生改变,如由“Bound”状态变成“Released”状态,PV被释放而失去绑定,则PV对应的存储数据也会有被误删除的风险。
针对上述问题,本发明实施例的主要解决方案是:当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据,创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。即以IP地址为基础,在第二持久卷中封装第一持久卷,解耦了第一持久卷与第二持久卷的集群以及卷名,实现第二持久卷对第一持久卷间的单向访问,最终达到删除第二持久卷时不会删除第一持久卷,防止数据误删除的发生,该方式可用于运行中PV的制备,相比运行前PV的制备适用性更广,实用性更高。
具体地,参照图1,图1为本申请持久卷的静态制备装置所属终端设备的功能模块示意图。该持久卷的静态制备装置可以为独立于终端设备的、能创建持久卷的、能获取IP地址的、能基于IP地址构建持久卷间联系关系的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有持久卷的静态制备和管理功能的智能移动终端,还可以为具有持久卷的静态制备和管理功能的固定终端设备或服务器等。
在本实施例中,该持久卷的静态制备装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及持久卷的静态制备程序,持久卷的静态制备装置可以将IP地址、持久卷等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的持久卷的静态制备程序被处理器执行时实现以下步骤:
当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
获取所述第一持久卷对应的节点信息,并基于所述节点信息搭建集群:
获取所述第一持久卷对应的节点信息;
基于预设规则对节点信息进行配置。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
当接收到制备指令时,基于预设创建并启动第一持久卷命令行或预设创建并启动第一持久卷序列命令行,获取并设置第三持久卷的名称、命名空间、起始参数及终止参数,将所述第三持久卷作为所述第一持久卷。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
基于预设创建并启动第二持久卷命令行或预设创建并启动第二持久卷序列命令行,获取并设置第四持久卷的名称、命名空间、起始参数及终止参数,将所述第四持久卷作为所述第二持久卷。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
基于预设寻址命令行,获取所述第一持久卷的IP地址,并发送至所述第二持久卷。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
获取所述第一持久卷对应的文件系统中至少为一个的虚拟IP,并将获取的第一个所述虚拟IP作为预设IP;
将所有所述虚拟IP统一修改为所述预设IP。
进一步地,存储器130中的持久卷的静态制备程序被处理器执行之前还实现以下步骤:
获取所述第一持久卷的名称,并基于所述名称为每一个所述第一持久卷生成特征标签;
创建对外接口,当接收到交互指令时,通过所述特征标签找到对应的所述第一持久卷,并通过所述对外接口发送所述第一持久卷。
本发明提供了一种持久卷的静态制备方法、装置、终端设备与介质。当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据,创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。即以IP地址为基础,在第二持久卷中封装第一持久卷,解耦了第一持久卷与第二持久卷的集群以及卷名,实现第二持久卷对第一持久卷间的单向访问,最终达到删除第二持久卷时不会删除第一持久卷,防止数据误删除的发生,该方式可用于运行中PV的制备,相比运行前PV的制备适用性更广,实用性更高。
基于上述终端设备架构但不限于上述架构,提出本申请方法实施例。
参照图2,图2为本申请持久卷的静态制备方法第一实施例的流程示意图。所述持久卷的静态制备方法包括:
步骤S1001,当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
针对目前Heketi存储数据时,只有在运行前手动制备PV或运行中根据需要动态制备PV这两种方式,前者创建效率低,后者制备的PV与底层文件强耦合,根据删除策略,在删除时容易出现底层数据GlusterFS卷误删除的问题,本申请在Kubernetes中通过输入预设命令行,实现在运行的容器Pod中,根据需要静态制备PV,即将底层数据GlusterFS卷和资源管理信息对应的第二持久卷PV卷解耦,彼此间独立管理,从而防止删除PV卷时,PV卷对应的GlusterFS卷会被误删除的弊端。
进一步地,当接收到制备指令时,创建并启动第一持久卷命令行或创建并启动第一持久卷序列命令行,获取并设置第三持久卷的名称、命名空间、起始参数及终止参数,将所述第三持久卷作为所述第一持久卷。
具体地,制备指令是指,用户进行存储时发出的请求指令。第一持久卷为分布式网络文件系统中的持久卷,其存储了实际的物理文件。如在GlusterFS集群中,GlusterFS卷为第一持久卷。第三持久卷为GlusterFS集群中还未被配置的初始资源,通过输入第一持久卷序列命令行(多个连续的持久卷序列)或第一持久卷命令行(单个持久卷),完成至少一个以上的第一持久卷的创建及启动,创建完成后获取第一持久卷的IP地址及卷信息,其中,卷信息包括卷名称,卷名称用于作为第二持久卷访问第一持久卷的逻辑条件之一,如,根据卷名称,第二持久卷(Kubernetes中的PV卷)能够找到对应的第一持久卷(GlusterFS卷)。
示例性地,当接收到制备指令时,表示有实际物理数据需要存入第一持久卷,首先GlusterFS集群的任意一个节点执行“create-and-start-gluster-volume-series”(创建并启动第一持久卷序列)”命令行,根据该命令行设置k8sPvName参数(PV名称)为“data-rabbitmq”,设置“k8sPvNamespace”参数(命名空间)为“iottepa”,设置start参数(起始编号)为0,设置end参数(结束编号)为2,执行后即可创建并启动“iottepa-data-rabbitmq-0”、“iottepa-data-rabbitmq-1”、“iottepa-data-rabbitmq-2”这三个连续的GlusterFS卷,用于对应存储实际物理数据。
数据存储后获取当前主服务器/主节点的IP地址信息,IP地址包括实际IP地址及虚拟IP地址,通常采用虚拟IP地址更为稳定,并将虚拟IP统一修改为预设IP,预设IP可以是第一个获取到的虚拟IP,也可以根据需要自行设置。
进一步地,利用GlusterFS的同步复制功能,能够保证GlusterFS集群中某一服务器/节点宕机时,其余服务器接管虚拟IP继续提供服务。此外,通过预设同步命令行启用Keepalived功能,对外提供稳定的虚拟IP,Keepalived是一种解决单点故障的高可用方案,其作用是为节点分配不同的优先级,如节点的数量为3时,三节点的虚拟IP配置为同一个,但每个节点的优先级不同,模式为非抢占模式,防止无谓的虚拟IP切换,从而保证稳定性。
步骤S1002,创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
进一步地,创建并启动第二持久卷命令行或创建并启动第二持久卷序列命令行,获取并设置第四持久卷的名称、命名空间、起始参数及终止参数,将所述第四持久卷作为所述第二持久卷。
具体地,第二持久卷是指,为运行在Kubernetes中的负载(应用)提供持久化存储,第二持久卷不实际存储物理文件,只承担管理功能,可以理解为记录资源存储情况的信息。第四持久卷是指Kubernetes中未被配置的资源空间,通过输入第二持久卷命令行或第二持久卷序列命令行,完成至少一个以上的第二持久卷的创建及启动。持久卷序列中包含多个持久卷,多个持久卷以逻辑方式进行命名组成持久卷序列,持久卷序列中的卷,其名字互不相同。
示例性地,在Kubernetes中输入“create-k8s-pv-series(创建PV卷序列)”预设命令行,根据该命令行设置“name”参数(PV名称)为“data-rabbitmq”,设置“namespace”参数(命名空间)为“iottepa”,设置“start”参数(起始编号)为0,设置“end”参数(结束编号)为2,执行后即可在“iottepa”命名空间创建“data-rabbitmq-0、data-rabbitmq-1、data-rabbitmq-2”这三个连续的PV。
步骤S1003,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备;
具体地,通过上述步骤,创建了存储实际数据的GlusterFS卷以及记录存储情况信息的PV卷,然后需要将GlusterFS卷与对应的PV卷相关联。
示例性地,基于步骤S1001中获取到GlusterFS卷的IP地址信息,在GlusterFS中输入预设寻址命令行“install-glusterfs-positioner-for-k8s-namespace(安装GlusterFS卷寻址器到Kubernetes命名空间)”,寻址命令行用于将IP地址信息发送至Kubernetes中,以构建GlusterFS卷与PV卷正确的连接关系。至此PV静态制备完毕,可正常使用GlusterFS卷与PV卷。即通过PV卷封装GlusterFS卷的方式,形成PV卷到GlusterFS卷的单向访问,访问时只需要实际IP或虚拟IP地址,以及GlusterFS卷名,即可找到对应的GlusterFS卷。
本实施例通过上述方案,具体当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据,创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备,即以IP地址为基础,在第二持久卷中封装第一持久卷,解耦了第一持久卷与第二持久卷的集群以及卷名,防止误删除。该方式可用于运行中PV的制备,相比运行前PV的制备适用性更广,实用性更高。
基于上述实施例,提出本实施例,本实施例与上述实施例的区别在于:
步骤S1001,当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据的步骤之前,还包括:
步骤100,获取所述第一持久卷对应的节点信息,并基于所述节点信息搭建集群,具体地,参照图3,图3为本申请持久卷的静态制备方法搭建集群的流程示意图,搭建集群可分为以下子步骤:
步骤S10,获取所述第一持久卷对应的节点信息;
具体地,节点可以是物理机或虚拟机,节点中预安装有GlusterFS和Keepalived软件。节点的数量为奇数个,且不小于3。节点信息包括节点的hostname主机名、节点上的Keepalived软件参数。
步骤S20,基于预设规则对节点信息进行配置;
具体地,预设规则用于将节点搭建成集群,通过修改节点的配置信息实现,配置的步骤包括:修改所有节点的hostname主机名,使其之间互不重复;将修改主机名后的所有节点加入同一个GlusterFS信任池,得到GlusterFS集群;统一Keepalived软件配置项中的IP地址,IP地址包括实际IP及虚拟IP,通常采用虚拟IP的稳定性更高。
得到GlusterFS集群后,即可通过节点上预置的Linux shell脚本命令行工具,执行对应的操作,其中,由于节点的复制卷属性,节点之间自动同步复制,任一节点宕机后集群依然能够正常运行,保证了节点运行的可靠性。
参照图4,图4为本申请持久卷的静态制备方法涉及的管理流程示意图。所述持久卷的静态制备方法涉及的管理部分还包括以下步骤:
步骤S101,监测第一持久卷中的存储数据对应的第一空间资源信息;
具体地,在服务器/节点中部署监测单元,监测单元实时抓取第一持久卷当前的配置参数,如类型、参数名、参数值、存储空间等并每隔一段预设时间进行记录,其中,预设时间根据需要进行设置。
步骤S102,若所述第一空间资源信息发生变化时,获取变化后的所述第一空间资源信息;
具体地,当监测到配置参数,如类型、参数名、参数值、存储空间发生改变时,记录变化后的配置参数。
步骤S103,将所述改变后的所述第一空间资源信息发送至第二持久卷,并基于所述改变后的所述第一空间资源信息对所述第二持久卷对应进行修改。
具体地,将变化后的配置参数发送至第二持久卷,以供第二持久卷基于变化后的配置参数对PV卷中的参数进行对应修改,保持GlusterFS卷与PV卷的统一性。
示例性地,当接收到PV卷删除指令时,在Kubernetes中删除对应的PV卷。由于GlusterFS卷与PV卷是分别独立创建的,删除PV卷时并不会自动删除GlusterFS卷。相比于目前GlusterFS中Heketi动态创建的GlusterFS卷与PV卷,其彼此之间强耦合,大大提高了私有云与底层存储系统(GlusterFS存储系统)互通的灵活性。
本实施例通过上述方案,具体通过监测第一持久卷中的存储数据对应的第一空间资源信息,若所述第一空间资源信息发生变化时,获取变化后的所述第一空间资源信息,将所述改变后的所述第一空间资源信息发送至第二持久卷,并基于所述改变后的所述第一空间资源信息对所述第二持久卷对应进行修改,实现对第一持久卷和第二持久卷的同步管理。
参照图5,图5为本申请持久卷的静态制备方法第二实施例的流程示意图。
步骤S1003,基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备的步骤之后,还包括:
步骤A100,获取所述第一持久卷的名称,并基于所述名称为每一个所述第一持久卷生成特征标签;
具体地,Kubernetes的PV卷对应的底层GlusterFS卷有固定的名称,即实际存储的物理数据有用于辨别的特征信息,但当名称重复时,可能造成GlusterFS卷与PV卷关联错误,因此,获取第一持久卷创建时的名称,即GlusterFS卷名称,并根据预设命名规则为每一个GlusterFS卷生成特征标签,以将GlusterFS卷与PV卷正确关联,其中,预设规则可以是根据实际存储的物理数据内容通过哈希算法生成对应的校验码,并将检验码作为重复名称的后缀。
步骤A200,创建对外接口,当接收到交互指令时,通过所述特征标签找到对应的所述第一持久卷,并通过所述对外接口发送所述第一持久卷。
具体地,通过步骤S103保证GlusterFS卷与PV卷正确关联后,由于GlusterFS 是分布式网络文件系统,支持跨私有云挂载,因此创建对外接口,当接收到第三方发送的GlusterFS卷查询交互指令时,利用特征标签快速找到并返回目标第一持久卷,实现进行多私有云的底层文件与第三方便捷的互联互通,对于非Kubernetes私有云部署的传统系统也可以直接挂载GlusterFS卷,以此实现多私有云的容器化应用、非云的非容器化应用的底层文件级互联互通。
本实施例通过上述步骤,具体通过获取所述第一持久卷的名称,并基于所述名称为每一个所述第一持久卷生成特征标签,创建对外接口,当接收到交互指令时,通过所述特征标签找到对应的所述第一持久卷,并通过所述对外接口发送所述第一持久卷,提供了对接第三方数据查询交互的接口,实现了多私有云的容器化应用、非云的非容器化应用的底层文件级,即实际存储物理数据能够便捷地被调取。
基于上述实施例,提出本实施例,本实施例还包括以下步骤:
首先进行预处理部署:部署GlusterFS集群,GlusterFS集群中有至少为三个的节点(物理机/虚拟机)。在任意一个节点上输入预设同步命令行,这样,所有节点之间根据该命令行会自动同步复制GlusterFS卷,即每个节点上都存有GlusterFS卷。然后启用Keepalived的高可用虚拟IP功能,修改GlutersFS集群中每个节点的Keepalived配置,统一设置为同一个虚拟IP,这样当任意一个节点宕机后,虚拟IP自动切换至其他节点,实现虚拟IP的高可用,以供后续基于虚拟IP地址构建GlusterFS卷与PV卷的连接关系时不出错,同时为每个节点设置不同的优先级,抢占模式配置为非抢占,防止没有意义的虚拟IP切换。最后将预设命令行上传至节点中,开始持久卷静态制备。
通过执行预设命令行,对第一持久卷和第二持久卷进行静态制备,其中,预设命令行包括“create-and-start-gluster-volume(创建并启动GlusterFS卷)”、“create-and-start-gluster-volume-series(创建并启动GlusterFS卷序列)”、“install-glusterfs-positioner-for-k8s-namespace(安装GlusterFS卷寻址器到Kubernetes命名空间)”、“create-k8s-pv(创建PV卷)”、“create-k8s-pv-series(创建PV卷序列)”等命令行。以静态制备iottepa自定义命名空间的data-rabbitmq序列为例说明如下:
本领域技术人员可以理解,首先GlusterFS集群的任意一个节点执行“create-and-start-gluster-volume-series”命令行,设置“k8sPvName”参数(PV名称)为“data-rabbitmq”,设置“k8sPvNamespace”参数(命名空间)为“iottepa”,设置“start”参数(起始编号)为0,设置“end”参数(结束编号)为2,执行后即可创建并启动“iottepa-data-rabbitmq-0”、“iottepa-data-rabbitmq-1”、“iottepa-data-rabbitmq-2”这三个连续的GlusterFS卷,用于存储实际物理数据。
然后上传Linux shell脚本命令行工具到Kubernetes私有云的主节点,执行“install-glusterfs-positioner-for-k8s-namespace”(安装GlusterFS卷寻址器到Kubernetes命名空间)命令行,设置“k8sNamespace”参数(命名空间)为“iottepa”,设置“endpoint”参数(GlusterFS访问地址)为GlusterFS集群的虚拟IP,执行后指定的“iottepa”命名空间就有了正确寻址到GlusterFS卷的能力。
继续执行“create-k8s-pv-series”(创建PV卷序列)命令行,设置“name”参数(PV名称)为“data-rabbitmq”,设置“namespace”参数(命名空间)为“iottepa”,设置“start”参数(起始编号)为0,设置“end”参数(结束编号)为2,执行后即可在“iottepa”命名空间创建“data-rabbitmq-0”、“data-rabbitmq-1”、“data-rabbitmq-2”这三个连续的PV,至此PV静态制备完毕,可供Kubernetes正常用于记录存储资源管理情况。
本实施例通过上述步骤,解耦了GlusterFS卷和PV卷,彼此独立管理,删除PV卷并不会自动删除GlusterFS卷,实现了防止误删除。
此外,本申请实施例还提出一种持久卷的静态制备装置,所述持久卷的静态制备装置包括:
第一创建模块,用于当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
第二创建模块,用于创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
构建模块,用于基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的持久卷的静态制备程序,所述持久卷的静态制备和管理被所述处理器执行时实现如上所述的持久卷的静态制备和管理的步骤。
由于本持久卷的静态制备程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机介质,所述介质为计算机可读存储介质,所述计算机可读存储介质上存储有持久卷的静态制备程序,所述持久卷的静态制备程序被处理器执行时实现如上所述的持久卷的静态制备和管理的步骤。
由于本持久卷的静态制备程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比于现有技术,一为通过Heketi的RESTful接口根据需要动态的创建、销毁PV卷,当需要删除PV时,由于PV卷与GlusterFS卷的强耦合,删除PV可能会导致删除底层的实际存储物理数据,有数据误删除的风险;二为在运行前以固定方式静态制备PV,但所制备的PV实用性低。本申请持久卷的静态制备方法提供一种运行时静态制备PV的方式,该方式在通过将第一持久卷与第二持久卷分开创建,彼此间独立管理,同时通过IP地址构建彼此间的联系关系,从而防止通常删除PV,即第二持久卷时,PV删除策略会误删除存储数据,即第二持久卷的情况,同时该方式可用于运行中PV的制备,相比运行前PV的静态制备方式适用性更广,实用性更高。
此外,也可以将Linux脚本通过Docker软件封装为不可变的Docker镜像,通过Docker镜像实现上述实施例中的解耦方式,Docker封装不如Linux脚本封装操作简便,但比Linux脚本封装安全,需要说明的是,本申请通过解耦PV卷与GlusterFS卷的方式实现防止GlusterFS卷数据误删除的效果,通过预置命令行对PV卷与GlusterFS卷进行配置仅作为一个示例,任何不经过创造性劳动想到的变化或替换,都应该涵盖在本发明的保护范围之内。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (5)

1.一种持久卷的静态制备方法,其特征在于,所述持久卷的静态制备方法包括以下步骤:
当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备;
所述当接收到制备指令时,创建第一持久卷的步骤之前,还包括:
获取所述第一持久卷对应的节点信息,并基于所述节点信息搭建集群:
获取所述第一持久卷对应的节点信息;
基于预设规则对节点信息进行配置;
所述当接收到制备指令时,创建第一持久卷的步骤包括:
当接收到制备指令时,创建并启动第一持久卷命令行或创建并启动第一持久卷序列命令行,获取并设置第三持久卷的名称、命名空间、起始参数及终止参数,将所述第三持久卷作为所述第一持久卷;
所述创建第二持久卷的步骤包括:
创建并启动第二持久卷命令行或创建并启动第二持久卷序列命令行,获取并设置第四持久卷的名称、命名空间、起始参数及终止参数,将所述第四持久卷作为所述第二持久卷;
所述获取所述第一持久卷的IP地址的步骤包括:
基于预设寻址命令行,获取所述第一持久卷的IP地址,并发送至所述第二持久卷;
所述当接收到制备指令时,创建第一持久卷的步骤之前,还包括:
获取所述第一持久卷对应的文件系统中至少为一个的虚拟IP,并将获取的第一个所述虚拟IP作为预设IP;
将所有所述虚拟IP统一修改为所述预设IP。
2.如权利要求1所述持久卷的静态制备方法,其特征在于,所述基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备的步骤之后,还包括:
获取所述第一持久卷的名称,并基于所述名称为每一个所述第一持久卷生成特征标签;
创建对外接口,当接收到交互指令时,通过所述特征标签找到对应的所述第一持久卷,并通过所述对外接口发送所述第一持久卷。
3.一种持久卷的静态制备装置,其特征在于,所述持久卷的静态制备装置包括:
第一创建模块,用于当接收到制备指令时,创建第一持久卷,并获取所述第一持久卷的IP地址,其中,所述第一持久卷用于存储数据;
第二创建模块,用于创建第二持久卷,所述第二持久卷用于记录所述存储数据的持久化存储信息;
构建模块,用于基于所述IP地址构建所述第一持久卷与所述第二持久卷的连接关系,以对所述第二持久卷进行静态制备;
所述静态制备装置,还用于:
获取所述第一持久卷对应的节点信息,并基于所述节点信息搭建集群:
获取所述第一持久卷对应的节点信息;
基于预设规则对节点信息进行配置;
第一创建模块,还用于:
当接收到制备指令时,创建并启动第一持久卷命令行或创建并启动第一持久卷序列命令行,获取并设置第三持久卷的名称、命名空间、起始参数及终止参数,将所述第三持久卷作为所述第一持久卷;
第二创建模块,还用于:
创建并启动第二持久卷命令行或创建并启动第二持久卷序列命令行,获取并设置第四持久卷的名称、命名空间、起始参数及终止参数,将所述第四持久卷作为所述第二持久卷;
第一创建模块,还用于:
基于预设寻址命令行,获取所述第一持久卷的IP地址,并发送至所述第二持久卷;
所述静态制备装置,还用于:
获取所述第一持久卷对应的文件系统中至少为一个的虚拟IP,并将获取的第一个所述虚拟IP作为预设IP;
将所有所述虚拟IP统一修改为所述预设IP。
4.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的持久卷的静态制备程序,所述持久卷的静态制备程序被所述处理器执行时实现如权利要求1-2中任一项所述的持久卷的静态制备方法的步骤。
5.一种计算机介质,所述介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有持久卷的静态制备程序,所述持久卷的静态制备程序被处理器执行时实现如权利要求1-2中任一项所述的持久卷的静态制备方法的步骤。
CN202211342123.4A 2022-10-31 2022-10-31 持久卷的静态制备方法、装置、终端设备与介质 Active CN115391238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211342123.4A CN115391238B (zh) 2022-10-31 2022-10-31 持久卷的静态制备方法、装置、终端设备与介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211342123.4A CN115391238B (zh) 2022-10-31 2022-10-31 持久卷的静态制备方法、装置、终端设备与介质

Publications (2)

Publication Number Publication Date
CN115391238A CN115391238A (zh) 2022-11-25
CN115391238B true CN115391238B (zh) 2023-03-14

Family

ID=84115182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211342123.4A Active CN115391238B (zh) 2022-10-31 2022-10-31 持久卷的静态制备方法、装置、终端设备与介质

Country Status (1)

Country Link
CN (1) CN115391238B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667904A (zh) * 2018-04-10 2018-10-16 浙江大学 一种Docker容器远程内存卷管理方法和系统
CN110019081A (zh) * 2017-07-20 2019-07-16 中兴通讯股份有限公司 数据持久化处理方法、装置、系统及可读存储介质
CN111290826A (zh) * 2018-12-06 2020-06-16 北京京东尚科信息技术有限公司 分布式文件系统、计算机系统和介质
CN113821298A (zh) * 2020-06-18 2021-12-21 慧与发展有限责任合伙企业 使用底层卷标识符将存储操作请求中继到存储系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678683B1 (en) * 2016-11-01 2017-06-13 Red Hat, Inc. Lazy persistent storage volume provisioning
US11086558B2 (en) * 2018-11-01 2021-08-10 EMC IP Holding Company LLC Storage system with storage volume undelete functionality
CN111338854B (zh) * 2020-05-25 2020-10-02 南京云信达科技有限公司 基于Kubernetes集群快速恢复数据的方法及系统
CN111966305B (zh) * 2020-10-22 2021-02-09 腾讯科技(深圳)有限公司 持久卷分配方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019081A (zh) * 2017-07-20 2019-07-16 中兴通讯股份有限公司 数据持久化处理方法、装置、系统及可读存储介质
CN108667904A (zh) * 2018-04-10 2018-10-16 浙江大学 一种Docker容器远程内存卷管理方法和系统
CN111290826A (zh) * 2018-12-06 2020-06-16 北京京东尚科信息技术有限公司 分布式文件系统、计算机系统和介质
CN113821298A (zh) * 2020-06-18 2021-12-21 慧与发展有限责任合伙企业 使用底层卷标识符将存储操作请求中继到存储系统

Also Published As

Publication number Publication date
CN115391238A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
US11226847B2 (en) Implementing an application manifest in a node-specific manner using an intent-based orchestrator
US10846140B2 (en) Off-site backup of workloads for multi-tenant cloud computing system
CN110198231B (zh) 用于多租户的容器网络管理方法和系统以及中间件
US11301154B2 (en) Distributed storage method and device
CN109344000B (zh) 区块链网络服务平台、恢复工具及其故障处理方法、存储介质
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
CN109189334B (zh) 一种区块链网络服务平台及其扩容方法、存储介质
CN111857873A (zh) 一种实现云原生容器网络的方法
EP3905588A1 (en) Cloud platform deployment method and apparatus, server and storage medium
CN105095317B (zh) 分布式数据库服务管理系统
CN103491144A (zh) 一种广域网虚拟平台的构建方法
CN110532058B (zh) 容器集群服务的管理方法、装置、设备及可读存储介质
CN115604120B (zh) 一种多云集群资源共享方法、装置、设备及存储介质
CN111835820A (zh) 一种实现云管理的系统及方法
CN113849266A (zh) 多Kubernetes集群的业务部署方法及装置
CN112860787A (zh) 分布式主从系统中主节点的切换方法、主节点设备和存储介质
CN109634522A (zh) 一种资源管理的方法、装置及计算机存储介质
CN115618409A (zh) 数据库云服务生成方法、装置、设备及可读存储介质
EP4137957A1 (en) File sharing method and terminal device
CN118300788A (zh) 一种密码中间件、方法、设备及存储介质
CN116760913B (zh) k8s集群协议转换平台配置下发方法及系统
CN114625535A (zh) 多Kubernetes集群的业务部署方法及装置
CN115391238B (zh) 持久卷的静态制备方法、装置、终端设备与介质
CN116010111B (zh) 一种跨集群资源调度方法、系统及终端设备
CN112181049A (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