CN109947595A - 一种OpenStack云主机保护方法 - Google Patents
一种OpenStack云主机保护方法 Download PDFInfo
- Publication number
- CN109947595A CN109947595A CN201910147361.1A CN201910147361A CN109947595A CN 109947595 A CN109947595 A CN 109947595A CN 201910147361 A CN201910147361 A CN 201910147361A CN 109947595 A CN109947595 A CN 109947595A
- Authority
- CN
- China
- Prior art keywords
- backup
- hard disk
- cloud
- recovery
- openstack
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种OpenStack云主机保护方法,该方法通过对CinderBackup服务的改进,可实现多并发场景下的性能优化,可实现CinderBackup服务完成云硬盘的备份和恢复。与现有技术相比,本发明解决多并发任务场景下同时备份或恢复的问题。
Description
技术领域
本发明涉及OpenStack中云主机保护的方法,尤其是涉及一种基于CinderBackup的OpenStack云主机保护方法。
背景技术
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
随着OpenStack私有云的快速发展,OpenStack的云主机保护已经成为了用户的迫切的需求。虽然OpenStack官方提供了CinderBackup服务用来保护云平台的云硬盘的备份,但是存在不少问题。如缺少完整的云主机的保护方法,如采用CinderBackup服务的PythonGIL锁限制导致高磁盘IO并发场景性能存在性能低下的问题,如CinderBackup服务的Green协程模式存在IO读写时不让出CPU的问题导致并发执行的备份任务无法同时执行,如备份代理无法从CinderBackup服务读写云硬盘。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种OpenStack云主机保护方法。
本发明的目的可以通过以下技术方案来实现:
一种OpenStack云主机保护方法,该方法通过对CinderBackup服务的改进,可实现多并发场景下的性能优化,可实现CinderBackup服务完成云硬盘的备份和恢复。
所述的备份流程具体如下:
步骤101.调用OpenStack API对OpenStack云主机的云硬盘创建快照;
步骤102.调用OpenStack API,创建步骤101中快照的克隆卷;
步骤103.调用OpenStack API对步骤102中的克隆卷发起备份任务;
步骤104.EsBackupManager插件响应步骤103中的备份请求,并调调用EsBackupDriver插件发起对步骤103中的克隆卷的备份;
步骤105.EsBackupDriver插件通过交互层,把备份任务分发到C++业务层的任务管理模块;
步骤106.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘备份数据的传输;
步骤107.EsBackupManager获取步骤106中创建的子任务服务进程连接信息,并存储到步骤102中的克隆卷的元数据中;
步骤108.备份代理从云硬盘元数据中,获取连接信息;
步骤109.备份代理使用步骤108中的连接信息与TaskProcessN建立连接,完成云硬盘数据的备份。
所述的恢复流程具体如下:
步骤201.调用OpenStack API,创建需要恢复的云主机和云硬盘;
步骤202.调用OpenStack API,对步骤201中创建的云硬盘发起恢复任务;
步骤203.EsBackupManager插件响应步骤202中的恢复请求,并调用EsBackupDriver插件发起步骤201中的云硬盘的恢复;
步骤204.EsBackupDriver插件通过交互层,把恢复任务分发到C++业务层中的任务管理模块;
步骤205.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘恢复数据的传输;
步骤206.EsBackupManager获取步骤205中子任务服务进程连接信息,并存储到步骤201中的云硬盘的元数据中;
步骤207.恢复代理从云硬盘元数据中,获取连接信息;
步骤208.恢复代理步骤207中的连接信息与TaskProcessN建立连接,完成云硬盘数据的恢复。
该方法基于C++和Python混合编程实现。
部署节点需要安装Python和C++运行时库。
该方法解决多并发任务场景下同时备份或恢复的问题。
与现有技术相比,本发明通过对CinderBackup服务的改进,可实现多并发场景下的性能优化,可实现CinderBackup服务完成云硬盘的备份和恢复业务、可解决多并发任务场景下同时备份或恢复的问题。
附图说明
图1为CinderBackup服务结构图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1所示,本发明主要由三部分组成:插件层、交互层、业务层。
所述的备份流程具体如下:
步骤101.调用OpenStack API对OpenStack云主机的云硬盘创建快照;
步骤102.调用OpenStack API,创建步骤101中快照的克隆卷;
步骤103.调用OpenStack API对步骤102中的克隆卷发起备份任务;
步骤104.EsBackupManager插件响应步骤103中的备份请求,并调调用EsBackupDriver插件发起对步骤103中的克隆卷的备份;
步骤105.EsBackupDriver插件通过交互层,把备份任务分发到C++业务层的任务管理模块;
步骤106.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘备份数据的传输;
步骤107.EsBackupManager获取步骤106中创建的子任务服务进程连接信息,并存储到步骤102中的克隆卷的元数据中;
步骤108.备份代理从云硬盘元数据中,获取连接信息;
步骤109.备份代理使用步骤108中的连接信息与TaskProcessN建立连接,完成云硬盘数据的备份。
所述的恢复流程具体如下:
步骤201.调用OpenStack API,创建需要恢复的云主机和云硬盘;
步骤202.调用OpenStack API,对步骤201中创建的云硬盘发起恢复任务;
步骤203.EsBackupManager插件响应步骤202中的恢复请求,并调用EsBackupDriver插件发起步骤201中的云硬盘的恢复;
步骤204.EsBackupDriver插件通过交互层,把恢复任务分发到C++业务层中的任务管理模块;
步骤205.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘恢复数据的传输;
步骤206.EsBackupManager获取步骤205中子任务服务进程连接信息,并存储到步骤201中的云硬盘的元数据中;
步骤207.恢复代理从云硬盘元数据中,获取连接信息;
步骤208.恢复代理步骤207中的连接信息与TaskProcessN建立连接,完成云硬盘数据的恢复。
本发明基于C++和Python混合编程实现,因此部署节点需要安装Python和C++运行时库。
1.OpenStack的CinderBackup服务是分布式部署,则需要在OpenStack环境的所有Cinder节点部署该软件。
2.使用C++实现程序,分为几个模块:EsBackupManager插件、EsBackupDriver插件、C++和Python交互模块、任务管理模块、子服务管理模块。
3.EsBackupManager插件,实现功能如下:restore_backup,处理云硬盘恢复任务;create_backup,处理云硬盘备份任务。
4.EsBackupDriver插件,实现功能如下:backup,实现云硬盘的备份逻辑;restore,实现云硬盘的恢复逻辑。delete,处理备份删除删除;
5.C++和Python交互模块,实现功能如下:AssignTask,分发任务到任务管理模块;GetTaskConInfo,从任务管理器获取任务连接信息。
6.任务管理模块,实现功能如下:CreateTask,创建备份或恢复任务。
7.子服务管理模块,实现功能如下:CreateSubServer,创建任务关联的子服务处理数据传输。
8.存在云主机A,云主机存在云硬盘{A1,A2,…,An},对云硬盘{A1,A2,…,An}依次发起备份任务。
8.1 EsBackupManager接收备份请求后,调用create_backup接口完成完成云硬盘的信息查询和云硬盘的挂载,并分发备份任务相关信息给EsBackupDriver。
8.2 EsBackupDriver调用backup接口,分发备份任务到C++和Python交互模块。
8.3 C++交换模块调用接口AssignTask,分发任务到任务管理器模块。
8.4任务管理器调用接口CreateTask,对子服务管理模块发起备份任务请求。
8.5子服务管理模块调用接口CreateSubServer,创建任务关联的子服务SubTaskServerN。
8.6 EsBackupDriver通过交互层模块的接口GetTaskConInfo,获取任务关联的子服务的SubTaskServerN的连接信息并存储到云硬盘的元数据中。
8.7备份代理从云硬盘的元数据中获取连接信息,与子服务SubTaskServerN建立连接和完成云硬盘数据的备份。
9.存在需要恢复云主机B,云主机存在云硬盘{B1,B2,…,Bn},对云硬盘{B1,B2,…,Bn}依次发起恢复任务。
9.1 EsBackupManager接收备份请求后,调用restore接口完成完成云硬盘的信息查询和云硬盘的挂载,并分发恢复任务相关信息给EsBackupDriver。
9.2 EsBackupDriver调用restore接口,分发备份任务到C++和Python交互模块。
9.3 C++交换模块调用接口AssignTask,分发恢复任务到任务管理器模块。
9.4任务管理器调用接口CreateTask,对子服务管理模块发起恢复任务请求。
9.5子服务管理模块调用接口CreateSubServer,创建任务关联的子服务SubTaskServerN。
9.6 EsBackupDriver通过交互层模块的接口GetTaskConInfo,获取任务关联的子服务的SubTaskServerN的连接信息并存储到云硬盘的元数据中。
9.7恢复代理从云硬盘的元数据中获取连接信息,与子服务SubTaskServerN建立连接和完成云硬盘数据的恢复。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种OpenStack云主机保护方法,其特征在于,该方法通过对CinderBackup服务的改进,可实现多并发场景下的性能优化,可实现CinderBackup服务完成云硬盘的备份和恢复。
2.根据权利要求1所述的一种OpenStack云主机保护方法,其特征在于,所述的备份流程具体如下:
步骤101.调用OpenStack API对OpenStack云主机的云硬盘创建快照;
步骤102.调用OpenStack API,创建步骤101中快照的克隆卷;
步骤103.调用OpenStack API对步骤102中的克隆卷发起备份任务;
步骤104.EsBackupManager插件响应步骤103中的备份请求,并调调用EsBackupDriver插件发起对步骤103中的克隆卷的备份;
步骤105.EsBackupDriver插件通过交互层,把备份任务分发到C++业务层的任务管理模块;
步骤106.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘备份数据的传输;
步骤107.EsBackupManager获取步骤106中创建的子任务服务进程连接信息,并存储到步骤102中的克隆卷的元数据中;
步骤108.备份代理从云硬盘元数据中,获取连接信息;
步骤109.备份代理使用步骤108中的连接信息与TaskProcessN建立连接,完成云硬盘数据的备份。
3.根据权利要求1所述的一种OpenStack云主机保护方法,其特征在于,所述的恢复流程具体如下:
步骤201.调用OpenStack API,创建需要恢复的云主机和云硬盘;
步骤202.调用OpenStack API,对步骤201中创建的云硬盘发起恢复任务;
步骤203.EsBackupManager插件响应步骤202中的恢复请求,并调用EsBackupDriver插件发起步骤201中的云硬盘的恢复;
步骤204.EsBackupDriver插件通过交互层,把恢复任务分发到C++业务层中的任务管理模块;
步骤205.任务管理模块通过子服务管理模块创建子任务服务进程TaskProcessN,负责云硬盘恢复数据的传输;
步骤206.EsBackupManager获取步骤205中子任务服务进程连接信息,并存储到步骤201中的云硬盘的元数据中;
步骤207.恢复代理从云硬盘元数据中,获取连接信息;
步骤208.恢复代理步骤207中的连接信息与TaskProcessN建立连接,完成云硬盘数据的恢复。
4.根据权利要求1所述的一种OpenStack云主机保护方法,其特征在于,该方法基于C++和Python混合编程实现。
5.根据权利要求4所述的一种OpenStack云主机保护方法,其特征在于,部署节点需要安装Python和C++运行时库。
6.根据权利要求1所述的一种OpenStack云主机保护方法,其特征在于,该方法解决多并发任务场景下同时备份或恢复的问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147361.1A CN109947595B (zh) | 2019-02-27 | 2019-02-27 | 一种OpenStack云主机保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147361.1A CN109947595B (zh) | 2019-02-27 | 2019-02-27 | 一种OpenStack云主机保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947595A true CN109947595A (zh) | 2019-06-28 |
CN109947595B CN109947595B (zh) | 2023-06-13 |
Family
ID=67006931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910147361.1A Active CN109947595B (zh) | 2019-02-27 | 2019-02-27 | 一种OpenStack云主机保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947595B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143133A (zh) * | 2019-12-31 | 2020-05-12 | 广州鼎甲计算机科技有限公司 | 虚拟机备份方法和备份虚拟机恢复方法 |
CN112333008A (zh) * | 2020-10-22 | 2021-02-05 | 济南浪潮数据技术有限公司 | 一种云主机整机备份还原方法、装置、设备及存储介质 |
CN112948055A (zh) * | 2021-03-04 | 2021-06-11 | 华东理工大学 | 一种基于云计算的创新型课程实验自动管理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780417A (zh) * | 2012-10-23 | 2014-05-07 | 上海盛大网络发展有限公司 | 一种基于云硬盘的数据库故障转移方法及装置 |
CN104168309A (zh) * | 2014-07-24 | 2014-11-26 | 深圳天珑无线科技有限公司 | 基于云服务的数据备份与操作方法 |
CN104468844A (zh) * | 2014-12-31 | 2015-03-25 | 蓝盾信息安全技术股份有限公司 | 云计算iaas教育实验平台装置 |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
US10013189B1 (en) * | 2015-12-14 | 2018-07-03 | EMC IP Holding Company LLC | Storage volume backup management for multi-tenant environments |
-
2019
- 2019-02-27 CN CN201910147361.1A patent/CN109947595B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780417A (zh) * | 2012-10-23 | 2014-05-07 | 上海盛大网络发展有限公司 | 一种基于云硬盘的数据库故障转移方法及装置 |
CN104168309A (zh) * | 2014-07-24 | 2014-11-26 | 深圳天珑无线科技有限公司 | 基于云服务的数据备份与操作方法 |
CN104468844A (zh) * | 2014-12-31 | 2015-03-25 | 蓝盾信息安全技术股份有限公司 | 云计算iaas教育实验平台装置 |
US10013189B1 (en) * | 2015-12-14 | 2018-07-03 | EMC IP Holding Company LLC | Storage volume backup management for multi-tenant environments |
CN106708430A (zh) * | 2016-11-30 | 2017-05-24 | 浪潮软件集团有限公司 | 一种云计算架构下的云硬盘实现方法 |
Non-Patent Citations (1)
Title |
---|
九小云: "Rocky版新功能集锦之二:Cinder", 《HTTPS://MP.WEIXIN.QQ.COM/S/NDIE4QYYGZVAJVYKASIHZG》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143133A (zh) * | 2019-12-31 | 2020-05-12 | 广州鼎甲计算机科技有限公司 | 虚拟机备份方法和备份虚拟机恢复方法 |
CN111143133B (zh) * | 2019-12-31 | 2020-09-01 | 广州鼎甲计算机科技有限公司 | 虚拟机备份方法和备份虚拟机恢复方法 |
CN112333008A (zh) * | 2020-10-22 | 2021-02-05 | 济南浪潮数据技术有限公司 | 一种云主机整机备份还原方法、装置、设备及存储介质 |
CN112333008B (zh) * | 2020-10-22 | 2023-01-24 | 济南浪潮数据技术有限公司 | 一种云主机整机备份还原方法、装置、设备及存储介质 |
CN112948055A (zh) * | 2021-03-04 | 2021-06-11 | 华东理工大学 | 一种基于云计算的创新型课程实验自动管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109947595B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515776B (zh) | 业务不间断升级方法、待升级节点和可读存储介质 | |
US20210004258A1 (en) | Method and Apparatus for Creating Virtual Machine | |
WO2018086580A1 (zh) | 一种可扩展的异构云平台适配方法及其系统 | |
CN109947595A (zh) | 一种OpenStack云主机保护方法 | |
CN104142847B (zh) | 云计算环境下的无状态化虚拟机及其应用 | |
CN107197022A (zh) | OpenStack存储优化方法及系统 | |
US9674343B2 (en) | System and method for instantiation of services at a location based on a policy | |
CN102902600A (zh) | 有效的应用感知的灾难恢复 | |
CN106909475A (zh) | 基于对象存储进行数据备份、恢复的方法和装置 | |
CN104272259A (zh) | 用于在事务中间件机器环境中支持基于版本的路由的系统和方法 | |
CN104657149A (zh) | 一种存储系统的管理模块的软件框架实现方法 | |
CN112463211A (zh) | 一种兼容多种开发架构的系统架构改造方法及系统架构 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN104731943A (zh) | 一种服务器和数据处理方法 | |
CN106550014A (zh) | 服务器集群中的节点升级方法及装置 | |
US9207966B2 (en) | Method and system for providing a high-availability application | |
CN108304178B (zh) | 一种基于Unity3D的数据集引用方法及系统 | |
CN104516796A (zh) | 一种基于命令集的网元备份与恢复方法及装置 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN102215264A (zh) | 一种支持多租户数据与服务定制运行的方法和装置 | |
CN106648964A (zh) | 数据库备份方法及系统 | |
CN109032753A (zh) | 一种异构虚拟机硬盘托管方法、系统、存储介质及Nova平台 | |
CN104123135A (zh) | 一种统一后台接口的方法及装置 | |
CN109976870A (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 |