CN114911421B - 基于csi插件的数据存储方法、***、装置及存储介质 - Google Patents
基于csi插件的数据存储方法、***、装置及存储介质 Download PDFInfo
- Publication number
- CN114911421B CN114911421B CN202210555018.2A CN202210555018A CN114911421B CN 114911421 B CN114911421 B CN 114911421B CN 202210555018 A CN202210555018 A CN 202210555018A CN 114911421 B CN114911421 B CN 114911421B
- Authority
- CN
- China
- Prior art keywords
- csi
- driving unit
- node
- pvc
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
本申请涉及基于CSI插件的数据存储方法、***、装置及存储介质,方法包括:在CSI管理节点中部署第一驱动单元,在每个CSI数据节点中部署第二驱动单元;控制中心发送PVC卷创建命令,CSI管理节点接收到PVC卷创建命令后,外部供应单元发送外部配置参数,第一驱动单元将外部配置参数发送至分布式存储***以创建对应的PV卷;外部附着单元接收到引用创建的PVC的pod的创建命令后,发送附着命令,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上。本方案,可实现在分布式存储***上永久性存储数据,同时,可便在k8s容器中有效使用分布式存储***,进而将分布式存储***的优势得以有效发挥。
Description
技术领域
本申请涉及基于CSI插件的数据存储方法、***、装置及存储介质,属于分布式存储***数据存储技术领域。
背景技术
K8s容器编排***已经成为容器云平台的事实标准,越来越多的用户将应用部署在k8s集群中,通常这些应用是需要持久化保存数据,但是k8s自带的存储插件却无法满足多样化应用的存储需求场景。
容器存储接口(CSI)为容器编排***(Kubernetes)定义标准接口,以将任意存储***暴露给它们的容器工作负载,CSI使存储供应商能够创建自定义存储插件,而无需将它们添加到Kubernetes代码仓库。对比Kubernetes的自带存储插件,CSI(容器存储接口)允许独立于Kubernetes代码库开发卷插件CSI存储插件可以作为扩展部署(安装)在Kubernetes集群上,这能极大的扩展k8s支持的存储设备种类。
然而,基于ISCSI的分布式存储***或者CSI插件,仍然是一个空白,使得分布式存储的优势无法得以有效发挥。
发明内容
本申请提供了一种基于CSI插件的数据存储方法、***、装置及存储介质,以解决基于ISCSI的分布式存储***或者CSI插件,仍然是一个空白的技术问题。
为解决上述技术问题,本申请提供如下技术方案:
第一方面,根据本申请实施例提供一种基于CSI插件的数据存储方法,应用于将待存储数据存储于基于ISCSI的分布式存储***中,所述方法,包括:
在CSI管理节点中部署CSI-driver第一驱动单元,在每个CSI数据节点中部署CSI-driver第二驱动单元;
控制中心,发送PVC卷创建命令给CSI管理节点,CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;
外部附着单元接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
目标CSI数据节点中第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中。
优选地,所述在CSI管理节点中部署CSI-driver第一驱动单元,在每个CSI数据节点中部署CSI-driver第二驱动单元包括:
在CSI管理节点中将CSI-driver第一驱动单元与外部供应单元(External-provisioner)、外部附着单元(External-attacher)部署于同一pod中;
在CSI数据节点中将CSI-driver第二驱动单元与节点注册单元(Node-Driver-Registrar)部署于同一pod中。
优选地,所述CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元(External-provisioner)发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将配置参数发送至分布式存储***,包括:
CSI数据节点的接收到PVC卷创建命令后,外部供应单元通过unix域套接字调用CreateVolume接口,将与分布式存储***对应的外部配置参数通过第一驱动单元发送至分布式存储***;
所述外部配置参数包括外部配置参数的类型、参数名及参数值。
优选地,在所述第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷时,则在目标CSI数据节点创建引用PVC的pod。
优选地,所述方法,还包括:
删除数据pod应用;
删除对应的PVC数据资源。
优选地,所述删除数据pod应用,包括:
控制中心向目标CSI数据节点发送预设删除命令,所述目标CSI数据节点调用CleanupMountPoint接口,通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将挂载在使用PVC的pod中的PV从该目标CSI数据节点解绑。
优选地,所述删除对应的PVC数据资源,包括:
控制中心向CSI管理节点发送预设删除命令,所述外部供应单元调用DeleteVolume接口,删除PVC;
查询目标CSI数据节点中已经解绑的PV信息,根据查询到的PV信息在CSI管理节点中进行解绑,并调用删除Vdisk接口,进行PV的删除。
第二方面,根据本申请实施例提供的一种基于CSI插件的数据存储***,包括:
控制中心,用于接收到PVC创建命令后,发送PVC卷创建命令给CSI管理节点;
CSI管理节点,用于接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;CSI管理节点的外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
CSI数据节点,预设的第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中;
其中,预设的第二驱动单元为目标数据节点中的第二驱动单元。
优选地,所述CSI管理节点,还用于:
接收到PVC卷创建命令后,外部供应单元通过unix域套接字调用CreateVolume接口,将与分布式存储***对应的外部配置参数通过第一驱动单元发送至分布式存储***;
所述外部配置参数包括外部配置参数的类型、参数名及参数值。
优选地,所述控制中心,还用于:
向目标CSI数据节点发送预设删除命令,所述目标CSI数据节点调用CleanupMountPoint接口,通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将挂载在使用PVC的pod中的PV从该目标CSI数据节点解绑。
第三方面,根据本申请实施例提供一种基于CSI插件的数据存储装置,所述装置包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中,所述计算机程序由所述处理器加载并执行,以实现上述任一项所述基于CSI插件的数据存储方法。
第四方面,根据本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中,所述计算机程序被处理器执行时用于实现上述任一项所述基于CSI插件的数据存储方法。
本申请的有益效果在于:
本申请实施例提供的基于CSI插件的数据存储方法、***、装置及存储介质,首先在CSI管理节点中部署CSI-driver第一驱动单元,在每个CSI数据节点中部署CSI-driver第二驱动单元;控制中心发送PVC卷创建命令给CSI管理节点,CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元(External-provisioner)发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;CSI管理节点中的外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;目标CSI数据节点中第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中。本方案,基于ISCSI的分布式存储***或者CSI插件,可在分布式存储***上永久性存储数据,而我们基于ISCSI的分布式存储***,具备多副本、可设页面大小、可配压缩算法、读缓存等特性,可以提供比本地存储更高的数据安全性、性能与扩展性;本方案中提供的CSI插件,以便在k8s容器云有效使用分布式存储***,进而将分布式存储***的优势得以有效发挥。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的基于CSI插件的数据存储方法的网络构架示意图;
图2-图3分别为本申请一个实施例提供的基于CSI插件的数据存储方法的流程图;
图4为本申请一个实施例提供的步骤S12中包含的子步骤的流程图;
图5为本申请一个实施例提供的步骤S16中包含的子步骤的流程图;
图6为本申请一个实施例提供的步骤S17中包含的子步骤的流程图;
图7为本申请一个实施例提供的基于CSI插件的数据存储***的模块图;
图8为本申请一个实施例提供的基于CSI插件的数据存储装置的硬件示意图。
具体实施方式
下实施例用于说明本申请,但不用来限制本申请的范围。
实施例1
图1为采用本申请实施例提供的一种基于CSI插件的数据存储方法进行数据存储的网络架构,包括控制中心(Master)11、CSI管理节点12、CSI数据节点13和分布式存储***14,控制中心(Master)11接收到用户通过kubectl命令创建PVC和storageclass资源的命令后,控制中心(Master)11中的kube-apiserver服务会接收到请求,kube-scheduler触发PV创建流程,CSI管理节点的外部供应单元发送外部配置参数,进而在分布式存储***建立对应的PV卷,进而为存储待存储数据做准备。之后,引用pvc的pod创建时,CSI管理节点12将分布式存储中对应的卷附着到目标CSI数据节点,对应目标CSI数据节点13完成PV卷的挂载操作,使用PVC的pod可在目标CSI数据节点13的挂载操作后将待存储数据存储至通过CSI管理节点12所创建的PV卷,从而实现了将数据持久化到分布式存储***中的目的。
图2为本申请实施例提供一种基于CSI插件的数据存储方法的流程图,应用于将待存储数据存储于基于ISCSI协议的分布式存储***中,所述方法,包括:
步骤S11、在CSI管理节点中部署CSI-driver第一驱动单元,在每个CSI数据节点中部署CSI-driver第二驱动单元;
在本实施方式中,需要提前在CSI管理节点中将CSI-driver第一驱动单元与外部供应单元(External-provisioner)、外部附着单元(External-attacher)部署于同一pod中;在CSI数据节点中将CSI-driver第二驱动单元与节点注册单元(Node-Driver-Registrar)部署于同一pod中。需要指出的是,所述CSI管理节点为一个,CSI数据节点的数量可以不止一个,另外这里的CSI管理节点中的pod和CSI数据节点中的pod是两个不同的pod,这两个不同节点中pod可以理解为是两个数据平面。
S12、控制中心发送PVC卷创建命令给CSI管理节点;
在本申请实施例中,控制中心(Master)11中的kube-apiserver服务接收到用户通过kubectl命令创建PVC和storageclass资源(对象)的命令后,kube-apiserver服务与CSI管理节点服务通信,并将PVC卷创建命令传递给CSI管理节点服务。
步骤S13、CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元(External-provisioner)发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;
在本申请实施例中,CSI管理节点12包括外部供应单元(External-provisioner)、外部附着单元(External-attacher)和第一驱动单元(CSI-driver1),针对CSI管理节点12,外部供应单元(External-provisioner)和外部附着单元(External-attacher)均可接收控制中心Master11发送的PVC卷创建命令,其中,外部供应单元(External-provisioner)在接收到控制中心Master11发送的PVC卷创建命令后通过第一驱动单元(CSI-driver1)发送外部配置参数至分布式存储***,进而在分布式存储***中创建对应的PV卷。
步骤S14、外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
步骤S15、目标CSI数据节点中第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中。
在本申请实施例中,外部供应单元在分布式存储***内创建对应的卷时,则确定PVC的pod创建;CSI数据节点的代理服务器接收到预设PVC卷创建命令,并且确定使用PVC的pod建立,接着第一驱动单元接收来自CSI管理节点的附着命令,通过第一驱动单元将在分布式存储***内创建的对应的PV卷附着到目标CSI数据节点,目标CSI数据节点中的第二驱动单元将第一驱动单元在分布式存储***内创建对应的PV卷挂载到创建的需使用PVC的Pod中。
在本申请实施例中,CSI数据节点的代理服务器运行后,节点注册单元向kubelet代理服务器自动进行节点注册,代理服务器通过第二驱动单元(CSI-driver2),将PV卷挂载到Pod中,其中,第二驱动单元为CSI数据节点中的ds pod中的驱动单元。
在本申请实施例中,参见图3所示,所述方法,还包括:
步骤S16、删除pod应用;
步骤S17、删除对应的PVC数据资源;
当控制中心中的apiserver通过kubectl命令接收到预设PVC资源(对象)时,则该预设PVC资源经过控制中心Master中的管理单元(kube-controller-manager)的处理并将生成的预设删除命令通过apiserver发送给代理服务器kubelet,代理服务器则删除CSI数据节点中对应的业务pod;控制中心Master中的apiserver同时将所述预设删除命令发送至CSI管理节点的外部供应单元和外部附着单元,以通过第一驱动单元删除分布式存储中对应的PVC和PV。
在本申请实施例中,通过kubectl命令接收的对象为storageclass.yml和pvc.yml对象,当接收的对象为storageclass.yml和pvc.yaml描述对象时,则表征是要向分布式存储中创建卷,而删除pvc.yml对象时,则表征是要向删除分布式存储中的对应卷。
实施例2
在上一实施例的基础上,进一步地,所述步骤S12中,CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元(External-provisioner)发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;
CSI管理节点接收到PVC卷创建命令后,外部供应单元通过unix域套接字(unixdomain socket)调用CreateVolume接口,将与分布式存储***对应的外部配置参数类型、参数名及外部配置参数值通过第一驱动单元发送至分布式存储***。在此指出,本实施方式中CSI管理节点与分布式存储***之间通过ISCSI协议进行通信,同时,CSI数据节点与分布式存储***之间也通过ISCSI协议进行通信。
在本申请实施例中,在CSI管理节点与分布式存储***连接之后,以REST API方式创建Pool、Target、虚拟磁盘(Vdisk),Mapvdisk(映射虚拟磁盘)资源,并将安装有CSI管理节点的客户端Iqn与Target进行关联,完成卷的创建,PV会自动与PVC进行Bound(绑定),此时PVC资源已准备就绪。
参见图4所示,所述步骤S12,包括:
步骤S121、外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
步骤S122、目标CSI数据节点中第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中。
在本实施方式中CSI数据节点的代理服务运行后,节点注册单元自动向代理服务kubelet注册,以便第二驱动单元与kubelet建立通信连接,以完成后续的挂载操作;具体的,可以基于节点注册单元的注册地址实现代理服务kubelet与第二驱动单元通信,进而通过第二驱动单元将待存储数据存储至分布式存储中对应的卷中。
在本申请中,当CSI控制节点服务采用pod使用PersistentVolumeClaim声明使用CSI管理节点创建的PVC卷时,外部附着单元(External attacher)的sidecar通过unixdomain socket调用NodePublishVolume接口,在该接口中将CSI管理节点的Iqn与分布式存储***解绑并进行控制节点(解附着)Detach操作,并将pod调度到的目标CSI数据节点的Iqn重新进行绑定,即完成Remap操作,将虚拟磁盘(vdisk)资源Attach到该CSI数据节点,通过调用FormatAndMount标准库实现虚拟磁盘(vdisk)的格式化、挂载到CSI数据节点并Mount到Pod的容器目录中,此时CSI数据节点可以将数据持久化到分布式存储***。
在本申请实施例中,CSI数据节点存储待存储数据是在CSI管理节点完成vdisk创建及并将创建的vdisk绑定到预设节点(即完成mapvdisk对象创建)后进行,具体为:将mapvdisk通过iscsi命令login到节点,并将设备mount到引用该pvc的pod的volume目录中,然后pod里的服务在向这个挂载点写入数据后,会通过linux vfs及arstor的接口完成数据在vdisk的写入;同理,删除引用该pvc的pod,也是在CSI控制节点删除对应的vdisk及创建unmapvdisk对象之后进行。
在本申请实施例中,CSI管理节点在分布式存储***中创建数据池(pool)、目标对象(Target)、虚拟磁盘(Vdisk)和Mapvdisk对象(虚拟磁盘与物理设备的映射关系)。同时,CSI管理节点删除分布式存储中对应的卷的过程为:删除对应的存储池,并删除Mapvdisk对象(虚拟磁盘与物理设备的映射关系),具体地,通过执行UnMapvdisk对象实现Mapvdisk对象的删除。
在CSI数据节点,在创建卷时,在对应的CSI控制节点创建好Vdisk及MapVdisk之后,CSI数据节点的第二驱动单元执行RemapVdisk及FormatAndMount从而实现挂载。同理,在删除卷时,执行CleanupMountPoint及iscsi_lib.Disconnect。
步骤S16、删除数据pod应用;
在本实施方式中,当接收到PVC删除命令时候,需要将对应的PVC数据资源以及数据pod应用进行删除,以供其他CSI管理节点、CSI数据节点调用,进而提高PVC数据资源及数据pod服务的利用率。
进一步的,在本申请实施例中,参见图5所示,步骤S16,包括:
步骤S161、CSI数据节点在接收到预设删除命令后,调用CleanupMountPoint接口;
步骤S162、CSI数据节点通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将Volume从Node节点解绑(Detach)操作。
在本申请实施例中,在应用Pod服务删除时,也会通过上述CSI数据节点的调用链,调用NodeUnpublishVolume接口,通过调用标准库CleanupMountPoint,对容器中的挂载点进行清理,然后调用标准库的iscsi_lib.Disconnect,实现将Volume从Node节点的Detach操作。
步骤S17、删除对应的PVC数据资源;进一步地,参见图6所示,步骤S17,包括:
步骤S171、CSI管理节点接收预设PVC删除命令后,外部供应单元(配置pod)调用DeleteVolume接口,进而删除对应PVC;
步骤S172、查询目标CSI数据节点中已经解绑的目标PV信息,根据查询到的虚PV信息与CSI管理节点解绑,并在分布式存储***中将对应的PVC删除;
步骤S173、将虚拟盘Vdisk中的数据删除。
在本申请实施例中,当需要将PVC资源删除时,CSI管理节点在接收到预设PVC删除命令之后调用DeleteVolume接口,首先查询CSI数据节点已经映射的Vdisk信息(分布式存储***中对应的卷信息),在CSI管理节点进行数据面解绑Vdisk,并调用删除Vdisk接口,进行虚拟磁盘(vdisk)的清理操作,此时PV资源会从集群(CSI数据节点)中清理,相应的数据也会在分布式存储***中彻底清除。
本方案,基于ISCSI的分布式存储方法,可在分布式存储***上永久性存储数据,而我们基于ISCSI的分布式存储***,具备多副本、可设页面大小、可配压缩算法、读缓存等特性,可以提供比本地存储更高的数据安全性、性能与扩展性;本方案中提供的CSI插件,以便在k8s容器中有效使用分布式存储***,进而将分布式存储***的优势得以有效发挥。
实施例3
根据本申请实施例提供一种基于CSI插件的数据存储***,参见图7所示,包括:
控制中心71,用于接收到PVC创建命令后,发送PVC卷创建命令给CSI管理节点;
CSI管理节点72,用于接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;CSI管理节点的外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
CSI数据节点73,预设的第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中;
其中,预设的第二驱动单元为目标数据节点中的第二驱动单元。
在本申请实施例中,所述CSI管理节点,还用于:
接收到PVC卷创建命令后,外部供应单元通过unix域套接字调用CreateVolume接口,将与分布式存储***对应的外部配置参数通过第一驱动单元发送至分布式存储***;
所述外部配置参数包括外部配置参数的类型、参数名及参数值。
在本申请实施例中,所述控制中心,还用于:
向目标CSI数据节点发送预设删除命令,所述目标CSI数据节点调用CleanupMountPoint接口,通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将挂载在使用PVC的pod中的PV从该目标CSI数据节点解绑。
本申请实施例提供的基于CSI插件的数据存储***,基于ISCSI的分布式存储***或者CSI插件,可在分布式存储***上永久性存储数据,而我们基于ISCSI的分布式存储***,具备多副本、可设页面大小、可配压缩算法、读缓存等特性,可以提供比本地存储更高的数据安全性、性能与扩展性;本方案中提供的CSI插件,以便在k8s容器中有效使用分布式存储***,进而将分布式存储***的优势得以有效发挥。
实施例4
图8是本申请一个实施例提供的基于CSI插件的数据存储装置的框图,本实施例所述基于CSI插件的数据存储装置可以是桌上型计算机、笔记本电脑、掌上电脑以及云端服务器等计算设备,该装置可以包括,但不限于,处理器、存储器。本实施例所述基于CSI插件的数据存储装置至少包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序可在所述处理器上运行,所述处理器执行所述计算机程序时,实现上述基于CSI插件的数据存储方法实施例中的步骤,例如图2-图3任一项所示的基于CSI插件的数据存储方法的步骤。或者,所述处理器执行所述计算机程序时,实现上述基于CSI插件的数据存储装置实施例中各模块的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或多个模块被存储在所述存储器中,并由处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于CSI插件的数据存储装置中的执行过程。例如,所述计算机程序可以被分割成管理端、CSI管理节点和CSI数据节点,各模块的具体功能如下:
控制中心,用于接收到PVC创建命令后,发送PVC卷创建命令给CSI管理节点;
CSI管理节点,用于接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;CSI管理节点的外部附着单元(External-attacher)接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
CSI数据节点,预设的第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中;
其中,预设的第二驱动单元为目标数据节点中的第二驱动单元。
处理器可以包括一个或多个处理核心,比如:4核心处理器、6核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);中央处理器是用于对在待机状态下的数据进行处理的低功耗处理器。一些实施例中,处理器还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。所述处理器是所述支持多架构的Kubernetes集成与部署的装置的控制中心,利用各种接口和线路连接整个基于CSI插件的数据存储装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于CSI插件的数据存储装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)、至少一个磁盘存储器件、内存器件、或其他易失性固态存储器件。
本领域技术人员可以理解,本实施例所述的装置仅仅是支持多架构的Kubernetes集成与部署的装置的示例,并不构成对基于CSI插件的数据存储装置的限定,其他实施方式中,还可以包括更多或更少的部件,或者组合某些部件,或者不同部件,例如基于CSI插件的数据存储装置还可以包括输入输出设备、网络接入设备、总线等。处理器、存储器和***设备接口之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口相连。示意性地,***设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,基于CSI插件的数据存储装置还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时用于实现上述基于CSI插件的数据存储方法的步骤。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述基于CSI插件的数据存储方法实施例的步骤。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.基于CSI插件的数据存储方法,应用于将待存储数据存储至基于ISCSI的分布式存储***中,其特征在于,所述方法,包括:
在CSI管理节点中部署第一驱动单元,在每个CSI数据节点中部署第二驱动单元;
控制中心发送PVC卷创建命令给CSI管理节点,CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;
外部附着单元接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;
目标CSI数据节点中第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中;
所述在CSI管理节点中部署第一驱动单元,在每个CSI数据节点中部署第二驱动单元,包括:
在CSI管理节点中将第一驱动单元与外部供应单元、外部附着单元部署于同一pod中;
在CSI数据节点中将第二驱动单元与节点注册单元部署于同一pod中。
2.根据权利要求1所述的方法,其特征在于,所述CSI管理节点接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设的外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷,包括:
CSI管理节点接收到PVC卷创建命令后,外部供应单元通过unix域套接字调用CreateVolume接口,将与分布式存储***对应的外部配置参数通过第一驱动单元发送至分布式存储***;
所述外部配置参数包括外部配置参数的类型、参数名及参数值。
3.根据权利要求2所述的方法,其特征在于,在所述第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷时,则在目标CSI数据节点创建引用PVC的pod。
4.根据权利要求1所述的方法,其特征在于,还包括:
删除数据pod应用,删除对应的PVC数据资源。
5.根据权利要求4所述的方法,其特征在于,所述删除数据pod应用,包括:
控制中心向目标CSI数据节点发送预设删除命令,所述目标CSI数据节点调用CleanupMountPoint接口,通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将挂载在使用PVC的pod中的PV从该目标CSI数据节点解绑。
6.根据权利要求4所述的方法,其特征在于:所述删除对应的PVC数据资源,包括:
控制中心向CSI管理节点发送预设删除命令,所述外部供应单元调用DeleteVolume接口,删除PVC;
查询目标CSI数据节点中已经解绑的PV信息,根据查询到的PV信息在CSI管理节点中进行解绑,并调用删除Vdisk接口,进行PV的删除。
7.基于CSI插件的数据存储***,其特征在于,包括:
控制中心,用于接收到PVC创建命令后,发送PVC卷创建命令给CSI管理节点;
CSI管理节点,用于接收到PVC卷创建命令后,CSI管理节点中的外部供应单元发送预设外部配置参数至第一驱动单元,然后第一驱动单元将外部配置参数发送至分布式存储***进而在分布式存储***中创建对应的PV卷;CSI管理节点的外部附着单元接收到引用创建的PVC的pod的创建命令后,发送附着命令至第一驱动单元,第一驱动单元将创建的对应的PV卷附着到目标CSI数据节点上;在所述CSI管理节点中将第一驱动单元与外部供应单元、外部附着单元部署于同一pod中;
CSI数据节点,预设的第二驱动单元将附着在该节点上的PV卷挂载到引用PVC的pod中;在所述CSI数据节点中将第二驱动单元与节点注册单元部署于同一pod中;
其中,预设的第二驱动单元为目标数据节点中的第二驱动单元。
8.根据权利要求7所述的基于CSI插件的数据存储***,其特征在于,所述CSI管理节点,还用于:
接收到PVC卷创建命令后,外部供应单元通过unix域套接字调用CreateVolume接口,将与分布式存储***对应的外部配置参数通过第一驱动单元发送至分布式存储***;
所述外部配置参数包括外部配置参数的类型、参数名及参数值。
9.根据权利要求8所述的基于CSI插件的数据存储***,其特征在于,所述控制中心,还用于:
向目标CSI数据节点发送预设删除命令,所述目标CSI数据节点调用CleanupMountPoint接口,通过预设标准库CleanupMountPoint的iscsi_lib.Disconnect,将挂载在使用PVC的pod中的PV从该目标CSI数据节点解绑。
10.基于CSI插件的数据存储装置,所述装置包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序由所述处理器加载并执行,以实现如权利要求1-6任一项所述基于CSI插件的数据存储方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现如权利要求1-6任一项所述基于CSI插件的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210555018.2A CN114911421B (zh) | 2022-05-19 | 2022-05-19 | 基于csi插件的数据存储方法、***、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210555018.2A CN114911421B (zh) | 2022-05-19 | 2022-05-19 | 基于csi插件的数据存储方法、***、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114911421A CN114911421A (zh) | 2022-08-16 |
CN114911421B true CN114911421B (zh) | 2023-08-04 |
Family
ID=82769242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210555018.2A Active CN114911421B (zh) | 2022-05-19 | 2022-05-19 | 基于csi插件的数据存储方法、***、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911421B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117857587A (zh) * | 2024-01-09 | 2024-04-09 | 暗物质(北京)智能科技有限公司 | 一种对象存储***间的数据通信方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193504A (zh) * | 2017-06-02 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Kubernetes的自动化分配和创建应用存储的方法和*** |
CN111913665A (zh) * | 2020-07-30 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储卷的挂载方法及装置、电子设备 |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
CN112764766A (zh) * | 2021-01-22 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种k8s集群与存储的对接方法、装置、设备及存储介质 |
CN113504954A (zh) * | 2021-07-08 | 2021-10-15 | 华云数据控股集团有限公司 | 调用CSI LVM Plugin插件、动态持久卷供应的方法、***及介质 |
CN114253656A (zh) * | 2020-09-24 | 2022-03-29 | 红帽公司 | 用于微服务工作负载的覆盖式容器存储驱动器 |
CN114281253A (zh) * | 2021-12-10 | 2022-04-05 | 招商银行股份有限公司 | 存储卷的管理方法 |
-
2022
- 2022-05-19 CN CN202210555018.2A patent/CN114911421B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193504A (zh) * | 2017-06-02 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Kubernetes的自动化分配和创建应用存储的方法和*** |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
CN111913665A (zh) * | 2020-07-30 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储卷的挂载方法及装置、电子设备 |
CN114253656A (zh) * | 2020-09-24 | 2022-03-29 | 红帽公司 | 用于微服务工作负载的覆盖式容器存储驱动器 |
CN112764766A (zh) * | 2021-01-22 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种k8s集群与存储的对接方法、装置、设备及存储介质 |
CN113504954A (zh) * | 2021-07-08 | 2021-10-15 | 华云数据控股集团有限公司 | 调用CSI LVM Plugin插件、动态持久卷供应的方法、***及介质 |
CN114281253A (zh) * | 2021-12-10 | 2022-04-05 | 招商银行股份有限公司 | 存储卷的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114911421A (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109818934B (zh) | 一种自动化日志处理的方法、装置及计算设备 | |
CN112835524A (zh) | 存储资源配置方法、存储资源控制器及调度*** | |
WO2021086693A1 (en) | Management of multiple physical function non-volatile memory devices | |
CN113268308A (zh) | 信息处理方法、装置以及存储介质 | |
CN113961520A (zh) | 动态文件挂载方法、***、计算机设备及可读存储介质 | |
CN114911421B (zh) | 基于csi插件的数据存储方法、***、装置及存储介质 | |
US10783073B2 (en) | Chronologically ordered out-of-place update key-value storage system | |
CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
CN113051102B (zh) | 文件备份方法、装置、***、存储介质和计算机设备 | |
CN103607429A (zh) | 云计算业务实现方法和*** | |
WO2024103840A1 (zh) | 镜像文件制作方法、装置、设备及非易失性可读存储介质 | |
CN117194039A (zh) | K8s驱动集成***、请求处理方法、设备及存储介质 | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
CN113504872B (zh) | 一种云物理机挂载虚拟磁盘的方法、***、设备及介质 | |
CN110704249A (zh) | 一种保证应用一致性的方法、装置及*** | |
CN109189339B (zh) | 一种存储***下自动配置缓存加速方法 | |
CN110069221A (zh) | 数据释放方法及装置 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
CN117056029B (zh) | 资源处理方法、***、装置、存储介质及电子设备 | |
CN113703676B (zh) | 一种双活卷的调用方法、装置、设备和介质 | |
US8849763B1 (en) | Using multiple clients for data backup | |
JP5267198B2 (ja) | 情報処理装置および情報処理方法 | |
US20040049560A1 (en) | Method and apparatus for configuring a computer system to operate with perhiperal devices | |
CN115987869A (zh) | 一种多网卡容器自定义路由配置方法、装置以及介质 | |
JP2023174559A (ja) | コンテナ環境にボリュームを提供するための方法およびシステム |
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 |