CN111913665B - 存储卷的挂载方法及装置、电子设备 - Google Patents

存储卷的挂载方法及装置、电子设备 Download PDF

Info

Publication number
CN111913665B
CN111913665B CN202010754290.4A CN202010754290A CN111913665B CN 111913665 B CN111913665 B CN 111913665B CN 202010754290 A CN202010754290 A CN 202010754290A CN 111913665 B CN111913665 B CN 111913665B
Authority
CN
China
Prior art keywords
storage volume
container
mounting
storage
interface
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
CN202010754290.4A
Other languages
English (en)
Other versions
CN111913665A (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.)
Beijing Xingchen Tianhe Technology Co ltd
Original Assignee
Beijing Xingchen Tianhe 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 Beijing Xingchen Tianhe Technology Co ltd filed Critical Beijing Xingchen Tianhe Technology Co ltd
Priority to CN202010754290.4A priority Critical patent/CN111913665B/zh
Publication of CN111913665A publication Critical patent/CN111913665A/zh
Application granted granted Critical
Publication of CN111913665B publication Critical patent/CN111913665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储卷的挂载方法及装置、电子设备。其中,该方法包括:接收容器编排系统发送的存储卷扩容请求;响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址;将目标存储卷的存储地址加入至文件存储系统的访问列表中;将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。本发明解决了相关技术中对于编排系统无法动态生成存储卷且挂载效率较低的技术问题。

Description

存储卷的挂载方法及装置、电子设备
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种存储卷的挂载方法及装置、电子设备。
背景技术
相关技术中,主流的容器编排系统有Kubernetes和docker swarm等,当前的容器状态应用开始有了容器化的需要,需要在容器平台提供持久化数据,以Kubernetes编排系统为例,使用NFS协议为容器数据持久化的方案主要有以下几种:
方案一:Kubernetes内置的自带插件,即in-tree NFS plugin,这是一种耦合性比较高的做法,作为Kubernetes中自带的一种实现方式。使用的时候无需额外部署,只需要Kubernetes部署完成,手动创建PV(持久卷)并填写必要的参数,之后在业务容器中以NFS协议挂载,当业务容器使用的时候,容器编排系统会使用内置的代码逻辑辅助完成挂载,但是这种方式存在明显的弊端:即无法动态生成存储卷,且需要预先存储相关的代码内嵌在Kubernetes核心代码中,发布和维护均和Kubernetes绑定,灵活性非常差,且难以维护。
方案二:Kubernetes社区开源的基于CSI接口的实现,这种方式最大的特点是代码不需要内嵌在Kubernetes发行版中,NFS挂载相关的代码抽离,并部署成上图的CSI driver容器,因此对Kubernetes而言是非侵入式的。通过提供NodePublishVolume和NodeUnPublishVolume两个接口,当Kubernetes需要挂载和卸载NFS存储卷的时候,它会通过Kubelet组件并透过预先注册的socket连接到容器化部署的csi-driver-nfs容器,从而完成最基础的NFS挂载和卸载动作。但是这种方案也无法动态生成存储卷,且数据卷没有容量大小概念,只有文件夹概念。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种存储卷的挂载方法及装置、电子设备,以至少解决相关技术中对于编排系统无法动态生成存储卷且挂载效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种存储卷的挂载方法,包括:接收容器编排系统发送的存储卷扩容请求;响应所述存储卷扩容请求,创建目标存储卷,其中,所述目标存储卷在所述容器编排系统上链接有存储地址;将所述目标存储卷的存储地址加入至文件存储系统的访问列表中;将所述访问列表挂载到工作目录上,以使服务器节点上的各个容器访问所述工作目录上的各个存储卷。
可选地,在接收容器编排系统发送的存储卷扩容请求之前,所述挂载方法还包括:接收接口对接请求,其中,所述接口对接请求为远程过程调用RPC请求;响应所述接口对接请求,将通用接口的接口参数发送至所述容器编排系统,以完成所述容器编排系统与当前驱动的接口对接;在完成接口对接后,获取接口返回参数和接口实现状态;基于所述接口返回参数和接口实现状态,确定服务等级,其中,所述服务等级用于指示能够为远程过程调用的服务器节点提高的存储服务等级。
可选地,在接收容器编排系统发送的存储卷扩容请求之前,所述挂载方法还包括:通过所述容器编排系统查找驱动注册列表,其中,所述驱动注册列表包括当前驱动的插件注册信息;通过所述容器编排系统基于所述驱动注册列表,分析插件信息,其中,所述插件信息至少包括:当前驱动版本、插件名称、节点ID;通过所述容器编排系统基于所述插件信息,与当前驱动建立通信连接。
可选地,响应所述存储卷扩容请求,创建目标存储卷的步骤,包括:解析所述存储卷扩容请求,确定卷存储容量和后端共享文件夹名称;基于所述卷存储容量和后端共享文件夹名称,创建所述目标存储卷。
可选地,将所述访问列表挂载到工作目录上的步骤,包括:将所述访问列表挂载到工作目录上的数组级目录。
可选地,在将所述访问列表挂载到工作目录上之后,所述挂载方法还包括:确定服务器节点的容器访问权限;在所述容器访问权限满足预设权限条件时,将所述目标存储卷映射至所述容器编排系统关联的宿主机上。
可选地,将所述目标存储卷映射至所述容器编排系统关联的宿主机上的步骤,包括:将所述目标存储卷映射至服务器节点的目标容器内的临时目录上;将所述临时目录映射至宿主机的全局目录,其中,所述宿主机将全局目录映射至所述服务器节点上除所述目标容器外的其它容器内。
根据本发明实施例的另一方面,还提供了一种存储卷的挂载装置,包括:接收单元,用于接收容器编排系统发送的存储卷扩容请求;创建单元,用于响应所述存储卷扩容请求,创建目标存储卷,其中,所述目标存储卷在所述容器编排系统上链接有存储地址;附加单元,用于将所述目标存储卷的存储地址加入至文件存储系统的访问列表中;挂载单元,用于将所述访问列表挂载到工作目录上,以使服务器节点上的各个容器访问所述工作目录上的各个存储卷。
可选地,所述存储卷的挂载装置还包括:第一接收模块,用于在接收容器编排系统发送的存储卷扩容请求之前,接收接口对接请求,其中,所述接口对接请求为远程过程调用RPC请求;响应单元,用于响应所述接口对接请求,将通用接口的接口参数发送至所述容器编排系统,以完成所述容器编排系统与当前驱动的接口对接;获取单元,用于在完成接口对接后,获取接口返回参数和接口实现状态;第一确定单元,用于基于所述接口返回参数和接口实现状态,确定服务等级,其中,所述服务等级用于指示能够为远程过程调用的服务器节点提高的存储服务等级。
可选地,所述存储卷的挂载装置还包括:查找单元,用于在接收容器编排系统发送的存储卷扩容请求之前,通过所述容器编排系统查找驱动注册列表,其中,所述驱动注册列表包括当前驱动的插件注册信息;分析单元,用于通过所述容器编排系统基于所述驱动注册列表,分析插件信息,其中,所述插件信息至少包括:当前驱动版本、插件名称、节点ID;通信连接单元,用于通过所述容器编排系统基于所述插件信息,与当前驱动建立通信连接。
可选地,所述创建单元包括:解析模块,用于解析所述存储卷扩容请求,确定卷存储容量和后端共享文件夹名称;创建模块,用于基于所述卷存储容量和后端共享文件夹名称,创建所述目标存储卷。
可选地,所述挂载单元包括:挂载模块,用于将所述访问列表挂载到工作目录上的数组级目录。
可选地,所述存储卷的挂载装置还包括:第二确定模块,用于在在将所述访问列表挂载到工作目录上之后,确定服务器节点的容器访问权限;映射都那样,用于在所述容器访问权限满足预设权限条件时,将所述目标存储卷映射至所述容器编排系统关联的宿主机上。
可选地,所述映射单元包括:第一映射模块,用于将所述目标存储卷映射至服务器节点的目标容器内的临时目录上;第二映射模块,用于将所述临时目录映射至宿主机的全局目录,其中,所述宿主机将全局目录映射至所述服务器节点上除所述目标容器外的其它容器内。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的存储卷的挂载方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的存储卷的挂载方法。
本发明实施例中,先接收容器编排系统发送的存储卷扩容请求,然后响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址,将目标存储卷的存储地址加入至文件存储系统的访问列表中,最后将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。在该实施例中,可以实现为容器编排系统提供高级的持久化数据功能,实现自动创建存储卷,完成存储卷的动态扩容,与容器编排系统完全解耦,升级卸载等操作无须侵入容器编排系统,且存储卷挂载效率提高,从而解决相关技术中对于编排系统无法动态生成存储卷且挂载效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的存储卷的挂载方法的流程图;
图2是根据本发明实施例的一种可选的存储卷的挂载装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或者名词做出解释:
本发明下述各实施例可以应用于容器编排环境中,实现容器编排系统与当前驱动(例如,PC端驱动)的接口连接,并实现存储卷动态扩容、依附到挂载,该存储卷的类型可以为NFS存储卷,容器编排系统用于管理各个客户驱动(Driver)或者容器,负责指定接口与当前驱动的连接,查询驱动Driver可实现的相应功能(例如,判断是否能够提供动态供应存储卷、是否能够动态扩容、容器可用大小)、指令下发(例如,格式化指令)。
本发明实施例中,当前驱动运行的分布式存储系统可以提供通用接口,容器编排系统利用通用接口实现多类型的客户终端与该容器编排系统实现接口对接,实现容器编排系统与分布式存储系统对接。在本发明实施例以K8s为示例,说明容器编排系统。
实施例一
根据本发明实施例,提供了一种存储卷的挂载方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的存储卷的挂载方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,接收容器编排系统发送的存储卷扩容请求;
步骤S104,响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址;
步骤S106,将目标存储卷的存储地址加入至文件存储系统的访问列表中;
步骤S108,将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。
通过上述步骤,可以先接收容器编排系统发送的存储卷扩容请求,然后响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址,将目标存储卷的存储地址加入至文件存储系统的访问列表中,最后将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。在该实施例中,可以实现为容器编排系统提供高级的持久化数据功能,实现自动创建存储卷,完成存储卷的动态扩容,与容器编排系统完全解耦,升级卸载等操作无须侵入容器编排系统,且存储卷挂载效率提高,从而解决相关技术中对于编排系统无法动态生成存储卷且挂载效率较低的技术问题。
以容器编排系统为主体进行说明时,该容器编排系统(例如,K8s)可通过gPRC方式访问文件驱动服务(例如,CSI-NFS-Driver服务),每个接口处理的能力或者作用不同,容器编排系统根据gRPC接口的实现情况和接口返回值确定能否提供相应等级的服务。容器编排系统访问文件驱动服务是有序的,按照不同阶段请求相应的存储处理能力。第一阶段,容器编排系统发起请求卷RPC请求(存储卷扩容请求),第二阶段编排系统发起控制器依附请求,第三阶段发起节点准备请求,第四阶段发起节点挂载请求。
文件驱动服务实现容器化插件,在使用的时候只需简单按需部署接口,对原有的Kubernetes系统完全零侵入,不需要任何改动即可实现企业级的文件存储服务,此方案需要多个组件相互协作最终实现高度自动化的NFS持久化卷的管理和使用。
即通过提供通用接口,实现容器编排系统与当前驱动的接口对接。通过多阶处理,从而实现在容器平台使用NFS协议持久化数据的更多难点,在第一阶段,一个存储卷对应一个文件夹,创建CSI存储卷,容器编排系统向当前驱动发送存储卷扩容请求,当前驱动受到请求后,对分布式存储系统进行操作(实现文件存储系统NAS的存储),分配存储资源,完成存储资源的创建(在容器编排系统上有文件夹),完成后,可以给RPC回复存储卷创建完成消息。在第二阶段,容器编排系统发送存储卷附着请求,解析容器编排系统的IP,将IP加入NAS的访问列表,完成后,回复完成附着请求,建立关联关系。在第三阶段,容器编排系统发送RPC请求(即挂载请求),驱动根据RPC请求,将NFS挂载到工作目录上的数组级目录上,方便节点上的容器访问。
下面结合上述各步骤来详细说明本发明。
可选的,在接收容器编排系统发送的存储卷扩容请求之前,挂载方法还包括:接收接口对接请求,其中,接口对接请求为远程过程调用RPC请求;响应接口对接请求,将通用接口的接口参数发送至容器编排系统,以完成容器编排系统与当前驱动的接口对接;在完成接口对接后,获取接口返回参数和接口实现状态;基于接口返回参数和接口实现状态,确定服务等级,其中,服务等级用于指示能够为远程过程调用的服务器节点提高的存储服务等级。
可选地,在接收容器编排系统发送的存储卷扩容请求之前,挂载方法还包括:通过容器编排系统查找驱动注册列表,其中,驱动注册列表包括当前驱动的插件注册信息;通过容器编排系统基于驱动注册列表,分析插件信息,其中,插件信息至少包括:当前驱动版本、插件名称、节点ID;通过容器编排系统基于插件信息,与当前驱动建立通信连接。
本发明实施例中的文件驱动系统(CSI-NFS-Driver)的系统结构,提供了3个gRPC服务,分别是Identity服务,Controller服务,以及Node服务。
其中,Identity服务提供的插件的发现和验证服务,通过对此服务发起gRPC请求实现,Identity服务相应插件的名字版本以及能提供的能力,从而实现NFS存储插件的自动注册,且无须侵入容器编排系统的核心代码层。在启动的时候会启动Identity服务,该服务获取当前版本,插件名字节点ID等组合为插件信息,并通过Unix Domain Socket和容器编排系统通信。
容器编排系统检测到指定目录上有Unix Domain Socket文件,发现有插件注入系统,然后会通过此Socket文件进行gPRC连接,发起GetPluginInfo请求和NodeGetInfo获取插件信息,文件驱动系统收到该请求后根据插件初始化的信息(名称、版本号)或者查询存储系统构建响应数据进行回应,容器编排系统收到后注册到节点信息中,完成插件注册过程。
步骤S102,接收容器编排系统发送的存储卷扩容请求。
步骤S104,响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址。
在本发明实施例中,响应存储卷扩容请求,创建目标存储卷的步骤,包括:解析存储卷扩容请求,确定卷存储容量和后端共享文件夹名称;基于卷存储容量和后端共享文件夹名称,创建目标存储卷。
以Controller服务为例,其中,通过CreateVolume创建一个NFS卷,因此在存储卷扩容请求中进行卷的控制数据处理,包括存储容量、后端共享文件夹名称等的控制。
步骤S106,将目标存储卷的存储地址加入至文件存储系统的访问列表中。
上述步骤可实现卷附着处理,添加容器编排系统挂载节点到NFS存储端可访问列表中,从而实现对容器的业务节点权限控制问题。节点挂载需要满足一定的条件,如将容器编排系统k8s的node节点加入NFS服务器的可访问列表,即赋予相应的访问权限,这一步的操作是在ControllerPublishVolume请求阶段完成的,这为后续挂载提供可访问提供基本支持。
通过增加ControllerPublishVolume操作完成虚拟的附着操作,从而实现容器编排系统Node节点和NFS持久卷的虚拟关联,从而设置了访问权限等操作。创新点,只要确保attacher辅助容器健康,即可在使用NFS存储卷之前完成额外设置安全访问,从而解决后续业务容器消费挂载卷时的权限问题,提高安全性。
步骤S108,将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。
可选的,将访问列表挂载到工作目录上的步骤,包括:将访问列表挂载到工作目录上的数组级目录。
另一种可选的,在将访问列表挂载到工作目录上之后,挂载方法还包括:确定服务器节点的容器访问权限;在容器访问权限满足预设权限条件时,将目标存储卷映射至容器编排系统关联的宿主机上。
在授予访问权限的基础上,由于插件的容器化部署,因此文件驱动服务是在容器编排系统的node节点上的一个容器内(docker),它允许在独立的命名空间,但是通过映射卷(dokcer的volume机制)的方式和宿主机的存储进行关联,在文件驱动服务进行挂载最终会映射为容器编排系统关联的宿主机上的某个目录。因此只要能在文件驱动系统的容器能把相应的NFS共享挂载过来也就意味着自动映射到宿主机的挂载目录,从而同个宿主机的其他业务容器也能引用。由于存储使用的是标准的NFS协议,因此本发明在文件驱动系统的容器内安装了NFS客户端工具nfs-utils包,例如,可以通过nfs v4或者nfs v4协议挂载网络存储在容器内部,最终通过docker的volume映射到宿主机即容器编排系统的node节点的目录上。
在本发明实施例,将目标存储卷映射至容器编排系统关联的宿主机上的步骤,包括:将目标存储卷映射至服务器节点的目标容器内的临时目录上;将临时目录映射至宿主机的全局目录,其中,宿主机将全局目录映射至服务器节点上除目标容器外的其它容器内。
在查询到与创建的存储卷关联的NFS共享后,把共享挂载到一个容器编排系统的Node上某个全局目录,比如/mnt/container-id1/share然后把通过容器的volume参数把这个共享最终映射到容器内的应用目录,完成消费,容器可以做读写之类的持久化操作。
以Node服务为例,Node服务是负责和容器编排系统工作节点相关的工作,挂载卷操作是关联到某个业务节点上执行的。当业务容器在被调度到节点A,则A节点上的Kubelet组件会向Node服务发起NodePublishVolume的RPC请求,此时作为Node服务端确定nfs协议版本,以及其他挂载参数后在宿主机某个目录挂载远端NFS共享,然后再把该共享传递挂载到业务容器节点,从而完成业务容器消费远端的NFS共享卷。
文件驱动系统的容器内部使用nfs-utils工具通过标准nfs v4或者v3协议挂载网络存储到容器内部某个临时目录,该临时目录通过映射的方式再关联回给宿主机全局目录,而容器编排系统的node节点即宿主机又可以继续把上面的全局目录继续映射到更多的容器内部。
本发明实施例指示的的映射,在不同层面回包装成不一样的概念,对容器编排系统而言,可简称为HostPath volume,而对docker而言,它所用的概念为volume,而对于Linux而言,它的概念为挂载命名空间(mount namespace)。这是Linux系统或者docker或者容器编排系统本身就支持的一种特性。
本发明还可以配合供应辅助容器(例如,External-provisioner:外部辅助容器,负责发起自动创建PV卷RPC请求;External-attacher:外部辅助容器,发起附着PRC请求;CSI plugin:响应辅助容器的请求,gRPC服务端,提供CSI定义的存储操作接口的服务),以子文件夹为粒度赋予NFS共享文件夹以存储卷的概念,来实现动态供给和删除,且只有在业务容器需要使用NFS数据卷的时候才创建相应的共享卷,无须额外创建和绑定,直接替代了大量繁琐的人工配置操作。
通过上述实施例,可以远程调用机制,实现动态创建PV卷,从而解决NFS持久卷的动态供应问题,无需手动创建容器编排系统需要的存储卷。同时还通过在存储后端设置存储容量,文件数方式实现文件共享的存储卷设置从而约束数据卷的使用。
通过外置的gRPC服务来实现和容器编排系统解耦,从而实现灵活升级,无须更改编排系统的核心代码,随时可以通过重新实现插件的代码和版本并重新部署的方式来实现更多的功能,如权限控制操作,配置控制等
实施例二
图2是根据本发明实施例的一种可选的存储卷的挂载装置的示意图,如图2所示,该挂载装置可以包括:接收单元21、创建单元23、附加单元25、挂载单元27,其中,
接收单元21,用于接收容器编排系统发送的存储卷扩容请求;
创建单元23,用于响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址;
附加单元25,用于将目标存储卷的存储地址加入至文件存储系统的访问列表中;
挂载单元27,用于将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。
上述存储卷的挂载装置,可以先通过接收单元21接收容器编排系统发送的存储卷扩容请求,然后通过创建单元23响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址,通过附加单元25将目标存储卷的存储地址加入至文件存储系统的访问列表中,最后通过挂载单元27将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。在该实施例中,可以实现为容器编排系统提供高级的持久化数据功能,实现自动创建存储卷,完成存储卷的动态扩容,与容器编排系统完全解耦,升级卸载等操作无须侵入容器编排系统,且存储卷挂载效率提高,从而解决相关技术中对于编排系统无法动态生成存储卷且挂载效率较低的技术问题。
可选的,存储卷的挂载装置还包括:第一接收模块,用于在接收容器编排系统发送的存储卷扩容请求之前,接收接口对接请求,其中,接口对接请求为远程过程调用RPC请求;响应单元,用于响应接口对接请求,将通用接口的接口参数发送至容器编排系统,以完成容器编排系统与当前驱动的接口对接;获取单元,用于在完成接口对接后,获取接口返回参数和接口实现状态;第一确定单元,用于基于接口返回参数和接口实现状态,确定服务等级,其中,服务等级用于指示能够为远程过程调用的服务器节点提高的存储服务等级。
另一种可选的,存储卷的挂载装置还包括:查找单元,用于在接收容器编排系统发送的存储卷扩容请求之前,通过容器编排系统查找驱动注册列表,其中,驱动注册列表包括当前驱动的插件注册信息;分析单元,用于通过容器编排系统基于驱动注册列表,分析插件信息,其中,插件信息至少包括:当前驱动版本、插件名称、节点ID;通信连接单元,用于通过容器编排系统基于插件信息,与当前驱动建立通信连接。
可选的,创建单元包括:解析模块,用于解析存储卷扩容请求,确定卷存储容量和后端共享文件夹名称;创建模块,用于基于卷存储容量和后端共享文件夹名称,创建目标存储卷。
可选的,挂载单元包括:挂载模块,用于将访问列表挂载到工作目录上的数组级目录。
在本发明实施例中,存储卷的挂载装置还包括:第二确定模块,用于在在将访问列表挂载到工作目录上之后,确定服务器节点的容器访问权限;映射都那样,用于在容器访问权限满足预设权限条件时,将目标存储卷映射至容器编排系统关联的宿主机上。
可选的,映射单元包括:第一映射模块,用于将目标存储卷映射至服务器节点的目标容器内的临时目录上;第二映射模块,用于将临时目录映射至宿主机的全局目录,其中,宿主机将全局目录映射至服务器节点上除目标容器外的其它容器内。
上述的存储卷的挂载装置还可以包括处理器和存储器,上述接收单元21、创建单元23、附加单元25、挂载单元27等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的存储卷的挂载方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的存储卷的挂载方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收容器编排系统发送的存储卷扩容请求;响应存储卷扩容请求,创建目标存储卷,其中,目标存储卷在容器编排系统上链接有存储地址;将目标存储卷的存储地址加入至文件存储系统的访问列表中;将访问列表挂载到工作目录上,以使服务器节点上的各个容器访问工作目录上的各个存储卷。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种存储卷的挂载方法,其特征在于,包括:
接收容器编排系统发送的存储卷扩容请求;
响应所述存储卷扩容请求,创建目标存储卷,其中,所述目标存储卷在所述容器编排系统上链接有存储地址;
将所述目标存储卷的存储地址加入至文件存储系统的访问列表中;
将所述访问列表挂载到工作目录上,以使服务器节点上的各个容器访问所述工作目录上的各个存储卷。
2.根据权利要求1所述的挂载方法,其特征在于,在接收容器编排系统发送的存储卷扩容请求之前,所述挂载方法还包括:
接收接口对接请求,其中,所述接口对接请求为远程过程调用RPC请求;
响应所述接口对接请求,将通用接口的接口参数发送至所述容器编排系统,以完成所述容器编排系统与当前驱动的接口对接;
在完成接口对接后,获取接口返回参数和接口实现状态;
基于所述接口返回参数和接口实现状态,确定服务等级,其中,所述服务等级用于指示能够为远程过程调用的服务器节点提高的存储服务等级。
3.根据权利要求1所述的挂载方法,其特征在于,在接收容器编排系统发送的存储卷扩容请求之前,所述挂载方法还包括:
通过所述容器编排系统查找驱动注册列表,其中,所述驱动注册列表包括当前驱动的插件注册信息;
通过所述容器编排系统基于所述驱动注册列表,分析插件信息,其中,所述插件信息至少包括:当前驱动版本、插件名称、节点ID;
通过所述容器编排系统基于所述插件信息,与当前驱动建立通信连接。
4.根据权利要求1所述的挂载方法,其特征在于,响应所述存储卷扩容请求,创建目标存储卷的步骤,包括:
解析所述存储卷扩容请求,确定卷存储容量和后端共享文件夹名称;
基于所述卷存储容量和后端共享文件夹名称,创建所述目标存储卷。
5.根据权利要求1所述的挂载方法,其特征在于,将所述访问列表挂载到工作目录上的步骤,包括:
将所述访问列表挂载到工作目录上的数组级目录。
6.根据权利要求1所述的挂载方法,其特征在于,在将所述访问列表挂载到工作目录上之后,所述挂载方法还包括:
确定服务器节点的容器访问权限;
在所述容器访问权限满足预设权限条件时,将所述目标存储卷映射至所述容器编排系统关联的宿主机上。
7.根据权利要求6所述的挂载方法,其特征在于,将所述目标存储卷映射至所述容器编排系统关联的宿主机上的步骤,包括:
将所述目标存储卷映射至服务器节点的目标容器内的临时目录上;
将所述临时目录映射至宿主机的全局目录,其中,所述宿主机将全局目录映射至所述服务器节点上除所述目标容器外的其它容器内。
8.一种存储卷的挂载装置,其特征在于,包括:
接收单元,用于接收容器编排系统发送的存储卷扩容请求;
创建单元,用于响应所述存储卷扩容请求,创建目标存储卷,其中,所述目标存储卷在所述容器编排系统上链接有存储地址;
附加单元,用于将所述目标存储卷的存储地址加入至文件存储系统的访问列表中;
挂载单元,用于将所述访问列表挂载到工作目录上,以使服务器节点上的各个容器访问所述工作目录上的各个存储卷。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任意一项所述的存储卷的挂载方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的存储卷的挂载方法。
CN202010754290.4A 2020-07-30 2020-07-30 存储卷的挂载方法及装置、电子设备 Active CN111913665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010754290.4A CN111913665B (zh) 2020-07-30 2020-07-30 存储卷的挂载方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010754290.4A CN111913665B (zh) 2020-07-30 2020-07-30 存储卷的挂载方法及装置、电子设备

Publications (2)

Publication Number Publication Date
CN111913665A CN111913665A (zh) 2020-11-10
CN111913665B true CN111913665B (zh) 2023-11-24

Family

ID=73286417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010754290.4A Active CN111913665B (zh) 2020-07-30 2020-07-30 存储卷的挂载方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN111913665B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966305B (zh) * 2020-10-22 2021-02-09 腾讯科技(深圳)有限公司 持久卷分配方法、装置、计算机设备和存储介质
CN112632011A (zh) * 2020-12-30 2021-04-09 上海中通吉网络技术有限公司 基于Kubernetes的数据读写方法、装置、系统及设备
CN112799740B (zh) * 2021-02-08 2022-07-26 联想(北京)有限公司 一种控制方法、装置及电子设备
CN112905537B (zh) * 2021-02-20 2022-09-02 北京百度网讯科技有限公司 文件处理方法、装置、电子设备和存储介质
CN113010265A (zh) * 2021-03-16 2021-06-22 建信金融科技有限责任公司 Pod的调度方法、调度器、存储插件及系统
CN114461228B (zh) * 2021-08-18 2023-04-18 马上消费金融股份有限公司 对象生成方法、装置、设备、系统及可读存储介质
CN113867942B (zh) * 2021-09-12 2023-11-03 苏州浪潮智能科技有限公司 一种卷的挂载方法、系统及计算机可读存储介质
CN114064594B (zh) * 2021-11-22 2023-09-22 马上消费金融股份有限公司 数据处理方法和装置
CN114500573B (zh) * 2021-12-24 2024-04-26 天翼云科技有限公司 存储卷挂载方法、装置、设备及存储介质
CN114281263B (zh) * 2021-12-27 2024-03-29 深圳市名竹科技有限公司 容器集群管理系统的存储资源处理方法、系统和设备
CN114489512A (zh) * 2022-02-10 2022-05-13 京东科技信息技术有限公司 限定容器容量的方法及装置、电子设备、存储介质
CN114546269A (zh) * 2022-02-15 2022-05-27 京东科技信息技术有限公司 存储挂载方法、装置及电子设备
CN114911421B (zh) * 2022-05-19 2023-08-04 江苏安超云软件有限公司 基于csi插件的数据存储方法、系统、装置及存储介质
CN114816276B (zh) * 2022-06-29 2022-09-23 江苏博云科技股份有限公司 在Kubernetes下基于逻辑卷管理提供磁盘限速的方法
CN116107515B (zh) * 2023-04-03 2023-08-18 阿里巴巴(中国)有限公司 存储卷挂载与访问方法、设备及存储介质
CN117806775B (zh) * 2024-02-29 2024-04-26 苏州元脑智能科技有限公司 Kubernetes集群的容器资源处理方法和装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561101A (zh) * 2013-11-06 2014-02-05 中国联合网络通信集团有限公司 一种网络文件系统
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
CN107301022A (zh) * 2017-06-27 2017-10-27 北京溢思得瑞智能科技研究院有限公司 一种基于容器技术的存储访问方法及系统
CN108667904A (zh) * 2018-04-10 2018-10-16 浙江大学 一种Docker容器远程内存卷管理方法和系统
CN108681434A (zh) * 2018-05-24 2018-10-19 中科边缘智慧信息科技(苏州)有限公司 一种容器持久存储挂载方法
CN109189334A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 一种区块链网络服务平台及其扩容方法、存储介质
CN110019081A (zh) * 2017-07-20 2019-07-16 中兴通讯股份有限公司 数据持久化处理方法、装置、系统及可读存储介质
CN110780822A (zh) * 2019-10-28 2020-02-11 浪潮云信息技术有限公司 一种管理容器云本地存储系统及实现方法
CN111026333A (zh) * 2019-12-10 2020-04-17 北京金山云网络技术有限公司 访问请求处理方法、处理装置、电子设备及存储介质
CN111273871A (zh) * 2020-01-19 2020-06-12 星辰天合(北京)数据科技有限公司 容器平台上动态分配存储资源的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11137924B2 (en) * 2017-08-25 2021-10-05 Vmware, Inc. Distributed file storage system supporting accesses from multiple container hosts
US10901954B2 (en) * 2018-11-05 2021-01-26 International Business Machines Corporation Host-level persistent volume management for container clouds

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561101A (zh) * 2013-11-06 2014-02-05 中国联合网络通信集团有限公司 一种网络文件系统
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
CN107301022A (zh) * 2017-06-27 2017-10-27 北京溢思得瑞智能科技研究院有限公司 一种基于容器技术的存储访问方法及系统
CN110019081A (zh) * 2017-07-20 2019-07-16 中兴通讯股份有限公司 数据持久化处理方法、装置、系统及可读存储介质
CN108667904A (zh) * 2018-04-10 2018-10-16 浙江大学 一种Docker容器远程内存卷管理方法和系统
CN108681434A (zh) * 2018-05-24 2018-10-19 中科边缘智慧信息科技(苏州)有限公司 一种容器持久存储挂载方法
CN109189334A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 一种区块链网络服务平台及其扩容方法、存储介质
CN110780822A (zh) * 2019-10-28 2020-02-11 浪潮云信息技术有限公司 一种管理容器云本地存储系统及实现方法
CN111026333A (zh) * 2019-12-10 2020-04-17 北京金山云网络技术有限公司 访问请求处理方法、处理装置、电子设备及存储介质
CN111273871A (zh) * 2020-01-19 2020-06-12 星辰天合(北京)数据科技有限公司 容器平台上动态分配存储资源的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARM的嵌入式文件系统研究与设计;张云;惠晓威;肖迎杰;;计算机系统应用(第03期);第231-234页 *

Also Published As

Publication number Publication date
CN111913665A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN111913665B (zh) 存储卷的挂载方法及装置、电子设备
US11120010B1 (en) Systems, methods, and computer readable media for managing a hosts file
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US7802084B2 (en) System and method for management and installation of operating system images for computers
US8346886B2 (en) System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
US8423734B2 (en) Making automated use of data volume copy service targets
US7440971B2 (en) Context based access of files by file system to a client based on detection of related files opened by the client
HU228610B1 (en) Method of identity-based distributed computing for device resources in a computing environment, as well as a computer-readable medium and system
WO2009027474A2 (en) Method, server and system for converging desktop application and web application
CA2241997A1 (en) System and method for transparent, global access to physical devices on a computer cluster
US8225307B2 (en) On-demand software module deployment
CN106462457A (zh) 虚拟化应用集群
US20210092073A1 (en) Resource trees by management controller
CN112073448A (zh) 一种双系统终端的服务隔离方法和装置
CN112068968A (zh) 一种双系统终端的服务访问方法和装置
CN113961520A (zh) 动态文件挂载方法、系统、计算机设备及可读存储介质
CN113296805A (zh) 一种辅助容器实现热升级的方法及装置
CN116339756A (zh) 一种应用程序挂载方法、装置、设备及存储介质
CN116483514A (zh) 一种容器启动方法、装置、电子设备及存储介质
EP4137957A1 (en) File sharing method and terminal device
CN112256351B (zh) Feign组件的实现方法、微服务调用方法及装置
US7103762B2 (en) Using a cache and data transfer methodology to control real-time process data in a PXE pre-boot manufacturing environment
CN111459619A (zh) 一种基于云平台实现服务的方法和装置
US7343560B1 (en) Method and system for generating dynamic images
CN115623081A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing

Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

GR01 Patent grant
GR01 Patent grant