CN113296711B - 一种数据库场景中优化分布式存储延迟的方法 - Google Patents
一种数据库场景中优化分布式存储延迟的方法 Download PDFInfo
- Publication number
- CN113296711B CN113296711B CN202110653004.XA CN202110653004A CN113296711B CN 113296711 B CN113296711 B CN 113296711B CN 202110653004 A CN202110653004 A CN 202110653004A CN 113296711 B CN113296711 B CN 113296711B
- Authority
- CN
- China
- Prior art keywords
- container
- volume
- csi
- 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
Links
Images
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/061—Improving I/O performance
-
- 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/0662—Virtualisation aspects
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库场景中优化分布式存储延迟的方法,包括:步骤1,在容器连接主存储的IO链路上设置持久化缓存层;步骤2,容器中应用程序IO先持久化到持久化缓存层中;步骤3,持久化缓存层中的IO到达阈值或超时后,进行IO合并后刷入主存储中。通过在容器连接主存储的IO链路上设置持久化缓存层,容器中应用程序IO将优先持久化到持久化缓存层中,能有效减少IO的延迟,过滤IO尖峰;同时,IO在持久化后并未通过网络,减弱受网络稳定性因素的影响,通过将分布在持久化缓存层中的IO在到达阈值或超时后,再进行IO合并刷入后端的主存储中,提高了IO合并效率。该方法能降低分布式存储的延迟,提升分布式存储的性能。
Description
技术领域
本发明涉及云数据存储领域,尤其涉及一种数据库场景中优化分布式存储延迟的方法。
背景技术
K8S容器集群管理平台实现了容器集群的自动化部署、自动扩缩容以及维护等功能。Container(即容器)中的数据在磁盘上都是临时存放的,由于数据是临时存放,重启后会丢失,这样会给Container中运行有状态的应用程序中的持久化数据造成影响,在K8S容器集群管理平台中使用卷(volume)这一抽象概念来解决这些问题,为了方便Pod迁移,一般生产环境中使用分布式存储卷,如rbd卷、glusterfs卷等,将rbd卷挂载到pod中,能保证数据在Pod删除之后,rbd卷仅仅被卸载,保证了数据的安全性。
但分布式存储卷带来的问题是IO路径长且受网络稳定性影响较大,存储的延迟由后端介质来决定,一般存在存储延迟影响性能的问题。
发明内容
针对现有技术所存在的问题,本发明的目的是提供一种数据库场景中优化分布式存储延迟的方法,能解决现有基于数据库的分布式存储,IO路径长且受网络稳定性影响较大,存储的延迟由后端介质来决定,所存在的存储延迟影响性能的问题。
本发明的目的是通过以下技术方案实现的:
本发明实施方式提供一种数据库场景中优化分布式存储延迟的方法,用于K8S容器集群管理平台对接Ceph分布式存储中,包括:
步骤1,在容器连接主存储的IO链路上设置持久化缓存层;
步骤2,所述容器中应用程序IO先持久化到所述持久化缓存层中;
步骤3,所述持久化缓存层中的IO到达阈值或超时后,进行IO合并后刷入所述主存储中。
由上述本发明提供的技术方案可以看出,本发明实施例提供的数据库场景中优化分布式存储延迟的方法,其有益效果为:
通过在容器连接主存储的IO链路上设置持久化缓存层,容器中应用程序IO将优先持久化到持久化缓存层中,这样能有效减少IO的延迟,有效过滤IO尖峰;与此同时,IO在持久化后并没用通过网络,受网络稳定性因素的影响将大大减弱,通过将分布在持久化缓存层中的IO在到达阈值或超时后,再进行IO合并刷入后端的主存储中,提高了IO合并效率。该方法能降低分布式存储的延迟,提升分布式存储的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的数据库场景中优化分布式存储延迟方法的流程图;
图2为本发明实施例提供的方法在k8s中CSI存储插件的架构图;
图3为本发明实施例提供的方法优化后的IO路径图。
具体实施方式
下面结合本发明的具体内容,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
参见图1,本发明实施例提供一种数据库场景中优化分布式存储延迟的方法,用于K8S容器集群管理平台对接Ceph分布式存储中,包括:
步骤1,在容器连接主存储的IO链路上设置持久化缓存层;
步骤2,所述容器中应用程序IO先持久化到所述持久化缓存层中;
步骤3,所述持久化缓存层中的IO到达阈值或超时后,进行IO合并后刷入所述主存储中。
上述方法中,所述持久化缓存层采用SSD cache(即固态存储器缓存)。
上述方法中,所述持久化缓存层的类型采用CSI持久化卷。
上述方法中,所述CSI持久化卷包括以下属性:
(A)driver字段:为字符串值,用于指定要使用的卷驱动程序的名称;
(B)volumeHandle字段:用于唯一标识从CSI卷插件的CreateVolume调用返回的卷名,在卷驱动程序的所有后续调用中使用卷句柄来引用该卷名。
上述方法中,所述CSI持久化卷还包括以下属性:
(C)readOnly字段:为布尔值,用于指示卷是否被发布为只读,默认值为否。
上述方法中,所述CSI持久化卷包括以下组件:
(1)CSI Controller组件:用于从存储服务视角对存储资源和存储卷进行管理和操作;
(2)CSI Node组件:用于对主机上的存储卷进行管理和操作。
上述方法中,所述CSI Controller组件通过以下方式实现:
在Kubernetes中将该CSI Controller组件部署为单实例Pod,并设置副本数量为1,在该Pod内部署两个容器,包括:
(11)辅助sidecar容器,与主机(Master,kube-controller-manager)通信连接;
(12)CSI Driver存储驱动容器,用于具体的存储卷操作,设有ControllerPublish接口、ControllerUnpublish接口、CreateVolume接口和DeleteVolume接口;
所述辅助sidecar容器与所述CSI Driver存储驱动容器通过本地套接字用gPRC协议进行通信。
上述方法中,所述辅助sidecar容器包含external-attacher容器和external-provisioner容器,其中,
所述external-attacher容器,用于监控VolumeAttachment资源对象的变更,触发针对CSI节点的ControllerPublish和ControllerUnpublish操作;
所述external-provisioner容器,用于监控PersistentVolumeClaim资源对象的变更,触发针对CSI节点的CreateVolume和DeleteVolume操作。
上述方法中,所述CSI Controller组件的CSI Driver存储驱动容器的各操作接口按以下方式优化:
(121)创建卷操作(即CreateVolume操作):根据传入的参数,先创建持久化缓存层,再创建存储卷;
(122)删除卷操作(即DeleteVolume操作):根据传入的参数,先下刷持久化缓存层中的数据,再删除持久化缓存层,最后删除存储卷;
(123)创建快照操作(即CreateSnapshot操作):根据传入的参数,先下刷持久化缓存层中的数据,再创建快照,并对快照加保护,再获取快照信息,取消保护,将快照信息返回给调用方;
(124)删除快照操作(即DeleteSnapshot操作):根据传入的参数删除快照。
上述方法中,所述CSI Node组件通过以下方式实现:
在Kubernetes中将CSI Node组件部署为DaemonSet,在每个主机上运行一个Pod,每个Pod中部署两个容器,包括:
(21)与kubelet通信的辅助sidecar容器node-driver-registrar,用于将存储驱动注册到kubelet中;
(22)CSI Driver存储驱动容器,用于接收kubelet的调用,用于实现与Node相关的CSI接口;
所述node-driver-registrar容器与kubelet通过Node主机的一个hostPath目录下的unix套接字进行通信。
上述方法中,所述CSI Node组件的CSI Driver存储驱动容器包括:NodeStageVolume接口、NodePublishVolume接口、NodeUnpublishVolume接口和NodeUnstageVolume接口;各接口按以下方式进行优化:
(221)NodeStageVolume接口:根据传入的参数将存储卷映射为指定节点上的块设备,将CSI持久化卷与块设备进行关联,并在指定节点上创建全局挂载目录;根据传入的文件系统类型参数,在rbd设备上创建文件系统并将其挂载到之前创建的全局挂载目录,并将挂载点权限设置为允许所有容器访问;
(222)NodePublishVolume接口:根据传入的参数创建针对某个容器的挂载路径,并将NodeStageVolume接口创建的全局挂载路径绑定挂载到该容器路径;
(223)NodeUnpublishVolume接口:进行NodePublishVolume接口的逆操作,对容器挂载路径执行卸载操作并删除路径;
(224)NodeUnstageVolume接口:进行NodeStageVolume接口的逆操作,对全局挂载路径执行卸载操作并删除路径。
本发明的方法通过在IO链路上添加持久化缓存层的方式来进行IO加速、平滑IO,应对数据库等IO敏感性业务,适用于容器、数据库和分布式存储场景中,其中,分布式存储技术点在于块存储前后端rbd协议,数据库应用场景为低延迟redis场景,容器主要是redis服务部署和调度采用k8s+docker服务部署和管理。
下面对本发明实施例具体作进一步地详细描述。
本发明实施例提供一种数据库场景中优化分布式存储延迟的方法,是通过在IO链路上添加持久化缓存层的方式来进行IO加速、平滑IO。该方法具体应用的架构为:在块设备驱动层端之上增加本地持久化cache(使用ssd进行本地cache),解决了由于k8s现有支持的ceph RBD后端,本身不支持持久化cache的方式嵌入在rbd卷之上,引入持久化cache层将有效提高IO性能,并保证数据的安全。
上述架构的基础组件CSI工作原理为:
CSI为容器存储接口,是一个容器存储标准接口的规范,借助CSI容器编排系统(CO)可以将任意存储系统暴露给自己的容器工作负载。CSI卷类型是一种out-tree的CSI卷插件,用于Pod与在同一节点上运行的外部CSI卷驱动程序交互。部署CSI兼容卷驱动后,用户可以使用CSI作为卷类型来挂载驱动提供的存储。
CSI持久化卷支持是在Kubernetes v1.9中引入的,必须由集群管理员明确启用。
CSI持久化卷具有以下属性:
(A)driver:一个字符串值,指定要使用的卷驱动程序的名称
(B)volumeHandle:唯一标识从CSI卷插件的CreateVolume调用返回的卷名。随后在卷驱动程序的所有后续调用中使用卷句柄来引用该卷。
进一步还包括:(C)readOnly:一个可选的布尔值,指示卷是否被发布为只读。默认是false。
本发明的CSI持久化卷在k8s中实现的架构如图2所示,该CSI持久化卷中包括两种组件:
(1)CSI Controller组件;
(2)CSI Node组件。
其中,所述CSI Controller组件的主要作用是提供存储服务视角对存储资源和存储卷进行管理和操作。
具体是在Kubernetes中将其部署为单实例Pod,可使用StatefulSet或Deployment控制器进行部署,设置副本数量为1,保证为一种存储插件只运行一个控制器实例;在该Pod内部署两个容器,包括:
(11)与Master(kube-controller-manager)通信的辅助sidecar容器,在sidecar容器内又可包含external-attacher容器和external-provisioner容器,两个容器的功能分别为:
(111)external-attacher容器:用于监控VolumeAttachment资源对象的变更,触发针对CSI节点的ControllerPublish和ControllerUnpublish操作;
(112)external-provisioner容器:用于监控PersistentVolumeClaim资源对象的变更,触发针对CSI节点的CreateVolume和DeleteVolume操作;
所述的external-attacher容器与external-provisioner容器这两个容器通过本地Socket(Unix DomainSocket,UDS)使用gPRC协议进行通信;
(12)CSI Driver存储驱动容器,需要实现上述接口,即ControllerPublish接口、ControllerUnpublish接口、CreateVolume接口和DeleteVolume接口,该CSI Driver存储驱动容器可采用由第三方存储提供商提供的存储驱动容器,只要能实现上述接口满足本发明方法的要求即可。
所述的sidecar容器通过Socket调用CSI Driver容器的CSI接口,CSI Driver存储驱动容器用于具体的存储卷操作。
所述的CSI Node组件的主要作用是对主机(Node)上的Volume进行管理和操作。
具体是在Kubernetes中将其部署为DaemonSet,在每个Node上都运行一个Pod;在这个Pod中部署以下两个容器,包括:
(21)与kubelet通信的辅助sidecar容器node-driver-registrar,主要功能是将存储驱动注册到kubelet中;
(22)CSI Driver存储驱动容器,由第三方存储提供商提供,主要功能是接收kubelet的调用,需要实现一系列与Node相关的CSI接口,例如NodePublishVolume接口(用于将Volume挂载到容器内的目标路径)、NodeUnpublishVolume接口(用于从容器中卸载Volume)。
所述的node-driver-registrar容器与kubelet通过Node主机的一个hostPath目录下的unixsocket进行通信;
所述的CSI Driver存储驱动容器与kubelet通过Node主机的另一个hostPath目录下的unixsocket进行通信,同时将kubelet的工作目录(默认为/var/lib/kubelet)挂载给CSI Driver存储驱动容器,用于为Pod进行Volume的管理操作(包括mount、umount等)。
进一步的,按以下方式对CSI Controller组件进行优化:
CSI Controller组件中包含的external-attacher容器监控VolumeAttachment资源对象的变更,需要增加对持久化缓存层的监控;同时CSI Driver存储驱动容器要对ControllerPublish接口和ControllerUnpublish接口在认证阶段进行优化,仅更新后端的认证,而跳过对持久化缓存层的认证,需要更新相关操作接口如下:
(121)CreateVolume操作:根据传入的参数,先创建ssd cache,再执行rbd create命令创建image;
(122)DeleteVolume操作:根据传入的参数,先下刷ssd cache中的数据,再删除ssd cache,最后执行rbd rm命令删除image;
(123)CreateSnapshot操作:根据传入的参数,先下刷ssd cache中的数据,再执行rbd snap create创建快照,再执行rbd snap protect对快照加保护,再通过rbd snap ls获取快照信息,取消保护,将快照信息返回给调用方;
(124)DeleteSnapshot操作:根据传入的参数执行rbd snap rm删除快照。
进一步的,在主机上对volume进行管理和操作时,按以下方式对CSI Node组件进行优化:
与kubelet通信的辅助sidecar容器node-driver-register,在将存储驱动注册到kubelet中时,更新rbd的认证接口。
CSI Driver存储驱动容器中则需要更新到CreateVolume、DeleteVolume等需要加入enhanceIO等相关操作。
相关优化操作接口如下:
(221)NodeStageVolume操作:根据传入的参数执行rbd map命令将image映射为指定节点上的块设备,将ssd cache与块设备进行关联,通过mkdir系统调用在指定节点上创建全局挂载目录,根据传入的文件系统类型参数执行mkfs.*(ext4,xfs)命令在rbd设备上创建文件系统并将其mount到之前创建的全局挂载目录,并将挂载点权限设置为0777允许所有容器访问(不安全)。
(222)NodePublishVolume操作:根据传入的参数创建针对某个容器的挂载路径,并将NodeStageVolume阶段创建的全局挂载路径bind mount到该容器路径。
(223)NodeUnpublishVolume操作:NodePublishVolume操作的逆操作,对容器挂载路径执行umount操作并删除路径。
(224)NodeUnstageVolume操作:NodeStageVolume操作的逆操作,对全局挂载路径执行umount操作并删除路径。
本发明的方法,通过添加持久化cache层后,容器中应用程序IO将优先持久化到ssd cache中,这样能有效减少IO的latency,有效过滤IO尖峰。与此同时,IO在持久化后并没用通过网络,这样网络稳定性因素的影响将大大减弱。分布在SSD cache中的IO将在到达阈值或超时后,进行IO合并刷入后端主存储中,提高了IO合并效率。
图3示意的为redis场景下测试io分别为4k、8k、16k、32k大小时,IO慢盘告警次数,由于测试环境下压力问题,测试时,需要使用存储压力工具施加同样的压力在后端主存储进行测试,包括:
步骤1,创建PVC接口更新,在原基础上增加ssd卷分区做cache,并使用enhanceIO与rbd卷组成DM cache卷;
步骤2,Pod迁移操作,增加了对本地卷的数据下刷操作,格式化ssd卷的分区,还给系统,进而迁移到其他Node上,再进行增加ssd卷分区做cache,并使用enhanceIO与rbd卷组成DM cache卷;
步骤3,删除PVC接口更新,在原基础上增加了上删除DM卷,并将ssd卷还回给系统,进而删除rbd卷。
实施例
本实施例提供数据库场景中优化分布式存储延迟的方法,包含:CSI Controller优化,将external-attacher容器监控VolumeAttachment资源对象的变更,增加对持久化缓存层的监控,具体包括:
步骤1,创建ssd cache,再执行rbd create命令创建image,使用enhanio组成DM卷
步骤2,先下刷ssd cache中的数据,再删除ssd cache,最后执行rbd rm命令删除image
步骤3,创建快照(CreateSnapshot):根据传入的参数,先下刷ssd cache中的数据,再执行rbd snap create创建快照,再执行rbd snap protect对快照加保护,再通过rbdsnap ls获取快照信息,取消保护,将快照信息返回给调用方;
步骤4,删除快照(DeleteSnapshot):根据传入的参数执行rbd snap rm删除快照。
根据上述处理流程可设计对应的操作代码,程序化的实现本发明的方法。
本领域普通技术人员可以理解:实现本发明实施例方法中的全部或部分流程是可以通过程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (8)
1.一种数据库场景中优化分布式存储延迟的方法,其特征在于,用于K8S容器集群管理平台对接Ceph分布式存储中,包括:
步骤1,在容器连接主存储的IO链路上设置持久化缓存层;
步骤2,所述容器中应用程序IO先持久化到所述持久化缓存层中;
步骤3,所述持久化缓存层中的IO到达阈值或超时后,进行IO合并后刷入所述主存储中;
所述持久化缓存层的类型采用CSI持久化卷;
所述CSI持久化卷包括以下组件:
(1)CSI Controller组件:用于从存储服务视角对存储资源和存储卷进行管理和操作;
(2)CSI Node组件:用于对主机上的存储卷进行管理和操作;
所述CSI Controller组件通过以下方式实现:
在Kubernetes中将该CSI Controller组件部署为单实例Pod,并设置副本数量为1,在该Pod内部署两个容器,包括:
(11)辅助sidecar容器,与主机通信连接;
(12)CSIDriver存储驱动容器,用于具体的存储卷操作,设有ControllerPublish接口、ControllerUnpublish接口、CreateVolume接口和DeleteVolume接口;
所述辅助sidecar容器与所述CSIDriver存储驱动容器通过本地套接字用gPRC协议进行通信。
2.根据权利要求1所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述持久化缓存层采用固态硬盘缓存。
3.根据权利要求1所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述CSI持久化卷包括以下属性:
(1)driver字段:为字符串值,用于指定要使用的卷驱动程序的名称;
(2)volumeHandle字段:用于唯一标识从CSI卷插件的创建卷接口调用返回的卷名,在卷驱动程序的所有后续调用中使用卷句柄来引用该卷名。
4.根据权利要求3所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述CSI持久化卷还包括以下字段:
(3)readOnly字段:为布尔值,用于指示卷是否被发布为只读,默认值为否。
5.根据权利要求1所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述辅助sidecar容器包含external-attacher容器和external-provisioner容器,其中,
所述external-attacher容器,用于监控VolumeAttachment资源对象的变更,触发针对CSI节点的ControllerPublish和ControllerUnpublish操作;
所述external-provisioner容器,用于监控PersistentVolumeClaim资源对象的变更,触发针对CSI节点的CreateVolume和DeleteVolume操作。
6.根据权利要求5所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述CSI Controller组件的CSIDriver存储驱动容器各操作接口按以下方式优化:
(21)创建卷操作:根据传入的参数,先创建持久化缓存层,再创建存储卷;
(22)删除卷操作:根据传入的参数,先下刷持久化缓存层中的数据,再删除持久化缓存层,最后删除快照;
(23)创建快照操作:根据传入的参数,先下刷持久化缓存层中的数据,再创建快照,并对快照加保护,再获取快照信息,取消保护,将快照信息返回给调用方;
(24)删除快照操作:根据传入的参数删除快照。
7.根据权利要求5所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述CSI Node组件通过以下方式实现:
在Kubernetes中将CSI Node组件部署为DaemonSet,在每个主机上运行一个Pod,每个Pod中部署两个容器,包括:
(3)与kubelet通信的辅助sidecar容器node-driver-registrar,用于将存储驱动注册到kubelet中;
(4)CSIDriver存储驱动容器,用于接收kubelet的调用,实现与节点相关的CSI接口;
所述node-driver-registrar容器与kubelet通过Node主机的一个hostPath目录下的unix套接字进行通信。
8.根据权利要求7所述的数据库场景中优化分布式存储延迟的方法,其特征在于,所述CSI Node组件包括:NodeStageVolume操作、NodePublishVolume操作、NodeUnpublishVolume操作和NodeUnstageVolume操作;各操作接口按以下方式进行优化:
(41)NodeStageVolume操作:根据传入的参数将存储卷映射为指定节点上的块设备,将CSI持久化卷与块设备进行关联,并在指定节点上创建全局挂载目录;根据传入的文件系统类型参数,在rbd设备上创建文件系统并将其挂载到之前创建的全局挂载目录,并将挂载点权限设置为允许所有容器访问;
(42)NodePublishVolume操作:根据传入的参数创建针对某个容器的挂载路径,并将NodeStageVolume接口创建的全局挂载路径绑定挂载到该容器路径;
(43)NodeUnpublishVolume操作:进行NodePublishVolume接口的逆操作,对容器挂载路径执行卸载操作并删除路径;
(44)NodeUnstageVolume操作:进行NodeStageVolume接口的逆操作,对全局挂载路径执行卸载操作并删除路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653004.XA CN113296711B (zh) | 2021-06-11 | 2021-06-11 | 一种数据库场景中优化分布式存储延迟的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110653004.XA CN113296711B (zh) | 2021-06-11 | 2021-06-11 | 一种数据库场景中优化分布式存储延迟的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296711A CN113296711A (zh) | 2021-08-24 |
CN113296711B true CN113296711B (zh) | 2022-10-28 |
Family
ID=77328003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110653004.XA Active CN113296711B (zh) | 2021-06-11 | 2021-06-11 | 一种数据库场景中优化分布式存储延迟的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296711B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115083538B (zh) * | 2022-08-23 | 2022-11-11 | 中国海洋大学 | 一种药物数据的处理系统、运行方法及数据处理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892041B1 (en) * | 2014-09-30 | 2018-02-13 | Veritas Technologies Llc | Cache consistency optimization |
WO2020062131A1 (zh) * | 2018-09-29 | 2020-04-02 | 北京连云决科技有限公司 | 一种基于区块链技术的容器云管理系统 |
CN109933312B (zh) * | 2019-03-25 | 2021-06-01 | 南京邮电大学 | 一种有效降低容器化关系型数据库i/o消耗的方法 |
CN110851082B (zh) * | 2019-11-08 | 2023-09-19 | 浪潮云信息技术股份公司 | 一种容器对接光纤网络存储的方法 |
CN111273871B (zh) * | 2020-01-19 | 2021-05-04 | 星辰天合(北京)数据科技有限公司 | 容器平台上动态分配存储资源的方法及装置 |
CN111694641A (zh) * | 2020-06-16 | 2020-09-22 | 中电科华云信息技术有限公司 | 用于容器应用的存储管理方法和系统 |
CN111858509B (zh) * | 2020-07-06 | 2022-11-25 | 苏州浪潮智能科技有限公司 | 一种基于容器的分布式计算方法和装置 |
-
2021
- 2021-06-11 CN CN202110653004.XA patent/CN113296711B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113296711A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101621405B (zh) | 分布式管理监控系统及其监控方法、创建方法 | |
CN106919346B (zh) | 一种基于clvm的共享存储虚拟化实现方法 | |
CN104951360A (zh) | 基于Docker的配置管理方式及装置 | |
CN108370328B (zh) | 一种nfv mano策略描述符的管理方法及装置 | |
CN108011846B (zh) | 网络功能虚拟化架构中管理业务的方法及装置 | |
CN109951315A (zh) | 一种实现yang模型到内部模型映射的方法及系统 | |
CN102202087B (zh) | 一种标识存储设备的方法及系统 | |
CN109739933A (zh) | 存储空间释放方法、装置、终端及计算机可读存储介质 | |
CN111090495A (zh) | 节点管理方法、装置、设备、存储介质和系统 | |
CN111684437B (zh) | 按时间顺序排序的错位更新键-值存储系统 | |
CN103716356A (zh) | 基于web的存储过程操作方法、装置和系统 | |
CN113296711B (zh) | 一种数据库场景中优化分布式存储延迟的方法 | |
CN108415962A (zh) | 一种云存储系统 | |
CN112230857A (zh) | 一种混合云系统、混合云盘申请方法和数据存储方法 | |
CN114661419A (zh) | 一种服务质量控制系统及方法 | |
CN104517067A (zh) | 访问数据的方法、装置及系统 | |
CN113626054A (zh) | 一种业务服务更新方法及装置 | |
CN107193563B (zh) | 一种服务器无状态固件版本管理的方法 | |
CN109656877A (zh) | 一种用户文件配额的方法、装置及分布式文件系统 | |
CN116724543A (zh) | 容器集群的管理方法和装置 | |
CN103064793B (zh) | 精简配置容量回收方法和系统 | |
CN100583097C (zh) | 对补丁文件进行管理的方法、系统及设备 | |
EP4264980A1 (en) | Download handling of a pool of subscription profiles | |
CN117389713B (zh) | 存储系统应用业务数据迁移方法、装置、设备及介质 | |
CN113849273B (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 |