CN113687935A - 一种基于超融合设计的云原生存储调度方式 - Google Patents

一种基于超融合设计的云原生存储调度方式 Download PDF

Info

Publication number
CN113687935A
CN113687935A CN202111063649.4A CN202111063649A CN113687935A CN 113687935 A CN113687935 A CN 113687935A CN 202111063649 A CN202111063649 A CN 202111063649A CN 113687935 A CN113687935 A CN 113687935A
Authority
CN
China
Prior art keywords
scheduling
nodes
storage
cloud
native storage
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.)
Pending
Application number
CN202111063649.4A
Other languages
English (en)
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.)
DALIAN HI-THINK COMPUTER TECHNOLOGY CORP
Original Assignee
DALIAN HI-THINK COMPUTER TECHNOLOGY CORP
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 DALIAN HI-THINK COMPUTER TECHNOLOGY CORP filed Critical DALIAN HI-THINK COMPUTER TECHNOLOGY CORP
Priority to CN202111063649.4A priority Critical patent/CN113687935A/zh
Publication of CN113687935A publication Critical patent/CN113687935A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (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

一种基于超融合设计的云原生存储调度方式,其特征在于,包括调度算法的筛选和优先化的使用,其中调度算法的筛选对于整个Kubernetes集群有效,其中一个小规模集群包括一个五节点群集,其节点名为N1、N2、N3、N4和N5,其中云原生存储安装在N1、N2和N3上,调度程序使用两个卷V1和V2启动Pod1,两个卷V1和V2的复制因子均为2,其中V1位于节点N1和N2上,而V2位于节点N2和N3上,对于提交的Kubernetes调度请求,由于云原生存储尚未安装在节点N4和N5上或处于脱机状态,因此云原生存储调度方式将筛选出节点N4和N5。

Description

一种基于超融合设计的云原生存储调度方式
技术领域
本发明涉及利用了Kubernetes的可扩展性,允许DevOps团队在Kubernetes上更有效地运行有状态的应用程序,例如数据库,队列和键值存储。
背景技术
在Kubernetes设计之初,主要是被用来运行无状态应用。然而用户想通过Kubernetes来编排有状态应用,以及有状态应用的容器化,正在成为将来的一种发展趋势。目前,在国内一个大型应用往往具有许多功能模块,很难简单地将其整体性地设计为有状态或无状态的,而往往将其整个架构分成两个部分,即无状态部分和有状态部分。业务逻辑部分往往作为无状态的部分,而将状态保存在有状态的中间件中,如缓存、数据库、对象存储、大数据平台、消息队列等。这样无状态的部分可以很容易的横向扩展,而状态保存到后端。而后端的中间件是有状态的,这些中间件设计之初,就考虑了扩容的时候状态的迁移、复制、同步等机制,不用业务层关心。
发明内容
为了解决上述存在的不足之处及缺点,本发明专利提出了一种基于超融合设计的云原生存储调度方式。
本发明为解决技术问题所采用的技术方案如下:
1、一种基于超融合设计的云原生存储调度方式,其特征在于,包括调度算法的筛选和优先化的使用,其中调度算法的筛选对于整个Kubernetes集群有效,其中一个小规模集群包括一个五节点群集,其节点名为N1、N2、N3、N4和N5,其中云原生存储安装在N1、N2和N3上,调度程序使用两个卷V1和V2启动Pod1,两个卷V1和V2的复制因子均为2,其中V1位于节点N1和N2上,而V2位于节点N2和N3上,对于提交的Kubernetes调度请求,由于云原生存储尚未安装在节点N4和N5上或处于脱机状态,因此云原生存储调度方式将筛选出节点N4和N5;优先化的使用包括,当云原生存储调度方式收到优先化请求时,它将检查该容器正在使用哪些PVC,然后在存储驱动程序中查询容器数据的位置,然后使用此信息对各个节点进行堆栈排名,根据该节点从该Pod访问持久性存储时将提供最佳性能的节点进行排名,在这种情况下,云原生存储调度方式将分配以下分数:N1为100,N2为200,N3为100,N2获得最高分,是因为它具有两个卷的副本,并且可以为Pod1提供最佳性能,所以将使用此优先级列表来答复调度程序,要求其先选择N2,然后再选择N1或N3。
本发明所达到的有益效果是:实现Kubernetes上更有效地运行有状态的应用程序,例如数据库,队列和键值存储;允许有状态应用程序利用调度程序扩展器,以便在大规模生产中通过Kubernetes享受存储感知调度的好处。使用调度程序扩展器,为Kubernetes上的有状态应用程序提供了超融合,故障域感知,存储运行状况监视和快照生命周期功能。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的调度算法的筛选示意图;
图2是本发明的优先化的使用示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1至2所示,一种基于超融合设计的云原生存储调度方式,包括调度算法的筛选和优先化的使用,其中调度算法的筛选对于整个Kubernetes集群有效,其中一个小规模集群包括一个五节点群集,其节点名为N1、N2、N3、N4和N5,其中云原生存储安装在N1、N2和N3上,调度程序使用两个卷V1和V2启动Pod1,两个卷V1和V2的复制因子均为2,其中V1位于节点N1和N2上,而V2位于节点N2和N3上,对于提交的Kubernetes调度请求,由于云原生存储尚未安装在节点N4和N5上或处于脱机状态,因此云原生存储调度方式将筛选出节点N4和N5;优先化的使用包括,当云原生存储调度方式收到优先化请求时,它将检查该容器正在使用哪些PVC,然后在存储驱动程序中查询容器数据的位置,然后使用此信息对各个节点进行堆栈排名,根据该节点从该Pod访问持久性存储时将提供最佳性能的节点进行排名,在这种情况下,云原生存储调度方式将分配以下分数:N1为100,N2为200,N3为100,N2获得最高分,是因为它具有两个卷的副本,并且可以为Pod1提供最佳性能,所以将使用此优先级列表来答复调度程序,要求其优先选择N2,然后再选择N1或N3。
本发明所要解决的技术问题是为了实现Kubernetes上更有效地运行有状态的应用程序,例如数据库,队列和键值存储。
本发明所述的云原生存储调度方式允许有状态应用程序利用调度程序扩展器,以便在大规模生产中通过Kubernetes享受存储感知调度的好处。使用调度程序扩展器,为Kubernetes上的有状态应用程序提供了超融合,故障域感知,存储运行状况监视和快照生命周期功能。
本发明所述的云原生存储调度方式为有状态应用程序提供了超融合功能。现代有状态应用程序(如Cassandra,Kafka,ElasticSearch等)可以横向扩展以增加容量,并在每个实例都紧靠其数据运行时发挥最佳性能。具有本地直接存储访问权限可减少延迟,并改善这些数据库的响应时间。因此,理想的是在其数据所在的主机上调度Pod。如今,DevOps团队必须使用诸如标签,约束或相似性/反相似性之类的技术来确保数据的局部性。当在大量服务器和数据中心中大规模运行应用程序时,很难管理这些规则,从而增加了出错空间。这样做的原因是,由于Kubernetes卷插件基础结构是使用通用概念编写的,可以与各种存储解决方案(SAN,云存储(如AWS和GCE)以及云原生存储)一起使用,但不支持原语来优化 Pod的位置。例如,当使用iSCSI LUN在Pod中持久存储数据时,Kubernetes调度程序将如何决定使用哪个节点来优化对数据的访问,对于此类iSCSI LUN,安排Pod的节点没有任何区别,因为从Kubernetes群集到SAN始终至少有一个网络跃点(这会增加延迟)。同样,对于像EBS这样的云存储,没有太多信息可供Kubernetes决定哪个EC2实例在访问EBS磁盘时会具有更好的性能。要解决这些问题,可以使用标签来指示哪些节点具有持久卷声明(PVC)的数据,然后在应用程序的相似性规则中使用该标签。尽管此策略在一定程度上有效,但确实带来了两个问题:1.用户在创建应用程序规范时必须确保指定复杂的相似性规则。
对于有状态集,将PVC模板名称与有状态集关联,然后将其用于为每个副本生成PVC名称。但是,如果必须向有状态集合规范中添加相似性规则,那么如何将标签与动态生成的PVC名称相关联,无法动态添加标签,因为在创建有状态集时并不知道PVC名称,只有模板名称可生成PVC名称。
在DevOps团队中,大规模管理标签变得非常繁重。当有成百上千的服务器以及更多的容器时,标签很快就会失控,成为将要管理的另一资源。即使从存储驱动程序以编程方式执行此操作,也容易发生大规模错误。
本发明所述的云原生存储调度方式通过实现Kubernetes调度程序扩展程序来克服这些问题,该扩展程序可用于根据Pod所需的卷的位置影响Pod调度。将云原生存储调度方式用作扩展程序的优点是,您无需在每次升级Kubernetes集群时都更新它,因为扩展程序定义了一个接口,该接口在各个版本中都将保持不变。当Kubernetes调度程序配置为使用扩展程序时,在每个调度决策之前,调度程序都会进行两个REST API调用:过滤和优先化。云原生存储调度方式使用“筛选器”请求来筛选出存储驱动程序未运行或处于错误状态的节点。Kubernetes本身没有此信息,因此它可能实际上试图(未成功)在未运行存储驱动程序的节点上附加和装载卷。因此,这有助于减少调度程序失败尝试的次数,从而使Pod的调度速度更快。
本发明所述的云原生存储调度方式提供了存储健康监控功能,有状态应用程序的一个常见问题是存储结构引起的磨损。随着时间的流逝,Pod的整体健康状况会受到这种磨损的影响。如果存储驱动程序发生故障,这可能导致无法将Pod重新安排到正常的主机上,从而导致应用程序不可用。
例如,考虑一个由存储驱动程序调配和安装的卷启动的Pod。如果此时存储驱动程序遇到错误情况,则即使无法读取或写入其持久性存储,该应用程序的运行状况检查也可能继续成功。同时,Pod正在使用的卷可能在群集上具有另一个可用副本,从而使其能够正常运行。在这些情况下,当节点上的存储驱动程序进入错误或不可用状态时,云原生存储调度方式可以通过对Pod进行故障转移来提供帮助。这样一来,应用程序即可真正实现高可用性,而无需任何用户干预。
本发明所述的云原生存储调度方式提供了卷快照支持功能,有状态的应用程序具有复杂的生命周期,需要对其进行管理。快照提供了用于数据恢复或复制测试环境的关键管理工具。如今,DevOps团队必须使用存储提供商提供的工具来管理这些生命周期操作,而不是直接通过Kubernetes来管理,从而降低了Kubernetes平台针对复杂数据工作流(如灾难恢复,测试,升级和蓝绿色部署)的自动化收益。
云原生存储调度方式增加了对通过Kubernetes编排卷快照的支持。这使用户可以拍摄PVC快照,然后通过Kubernetes将这些快照还原到其他PVC。这使用户可以通过Kubernetes自动执行复杂的数据工作流程。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种基于超融合设计的云原生存储调度方式,其特征在于,包括调度算法的筛选和优先化的使用,其中调度算法的筛选对于整个Kubernetes集群有效,其中一个小规模集群包括一个五节点群集,其节点名为N1、N2、N3、N4和N5,其中云原生存储安装在N1、N2和N3上,调度程序使用两个卷V1和V2启动Pod1,两个卷V1和V2的复制因子均为2,其中V1位于节点N1和N2上,而V2位于节点N2和N3上,对于提交的Kubernetes调度请求,由于云原生存储尚未安装在节点N4和N5上或处于脱机状态,因此云原生存储调度方式将筛选出节点N4和N5;优先化的使用包括,当云原生存储调度方式收到优先化请求时,它将检查该容器正在使用哪些PVC,然后在存储驱动程序中查询容器数据的位置,然后使用此信息对各个节点进行堆栈排名,根据该节点从该Pod访问持久性存储时将提供最佳性能的节点进行排名,在这种情况下,云原生存储调度方式将分配以下分数:N1为100,N2为200,N3为100,N2获得最高分,是因为它具有两个卷的副本,并且可以为Pod1提供最佳性能,所以将使用此优先级列表来答复调度程序,要求其先选择N2,然后再选择N1或N3。
CN202111063649.4A 2021-09-10 2021-09-10 一种基于超融合设计的云原生存储调度方式 Pending CN113687935A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111063649.4A CN113687935A (zh) 2021-09-10 2021-09-10 一种基于超融合设计的云原生存储调度方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111063649.4A CN113687935A (zh) 2021-09-10 2021-09-10 一种基于超融合设计的云原生存储调度方式

Publications (1)

Publication Number Publication Date
CN113687935A true CN113687935A (zh) 2021-11-23

Family

ID=78586026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111063649.4A Pending CN113687935A (zh) 2021-09-10 2021-09-10 一种基于超融合设计的云原生存储调度方式

Country Status (1)

Country Link
CN (1) CN113687935A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226197A1 (zh) * 2022-05-26 2023-11-30 深圳前海环融联易信息科技服务有限公司 基于kubernetes的云原生存储方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190222646A1 (en) * 2018-01-18 2019-07-18 Portworx, Inc. Provisioning of clustered containerized applications
US20190370023A1 (en) * 2018-02-27 2019-12-05 Portworx, Inc. Distributed job manager for stateful microservices
CN111522639A (zh) * 2020-04-16 2020-08-11 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190222646A1 (en) * 2018-01-18 2019-07-18 Portworx, Inc. Provisioning of clustered containerized applications
US20190370023A1 (en) * 2018-02-27 2019-12-05 Portworx, Inc. Distributed job manager for stateful microservices
CN111522639A (zh) * 2020-04-16 2020-08-11 南京邮电大学 Kubernetes集群架构系统下多维资源调度方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023226197A1 (zh) * 2022-05-26 2023-11-30 深圳前海环融联易信息科技服务有限公司 基于kubernetes的云原生存储方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US11226847B2 (en) Implementing an application manifest in a node-specific manner using an intent-based orchestrator
CN111488241B (zh) 在容器编排平台实现无代理备份与恢复操作的方法和系统
KR101827239B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US9304815B1 (en) Dynamic replica failure detection and healing
KR101833114B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
US8918392B1 (en) Data storage mapping and management
US8832234B1 (en) Distributed data storage controller
US11314444B1 (en) Environment-sensitive distributed data management
US10725666B2 (en) Memory-based on-demand data page generation
US10719407B1 (en) Backing up availability group databases configured on multi-node virtual servers
US8930364B1 (en) Intelligent data integration
JP2004531807A (ja) ステートフル・プログラム・エンティティの作業負荷管理
US10620871B1 (en) Storage scheme for a distributed storage system
WO2021057108A1 (zh) 一种读数据方法、写数据方法及服务器
US11449241B2 (en) Customizable lock management for distributed resources
CN108369546B (zh) 通过对象恢复的优先级化的系统可靠性
EP0747814A1 (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
JP2024504805A (ja) クラウドストレージクラスベースの可変キャッシュ可用性
EP0747812A2 (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
CN113687935A (zh) 一种基于超融合设计的云原生存储调度方式
CN111752892B (zh) 分布式文件系统及其实现方法、管理系统、设备及介质
US20230305876A1 (en) Managing storage domains, service tiers, and failed servers
CN112685130A (zh) 分布式存储环境下的虚拟机备份方法、装置和存储介质
US20200371849A1 (en) Systems and methods for efficient management of advanced functions in software defined storage systems

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