CN111352701A - 一种Openstack环境下Redis集群的编排方法 - Google Patents

一种Openstack环境下Redis集群的编排方法 Download PDF

Info

Publication number
CN111352701A
CN111352701A CN202010146962.3A CN202010146962A CN111352701A CN 111352701 A CN111352701 A CN 111352701A CN 202010146962 A CN202010146962 A CN 202010146962A CN 111352701 A CN111352701 A CN 111352701A
Authority
CN
China
Prior art keywords
host
slave
redis
master
instance
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
CN202010146962.3A
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.)
Shandong Huimao Electronic Port Co Ltd
Original Assignee
Shandong Huimao Electronic Port 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 Shandong Huimao Electronic Port Co Ltd filed Critical Shandong Huimao Electronic Port Co Ltd
Priority to CN202010146962.3A priority Critical patent/CN111352701A/zh
Publication of CN111352701A publication Critical patent/CN111352701A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

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

本发明提供一种Openstack环境下Redis集群的编排方法,属于云计算/云存储技术领域,本发明使用主机聚合将物理主机分组,在为Redis集群的主从节点分别创建实例类型,并使用自定义元数据关联对应的主机聚合,从而实现将Redis集群的主从节点编排到Openstack环境下不同物理节点的虚拟机中,最终实现了简化Terraform编排模板的编写和维护,不受Server Group资源限制,加快集群编排的目的。

Description

一种Openstack环境下Redis集群的编排方法
技术领域
本发明涉及云计算/云存储术,尤其涉及一种Openstack环境下Redis集群的编排方法。
背景技术
基于Openstack平台搭建的云数据库Redis集群,利用了云计算虚拟化技术,使资源分配更加合理,具有管理便捷、稳定可靠、节约成本等优势。
Terraform用于创建,管理和更新基础架构资源,例如物理机,虚拟机,网络交换机,容器等。几乎任何基础架构类型都可以在Terraform中表示为资源
当需要创建更多的Redis集群分片时,就需要在Terraform模板中定义更多的虚拟机组和Server Group资源(例如:count为2的vm-shardB以及server-groupB,count为2的vm-shardC以及server-groupC等等),这种情况下,由于Terraform暂时还不支持这种大结构的模板条件化生成,只能写死在Terraform模板中。Redis集群可以分为任意多分片(3个以上),每个分片的集群都要单独编写Terraform模板并反复定义虚机和Server Group资源,导致资源编排十分困难,且不易管理维护(每增加一种分片类型,都要编写新的Terrform模板,并且要重复编排分片数个Server Group资源和相当于分片数两倍的虚机资源)。
发明内容
为了解决以上技术问题,本发明提出了一种Openstack环境下Redis集群的编排方法,简化这些的部署工作,提高了应用部署效率,并能适配不同的环境。
本发明的技术方案是:
一种Openstack环境下Redis集群的编排方法,使用主机聚合将物理主机分组,在为Redis集群的主从节点分别创建实例类型,并使用自定义元数据关联对应的主机聚合,从而实现将Redis集群的主从节点编排到Openstack环境下不同物理节点的虚拟机中,最终实现了简化Terraform编排模板的编写和维护,不受Server Group资源限制,加快集群编排的目的。
使用主机聚合管理物理主机,主机聚合将主机分组,在OpenStack中,实例类型定义了虚拟服务器的计算,内存和存储容量;作为管理用户,可以创建,编辑和删除实例类型;主机聚合通过元数据作用于实例类型,并使具有对应实例类型的虚拟机部署到特定的物理主机。
进一步的,步骤包括:
1)、创建主机聚合;
2)、创建实例类型并关联主机聚合;
3)使用Terraform创建具有特定实例类型的虚拟机。
其中,
创建主机聚合
登录Openstack的控制台,在管理员菜单下选择计算->主机聚合,在列表上方选择创建主机聚合,为Redis集群的主从节点分别创建主机聚合并设置元数据,并向主机聚合中加入要管理的物理主机。
创建实例类型并关联主机聚合
在管理员菜单下选择计算->实例类型,在列表上方选择创建实例类型,分别为Redis集群的主节点和从节点创建实例类型,并设置元数据,通过元数据关联之前创建的主机聚合。所述元数据需要与主机聚合的自定义元数据的键值均相同。
使用Terraform创建具有特定实例类型的虚拟机
改为使用主机聚合后的Terraform模板的示例代码如下:
resource "openstack_compute_instance_v2" "master_vm" {
count = "${var.master_count}"
name = "REDIS-MASTER-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_master"
availability_zone = "${var.availability_zone}"
}
resource "openstack_compute_instance_v2" "slave_vm" {
count = "${var.slave_count}"
name = "REDIS-SLAVE-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_slave"
availability_zone = "${var.availability_zone}"
}。
如上述代码所示,用于部署Redis集群主节点的master_vm使用了“redis_flavor_master”的实例类型,用于部署Redis集群从节点的slave_vm使用了“redis_flavor_slave”的实例类型,两种实例类型分别通过TYPE=MASTER和TYPE=SLAVE元数据关联不同的主机聚合。
本发明的有益效果是
通过上述方法将Redis集群的主从节点编排到Openstack环境下不同物理节点的虚拟机中,最终实现了简化Terraform编排模板的编写和维护,不受Server Group资源限制,加快集群编排的目的(按Server Group创建虚拟机时需要按Server Group分相当于Redis集群分片数批次创建虚机,而使用本方法只需主从节点所需虚机分两批创建即可)。
附图说明
图1是使用主机聚合部署Redis集群示意图;
图2是创建主机聚合示意图;
图3是创建实例类型示意图;
图4是编辑实例类型的自定义元数据示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在Openstack中,一般使用主机聚合管理物理主机,主机聚合提供了一种根据特定条件将主机分组的机制。在OpenStack中,实例类型(flavor)定义了虚拟服务器(也称为实例)的计算,内存和存储容量。作为管理用户,可以创建,编辑和删除实例类型。主机聚合通过元数据(一组管理员定义的键-值标签)作用于实例类型,并使具有对应实例类型的虚拟机部署到特定的物理主机。在Openstack可视化控制台(Horizon)中的主机聚合和实例类型如图3所示:
Openstack中的主机聚合具有3个元数据,其中availablity_zone是Openstack内置的元数据,SPEC和SERVICE是管理员自定义的元数据的键(可以为其他的字面值),更新Openstack中实例类型除Openstack内置的元数据外,共有3个管理员自定义的元数据(SERVICE、SPEC、TYPE),当实例类型和主机聚合的元数据的数量相同且键值相同时(例如实例类型中具有元数据SERVICE=REDIS和SPEC=GENERAL,主机聚合中也具有SERVICE=REDIS和SPEC=GENERAL),即表示实例类型使用相应的主机聚合。
如图1所示,为解决使用Server Group资源编排Redis集群中不易编写和维护Terraform模板的问题,可以让集群中的主节点所在的虚机使用实例类型A,并通过元数据配置规定实例类型A使用主机聚合A,让集群中的从节点所在的虚机使用实例类型B,并通过元数据配置规定实例类型B使用主机聚合B,将Openstack管理的物理主机互斥地划分到主机聚合A和主机聚合B中,从而实现Redis主从节点部署到不同的物理主机上的虚拟机的目的。
1. 创建主机聚合
登录Openstack的控制台,在管理员菜单下选择计算->主机聚合,在列表上方选择创建主机聚合,按图2为Redis集群的主从节点分别创建主机聚合并设置元数据,并向主机聚合中加入要管理的物理主机。
2. 创建实例类型并关联主机聚合
在管理员菜单下选择计算->实例类型,在列表上方选择创建实例类型,按图3分别为Redis集群的主节点和从节点创建实例类型,并按图4设置元数据(需要与主机聚合的自定义元数据的键值均相同),通过元数据关联之前创建的主机聚合。
3. 使用Terraform创建具有特定实例类型的虚拟机
改为使用主机聚合后的Terraform模板的示例代码如下(为说明问题,代码中省略了网络和存储的定义):
resource "openstack_compute_instance_v2" "master_vm" {
count = "${var.master_count}"
name = "REDIS-MASTER-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_master"
availability_zone = "${var.availability_zone}"
}
resource "openstack_compute_instance_v2" "slave_vm" {
count = "${var.slave_count}"
name = "REDIS-SLAVE-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_slave"
availability_zone = "${var.availability_zone}"
}
如上述代码所示,用于部署Redis集群主节点的master_vm使用了“redis_flavor_master”的实例类型,用于部署Redis集群从节点的slave_vm使用了“redis_flavor_slave”的实例类型,两种实例类型分别通过TYPE=MASTER和TYPE=SLAVE元数据关联不同的主机聚合,从而满足了“Redis集群主从节点不能部署在同一台物理主机”的要求。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种Openstack环境下Redis集群的编排方法,其特征在于,
使用主机聚合将物理主机分组,再为Redis集群的主从节点分别创建实例类型,并使用自定义元数据关联对应的主机聚合,从而实现将Redis集群的主从节点编排到Openstack环境下不同物理节点的虚拟机中。
2.使用主机聚合管理物理主机,主机聚合将主机分组,在OpenStack中,实例类型定义了虚拟服务器的计算,内存和存储容量;作为管理用户,可以创建,编辑和删除实例类型;主机聚合通过元数据作用于实例类型,并使具有对应实例类型的虚拟机部署到特定的物理主机。
3.根据权利要求2所述的方法,其特征在于,
步骤包括:
1)、创建主机聚合;
2)、创建实例类型并关联主机聚合;
3)使用Terraform创建具有特定实例类型的虚拟机。
4.根据权利要求3所述的方法,其特征在于,
创建主机聚合
登录Openstack的控制台,在管理员菜单下选择计算->主机聚合,在列表上方选择创建主机聚合,为Redis集群的主从节点分别创建主机聚合并设置元数据,并向主机聚合中加入要管理的物理主机。
5.根据权利要求4所述的方法,其特征在于,
创建实例类型并关联主机聚合
在管理员菜单下选择计算->实例类型,在列表上方选择创建实例类型,分别为Redis集群的主节点和从节点创建实例类型,并设置元数据,通过元数据关联之前创建的主机聚合。
6.根据权利要求5所述的方法,其特征在于,
所述元数据需要与主机聚合的自定义元数据的键值均相同。
7.根据权利要求5或6所述的方法,其特征在于,
使用Terraform创建具有特定实例类型的虚拟机
改为使用主机聚合后的Terraform模板的示例代码如下:
resource "openstack_compute_instance_v2" "master_vm" {
count = "${var.master_count}"
name = "REDIS-MASTER-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_master"
availability_zone = "${var.availability_zone}"
}
resource "openstack_compute_instance_v2" "slave_vm" {
count = "${var.slave_count}"
name = "REDIS-SLAVE-${count.index}"
image_id = "${var.image}"
flavor_name = "redis_flavor_slave"
availability_zone = "${var.availability_zone}"
}。
8.根据权利要求7所述的方法,其特征在于,
如上述代码所示,用于部署Redis集群主节点的master_vm使用了“redis_flavor_master”的实例类型,用于部署Redis集群从节点的slave_vm使用了“redis_flavor_slave”的实例类型,两种实例类型分别通过TYPE=MASTER和TYPE=SLAVE元数据关联不同的主机聚合。
CN202010146962.3A 2020-03-05 2020-03-05 一种Openstack环境下Redis集群的编排方法 Pending CN111352701A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010146962.3A CN111352701A (zh) 2020-03-05 2020-03-05 一种Openstack环境下Redis集群的编排方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010146962.3A CN111352701A (zh) 2020-03-05 2020-03-05 一种Openstack环境下Redis集群的编排方法

Publications (1)

Publication Number Publication Date
CN111352701A true CN111352701A (zh) 2020-06-30

Family

ID=71197388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010146962.3A Pending CN111352701A (zh) 2020-03-05 2020-03-05 一种Openstack环境下Redis集群的编排方法

Country Status (1)

Country Link
CN (1) CN111352701A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049136A (zh) * 2022-12-21 2023-05-02 广东天耘科技有限公司 基于云计算平台的MySQL集群部署方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107769938A (zh) * 2016-08-16 2018-03-06 北京金山云网络技术有限公司 一种Openstack平台支持多网络区域的系统和方法
CN108809722A (zh) * 2018-06-13 2018-11-13 郑州云海信息技术有限公司 一种部署Kubernetes集群的方法、装置和存储介质
CN109104318A (zh) * 2018-08-23 2018-12-28 广东轩辕网络科技股份有限公司 用于实现集群自适应部署的方法、基于云平台的自适应部署大数据集群的部署方法及系统
CN109213565A (zh) * 2017-06-29 2019-01-15 中兴通讯股份有限公司 异构虚拟计算资源的管理方法、相关设备及存储介质
CN110096258A (zh) * 2019-04-30 2019-08-06 山东浪潮云信息技术有限公司 一种基于Terraform的OpenStack基础设施架构管理的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107769938A (zh) * 2016-08-16 2018-03-06 北京金山云网络技术有限公司 一种Openstack平台支持多网络区域的系统和方法
CN109213565A (zh) * 2017-06-29 2019-01-15 中兴通讯股份有限公司 异构虚拟计算资源的管理方法、相关设备及存储介质
CN108809722A (zh) * 2018-06-13 2018-11-13 郑州云海信息技术有限公司 一种部署Kubernetes集群的方法、装置和存储介质
CN109104318A (zh) * 2018-08-23 2018-12-28 广东轩辕网络科技股份有限公司 用于实现集群自适应部署的方法、基于云平台的自适应部署大数据集群的部署方法及系统
CN110096258A (zh) * 2019-04-30 2019-08-06 山东浪潮云信息技术有限公司 一种基于Terraform的OpenStack基础设施架构管理的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049136A (zh) * 2022-12-21 2023-05-02 广东天耘科技有限公司 基于云计算平台的MySQL集群部署方法和系统
CN116049136B (zh) * 2022-12-21 2023-07-28 广东天耘科技有限公司 基于云计算平台的MySQL集群部署方法和系统

Similar Documents

Publication Publication Date Title
US11508021B2 (en) Processes and systems that determine sustainability of a virtual infrastructure of a distributed computing system
US10292044B2 (en) Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods
US10585691B2 (en) Distribution system, computer, and arrangement method for virtual machine
Tsai et al. Two-tier multi-tenancy scaling and load balancing
JP5352890B2 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
CN103180823A (zh) 软件产品的多维建模
CN103036986A (zh) 在分布式应用对象上提供更新通知
CN106663012B (zh) 一种硬件加速方法以及相关设备
CN105635311A (zh) 一种云管理平台中资源池信息同步的方法
US10657102B2 (en) Storage space management in union mounted file systems
CN108370328A (zh) 一种nfv mano策略描述符的管理方法及装置
US10761869B2 (en) Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
JP2012504295A (ja) データベースサーバシステムのためのストレージ階層
CN109150964B (zh) 一种可迁移的数据管理方法及服务迁移方法
EP3442201A1 (en) Cloud platform construction method and cloud platform
CN104954458A (zh) 一种基于龙芯平台的云操作系统的部署方法
CN107070645A (zh) 比较数据表的数据的方法和系统
CN112099917B (zh) 调控系统容器化应用运行管理方法、系统、设备及介质
CN111966677A (zh) 数据报表的处理方法、装置、电子设备及存储介质
CN105007311A (zh) 一种基于云平台和云计算的资源管理系统和方法
CN112256439A (zh) 一种基于云计算资源池的服务目录动态更新系统及方法
CN103034526A (zh) 一种虚拟化服务的实现方法和装置
US11983151B2 (en) Resilience based database placement in clustered environment
CN111352701A (zh) 一种Openstack环境下Redis集群的编排方法
CN111752539A (zh) Bi服务集群系统及其搭建方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200630