CN111770158B - 云平台恢复方法、装置、电子设备及计算机可读存储介质 - Google Patents

云平台恢复方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111770158B
CN111770158B CN202010591210.8A CN202010591210A CN111770158B CN 111770158 B CN111770158 B CN 111770158B CN 202010591210 A CN202010591210 A CN 202010591210A CN 111770158 B CN111770158 B CN 111770158B
Authority
CN
China
Prior art keywords
rbd
file
identification information
subfiles
ceph
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
CN202010591210.8A
Other languages
English (en)
Other versions
CN111770158A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010591210.8A priority Critical patent/CN111770158B/zh
Publication of CN111770158A publication Critical patent/CN111770158A/zh
Application granted granted Critical
Publication of CN111770158B publication Critical patent/CN111770158B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种云平台恢复方法、装置、电子设备及计算机可读存储介质,包括:在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息;基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的的各子文件;对每一rbd对应的各子文件进行拼接得到该rbd对应的,并将本地文件上传至备用Ceph存储集群;控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。该方案无需对发生故障的Ceph存储集群中的各功能组件进行一一修复,即使在Ceph存储集群损坏严重或Ceph存储群承载数据量很大的情形下也能及时对云平台进行恢复。

Description

云平台恢复方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种云平台恢复方法、装置、电子设备及计算机可读存储介质。
背景技术
许多云平台都是OpenStack管理***和Ceph存储集群的组合,OpenStack管理***提供云平台的管理功能,Ceph存储集群提供统一存储功能,其包括块存储、对象存储和文件存储。目前Ceph存储集群被广泛使用的方式是利用块存储作为虚拟机的***盘和数据盘。
在云平台使用过程中,随着用户申请的虚拟机越来越多,Ceph存储集群所承载的数据量也越来越大,Ceph存储集群可以通过扩容慢慢变大,达到上百个OSD(QbjectStorage Device,对象存储设备)或者上千个OSD。随着Ceph存储集群的规模变大,数据的迁移和恢复都成为挑战,而存储是云平台的基础,如果Ceph存储集群发生故障,云平台将面临无法使用的危险,那么在Ceph存储集群发生故障时需要及时进行修复以恢复云平台的正常运行。
目前,对Ceph存储集群损坏的修复方案通常是对发生故障的相应组件一一进行修复,直到所有的组件都可以正常运行了,再利用Ceph存储集群的自恢复能力进行数据一致性的恢复,最终达到整个云平台的恢复。但是,对于Ceph存储集群损坏严重或Ceph存储群承载数据量很大的情形,该修复方案无法对云平台进行及时恢复。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
第一方面,本申请实施例提供了一种云平台恢复方法,包括:
在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息;
基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;
基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件;
对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群;
控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
在本申请的一种可选实施例中,基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息,包括:
基于每一虚拟机的标识信息以及该虚拟机与Ceph存储集群中各个数据存储池的对应关系,获取该虚拟机对应的各rbd的名称;
从每一rbd的名称中获取该rbd的标识信息。
在本申请的一种可选实施例中,每一子文件的文件名中包含有对应的rbd的标识信息,基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件,包括:
将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件;
获取对应于每一rbd的所有子文件。
在本申请的一种可选实施例中,将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件,包括:
分别将每一rbd的标识信息与Ceph存储集群中各对象存储设备OSD中存储的各子文件包含的rbd的标识信息进行比对,并将文件名中包含有该rbd的标识信息子文件确定为对应于该rbd的子文件。
在本申请的一种可选实施例中,在将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件后,该方法还包括:
获取对应于每一rbd的各子文件的存储路径信息,并将各子文件的存储路径信息和对应的rbd的标识信息一一对应存储至预设数据库中,其中,存储路径信息包括对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息;
获取对应于每一rbd的所有子文件,包括:
基于每一rbd的标识信息从预设数据库中获取对应的各子文件的存储路径信息;
基于各子文件的路径信息从对应的OSD中获取对应的所有子文件。
在本申请的一种可选实施例中,每一子文件的文件中包含有该子文件在对应的rbd中的位置偏移量,位置偏移量指示对应的子文件在对应的rbd中所处的位置,对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,包括:
基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件;
基于每一rbd对应的各目标子文件的文件名中包含的位置偏移量,确定各目标子文件的拼接顺序;
将每一rbd对应的各目标子文件按拼接顺序进行拼接,得到该rbd对应的本地文件。
在本申请的一种可选实施例中,基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件,包括:
对于rbd中的每一位置,若该位置对应有一个子文件,则将该子文件确定为该位置的目标子文件;
若该位置对应有至少两个子文件,则按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件,包括:
获取各子文件的信息摘要算法MD5值;
若各子文件的MD5值相同,则任选各子文件中一个子文件确定为该位置的目标子文件;
若各子文件的MD5值不相同,则选取各子文件中对应的修改时刻最先或最后的子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,在控制云平台从Ceph存储集群切换至备用Ceph存储集群后,该方法还包括:
对Ceph存储集群进行格式化得到格式化后的Ceph存储集群,并将格式化后的Ceph存储集群中的存储节点加入备用Ceph存储集群,得到合并后的Ceph存储集群;
将合并后的Ceph存储集群中属于备用Ceph存储集群***的存储节点剔除。
第二方面,本申请实施例提供了一种云平台恢复装置,包括:
虚拟机的标识信息获取模块,用于在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息;
rbd的标识信息获取模块,用于基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;
子文件获取模块,用于基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件;
本地文件上传模块,用于对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群;
存储集群切换模块,用于控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
在本申请的一种可选实施例中,rbd的标识信息获取模块具体用于:
基于每一虚拟机的标识信息以及该虚拟机与Ceph存储集群中各个数据存储池的对应关系,获取该虚拟机对应的各rbd的名称;
从每一rbd的名称中获取该rbd的标识信息。
在本申请的一种可选实施例中,每一子文件的文件名中包含有对应的rbd的标识信息,子文件获取模块具体用于:
将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件;
获取对应于每一rbd的所有子文件。
在本申请的一种可选实施例中,子文件获取模块进一步用于:
分别将每一rbd的标识信息与Ceph存储集群中各对象存储设备OSD中存储的各子文件包含的rbd的标识信息进行比对,并将文件名中包含有该rbd的标识信息子文件确定为对应于该rbd的子文件。
在本申请的一种可选实施例中,该装置还包括存储路径信息获取模块,用于:
在将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件后,获取对应于每一rbd的各子文件的存储路径信息,并将各子文件的存储路径信息和对应的rbd的标识信息一一对应存储至预设数据库中,其中,存储路径信息包括对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息;
相应地,子文件获取模块具体用于:
基于每一rbd的标识信息从预设数据库中获取对应的各子文件的存储路径信息;
基于各子文件的路径信息从对应的OSD中获取对应的所有子文件。
在本申请的一种可选实施例中,每一子文件的文件中包含有该子文件在对应的rbd中的位置偏移量,位置偏移量指示对应的子文件在对应的rbd中所处的位置,本地文件上传模块具体用于:
基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件;
基于每一rbd对应的各目标子文件的文件名中包含的位置偏移量,确定各目标子文件的拼接顺序;
将每一rbd对应的各目标子文件按拼接顺序进行拼接,得到该rbd对应的本地文件。
在本申请的一种可选实施例中,本地文件上传模块进一步用于:
对于rbd中的每一位置,若该位置对应有一个子文件,则将该子文件确定为该位置的目标子文件;
若该位置对应有至少两个子文件,则按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,本地文件上传模块进一步用于:
获取各子文件的信息摘要算法MD5值;
若各子文件的MD5值相同,则任选各子文件中一个子文件确定为该位置的目标子文件;
若各子文件的MD5值不相同,则选取各子文件中对应的修改时刻最先或最后的子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,该装置还包括扩缩容模块,用于:
在控制云平台从Ceph存储集群切换至备用Ceph存储集群后,对Ceph存储集群进行格式化得到格式化后的Ceph存储集群,并将格式化后的Ceph存储集群中的存储节点加入备用Ceph存储集群,得到合并后的Ceph存储集群;
将合并后的Ceph存储集群中属于备用Ceph存储集群***的存储节点剔除。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器;
存储器中存储有计算机程序;
处理器,用于执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
本申请提供的技术方案带来的有益效果是:
通过各虚拟机的标识信息获取对应的rbd的标识信息,再基于各rbd的标识信息从发生故障的Ceph存储集群中获取对应的没有损坏的子文件,并基于各rbd对应的没有损坏的子文件获取对应的本地文件上传至备用Ceph存储集群,最后通过将云平台切换至备用Ceph存储集群实现云平台的恢复,由于该方案在恢复过程中从虚拟机对应的数据层面进行云平台的恢复,无需对发生故障的Ceph存储集群中的各功能组件进行一一修复,即使在Ceph存储集群损坏严重或Ceph存储群承载数据量很大的情形下也能及时对云平台进行恢复。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种云平台中OpenStack管理***与Ceph存储集群的交互示意图;
图2为本申请实施例提供的一种云平台恢复方法的流程示意图;
图3为本申请实施例中rbd对应的子文件分布式存储于Ceph存储集群的示意图;
图4为本申请实施例中云平台的存储集群切换示意图;
图5为本申请实施例中基于虚拟机的标识信息确定对应的rbd的标识信息的流程示意图;
图6为本申请实施例的一个示例中子文件与本地文件的对应关系的示意图;
图7为本申请实施例的一个示例中由目标子文件拼接得到本地文件的示意图;
图8为本申请实施例的一个示例中并行比对标识信息的示意图;
图9为本申请实施例的一个示例中基于rbd的标识信息获取对应的子文件的示意图;
图10为本申请实施例中将Ceph存储集群划分为多个小的Ceph存储集群后进行云平台恢复的示意图;
图11为本申请实施例提供的一种云平台恢复装置的结构框图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
OpenStack:OpenStack是开源的IaaS(Infrastructure as a Service,基础设施即服务)管理平台。
Ceph:Ceph是开源的分布式存储***,能同时提供对象、块、文件存储服务。
OSD:OSD(Object Storage Device,对象存储设备)是Ceph中的一个组件,用来管理具体的数据磁盘。
Pg:Pg是Ceph中的一个逻辑概念,代表一群数据对象的集合。
rbd:rbd(Rados Block Device)是Ceph集群的块设备服务。
图1为本申请实施例中涉及的云平台中OpenStack管理***101与Ceph存储集群102的交互示意图,云平台中的数据由OpenStack管理***101中用户申请的虚拟机的***盘和数据盘、以及基础镜像产生,这些数据将存储在Ceph存储集群102的各种对应的数据存储池中,这些数据存储池可以理解为由多个存储节点构成,即上述数据存储在对应的数据存储池所对应的存储节点。举例来说,基础镜像对应的数据存储在images池中,镜像启动虚拟机的***盘对应的数据存储在vms池中,镜像启动虚拟机的数据盘对应的数据存储在volumes池中,卷启动虚拟机的***盘和数据盘对应的数据都存储在在volumes池中。在Ceph存储集群102发生故障时,云平台可能无法正常运行,为了保证用户正常使用云平台,需要对云平台进行及时恢复。
图2为本申请实施例提供的一种云平台恢复方法的流程示意图,如图2所示,该方法可以包括:
步骤S201,在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息。
需要说明的是,该方法的执行主体可以是设置于云平台的OpenStack管理***中的云平台恢复组件,也可以是独立于OpenStack管理***和Ceph存储集群的云平台恢复组件,该组件可以分别与OpenStack管理***和Ceph存储集***互,以从两者获取恢复云平台所需的相关信息,并控制两者执行恢复云平台所需的相关指令。
具体地,在云平台的Ceph存储集群中一个或多个存储节点发生故障时,云平台恢复组件通过访问云平台的OpenStack管理***获取用户申请的虚拟机的标识信息,例如,基础镜像的标识信息、镜像启动虚拟机的标识信息以及卷启动虚拟机的标识信息等。
步骤S202,基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息。
其中,各虚拟机产生的数据将在对应的数据存储池中以rbd形式进行存储,且各rbd存储于对应的数据存储池时,各rbd都会带有指示其对应的虚拟机和所处的数据存储池的标识信息,因此可以基于各虚拟机的标识信息和对应的数据存储池,确定其对应的rbd的标识信息。
步骤S203,基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件。
其中,在每一rbd存储于Ceph存储集群中时,该rbd将按预设算法分布式存储于对应的数据存储池的各存储节点中,具体来说,每一rbd将会被拆分成多个子文件并分布式存储于Ceph存储集群的多个OSD中,其中,上述预设算法可以是Crush分布算法。同时,每一rbd对应的子文件的文件名中包含有其所属的rbd的标识信息。
具体地,根据每一rbd的标识信息可以从Ceph存储集群中搜索到所有文件名中包含有该rbd的标识信息的子文件,这些子文件则是由该rbd拆分而来。需要说明的是,在将rbd拆分后分布式存储与Ceph存储集群的多个OSD的过程中,各子文件一般会复制多个副本,分别存储于不同的OSD中,以保证数据存储的可靠性。
如图3所示,对于Ceph存储集群中n个数据存储池Pool1、Pool2…Pooln,利用Hash算法将将这n各池中的rbd转换(拆分)为n个对应的Pg文件,其中,每个Pg文件包含有多个对应的子文件,在利用Crush算法将各子文件分布式存储于Ceph存储集群的各OSD中,如图3所示,这里每个子文件都复制有一个副本,且同一子文件的两个副本存储在不同的OSD中,以保证数据存储的可靠性。
步骤S204,对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群。
具体地,由前文描述可知,由于对每一子文件进行分布式存储时复制了多个副本进行存储,那么在Ceph存储集群发生故障时,该子文件的所有副本损坏的可能性较小,那么可以从多个副本中获取没有损坏的副本作为子文件以保证子文件的准确性。在获取到rbd的各文件的没有损坏的子文件后,基于这些没有损坏的子文件即可得到该rbd的本地文件。再将该rbd的本地文件上传至备用的Ceph存储集群进行存储。
步骤S205,控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
具体地,在将所有虚拟机的rbd对应的本地文件都上传至备用Ceph存储集群后,即对所有虚拟机的数据进行了恢复,然后将云平台的存储集群从Ceph存储集群切换至备用Ceph存储集群即可恢复云平台的正常运行。具体来说,如图4所示为云平台的存储集群切换示意图,将云平台的存储集群从Ceph存储集群切换至备用Ceph存储集群需要进行以下三步更新:(1)更新所有OpenStack管理***中各存储节点对应的Ceph配置文件以及各用户相应的Keyring,其中,Keyring用于进行用户身份的认证,且不同用户的keyring不同;(2)更新OpenStack管理***中用于管理镜像的glance组件的数据库,glance组件的数据库中每一个镜像数据的存储路径信息都包含有Ceph存储集群的集群标识信息(ID),且不同的Ceph存储集群的集群ID不同;(3)更新OpenStack管理***中用于管理虚拟机的nova组件的数据库,nova组件的数据库中保存着所有磁盘信息,每个磁盘信息都包含有Ceph存储集群对应的mon的ip地址,且不同的Ceph集群对应的mon的ip地址不一样,其中,mon也称之为控制节点,统筹管理Ceph存储集群,比如权限认证、OSD的拓扑图、Pg的拓扑图、OSD的健康情况等。
本公开实施例提供的方案,通过各虚拟机的标识信息获取对应的rbd的标识信息,再基于各rbd的标识信息从发生故障的Ceph存储集群中获取对应的没有损坏的子文件,并基于各rbd对应的没有损坏的子文件获取对应的本地文件上传至备用Ceph存储集群,最后通过将云平台切换至备用Ceph存储集群实现云平台的恢复,由于该方案在恢复过程中从虚拟机对应的数据层面进行云平台的恢复,无需对发生故障的Ceph存储集群中的各功能组件进行一一修复,即使在Ceph存储集群损坏严重或Ceph存储群承载数据量很大的情形下也能及时对云平台进行恢复。
在本申请的一种可选实施例中,基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息,包括:
基于每一虚拟机的标识信息以及该虚拟机与Ceph存储集群中各个数据存储池的对应关系,获取该虚拟机对应的各rbd的名称;
从每一rbd的名称中获取该rbd的标识信息。
其中,不同数据存储池中的rbd数据有其预设的命名规则,举例来说,对于images池,其中存储基础镜像产生的数据,对应的rbd的名称即为基础镜像的标识信息。对于vms池,其中存储镜像启动虚拟机的***盘产生的数据,对应的rbd的名称为镜像启动虚拟机的标识信息与“_disk”的组合。对于volumes池,其中存储镜像启动虚拟机的数据盘产生的数据、以及卷启动的数据盘和***盘产生的数据,对应的rbd的名称即为“volume-”与镜像启动虚拟机的标识信息/卷启动虚拟机的标识信息的组合。
其中,在确定了各rbd的名称后,通过对rbd名称的解析即可获取该rbd在Ceph存储集群中存储时的标识信息,具体来说,可以通过“rbd info”命令对rbd的名称进行解析获取对应的rbd的标识信息,举例来说,rbd的标识信息的形式可以是“rbd_data.e7626a6b8b4567”。如图5所示,通过每一虚拟机的标识信息,确定该虚拟机对应的各个rbd的标识信息过程可以分为两个步骤,步骤501通过各个数据存储池对应的预设的命名规则获取各虚拟机对应的各rbd的名称,步骤502通过“rbd info”命令从各rbd的名称解析出对应的标识信息。
在本申请的一种可选实施例中,每一子文件的文件名中包含有对应的rbd的标识信息,基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件,包括:
将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件;
获取对应于每一rbd的所有子文件。
其中,由前文描述可知,rbd对应的各子文件的文件名字包含有该rbd的标识信息,那么要恢复该rbd即需要从发生故障的Ceph存储集群中获取所有属于该rbd的子文件,即确定发生故障的Ceph存储集群中哪些子文件属于该rbd。
具体地,将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,各子文件中文件名包含有该rbd的标识信息的文件名即为属于该rbd的子文件。确定并记录这些属于该rbd的子文件,在生成该rbd的本地文件前,获取这些属于rbd的子文件。
在本申请的一种可选实施例中,将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件,包括:
分别将每一rbd的标识信息与Ceph存储集群中各对象存储设备OSD中存储的各子文件包含的rbd的标识信息进行比对,并将文件名中包含有该rbd的标识信息子文件确定为对应于该rbd的子文件。
其中,Ceph存储集群包含多个OSD,OSD是Ceph存储集群中主要的数据承载组件,虚拟机对应的数据通过多个OSD实现在Ceph存储集群上的分布式存储,那么,将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对过程中,需要对Ceph存储集群中每个OSD存储的子文件进行比对,在OSD数量较多时,如果依次对各OSD存储的子文件进行比对,效率较低。为了提高确定对应于rbd的子文件的效率,本申请实施例可以对各OSD进行并行比对,即同时将每一rbd的标识信息与各OSD中存储的子文件的文件名进行比对。
具体地,可以通过子文件搜集组件(Collect manager)控制多个OSD运行组件(OSDrunner)分别对各OSD进行并行比对,即为每一OSD配置一个OSD runner进行标识信息与子文件的文件名的比对。
在本申请的一种可选实施例中,在将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件后,该方法还可以包括:
获取对应于每一rbd的各子文件的存储路径信息,并将各子文件的存储路径信息和对应的rbd的标识信息一一对应存储至预设数据库中,其中,存储路径信息包括对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息;
获取对应于每一rbd的所有子文件,包括:
基于每一rbd的标识信息从预设数据库中获取对应的各子文件的存储路径信息;
基于各子文件的路径信息从对应的OSD中获取对应的所有子文件。
具体地,在确定出每一rbd对应的子文件后,获取各子文件的存储路径信息,并将各子文件的存储路径信息与对应的rbd的标识信息一一对应存储至预设数据库中。该存储路径信息包含有对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息。在后续通过每一rbd对应的各子步骤获取对应的本地文件的步骤中,可以通过rbd的标识信息从预设数据库中获取所有对应的子文件的存储路径信息,并根据各子文件的存储路径信息获取子文件。具体来说,根据rbd的标识信息从预设数据库中获取所有对应的子文件的存储路径信息,根据存储路径信息中的主机名和存储目录信息,在主机名指示的OSD的存储目录下获取到对应的子文件。
在本申请的一种可选实施例中,每一子文件的文件中包含有该子文件在对应的rbd中的位置偏移量,位置偏移量指示对应的子文件在对应的rbd中所处的位置,对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,包括:
基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件;
基于每一rbd对应的各目标子文件的文件名中包含的位置偏移量,确定各目标子文件的拼接顺序;
将每一rbd对应的各目标子文件按拼接顺序进行拼接,得到该rbd对应的本地文件。
其中,由前文描述可知,每一rbd将按预设算法分布式存储于对应的数据存储池的各存储节点中,即每一rbd将会被拆分成多个子文件并分布式存储于Ceph存储集群的多个OSD中,那么这多个子文件分别占据对应的rbd中不同的位置。每一子文件的文件名包含有其对应的rbd的标识信息和其在对应的rbd中的位置偏移量,其包含的对应的rbd的标识信息用于指示其所述的rbd,其包含的偏移量用于指示其在对应的子文件中所处的位置。举例来说,如图6所示,某一rbd的标识信息为“rbd_data.e7626a6b8b4567”,该rbd在存储时被拆分为n(n≥2)个子文件,且每个子文件的大小为4M,当获取到文件名为“rbd_data.e7626a6b8b4567.0000000000002”的子文件时,由于该子文件文件名中的前缀(对应的rbd的标识信息)“rbd_data.e7626a6b8b4567”与该rbd相同,确定该子文件属于该rbd,由于该子文件文件名中的后缀(位置偏移量)“0000000000002”,确定该子文件处于rbd中n个位置的从头到尾的第2个位置。
需要说明的是,由前文描述可知,在将rbd拆分后分布式存储与Ceph存储集群的多个OSD的过程中,各子文件一般会复制多个副本,分别存储于不同的OSD中,那么在获取到各rbd对应的子文件后,需要确定rbd中每个位置的目标子文件,即从每个位置对应的多个副本中确定出没有损坏的目标子文件。
具体地,在获取到每一rbd对应的所有子文件后,首先确定各位置的目标子文件,然后按位置偏移量指示的子文件的排列顺序对各子文件进行拼接及得到rbd对应的本地文件。
举例来说,图7为某一rbd对应的本地文件的拼接过程的示意图,该rbd在由61个目标子文件构成,分别从对应的OSD中获取对应的目标子文件,并按拼接顺序对齐进行拼得到该rbd的本地文件。
下面再次结合附图对云平台的恢复过程从进行举例说明,如图8和图9所示,某云平台中发生故障的Ceph存储集群中包含有OSD1、OSD2和OSD3,在利用Collect manager搜索rbd对应的子文件时,分别为每一OSD配置对应的OSD runner,即为OSD1配置OSD runner1,为OSD2配置OSD runner2,为OSD3配置OSD runner3。
图8中示出了并行比对的过程,具体来说,分别利用对应的OSD runner对每一OSD种的子文件进行并行比对,分别将比对得到的子文件的存储路径信息和对应的rbd的标识信息存储至预设数据库(Data Base,DB)。其中,OSD的子文件一般存储在指定目录“/var/lib/ceph/osd”下。图9中示出了获取rbd对应的子文件的过程,具体来说,根据rbd的标识信息从DB中获取对应的各子文件的存储路径信息,并根据存储路径信息分别从对应的OSD的指定目录中获取对应的子文件。然后,对于rbd中包含有多个子文件(副本)的同一位置,通过预设策略选取其中没有损坏的子文件作为目标子文件,并将rbd对应的所有目标子文件上传至聚合存储节点,在聚合存储节点中将rbd对应的所有目标子文件按拼接顺序进行拼接,得到rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群,即实现了对各虚拟机的数据的恢复。
在本申请的一种可选实施例中,基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件,包括:
对于rbd中的每一位置,若该位置对应有一个子文件,则将该子文件确定为该位置的目标子文件;
若该位置对应有至少两个子文件,则按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件。
具体地,若rbd中每一位置对应的子文件在存储时没有复制副本,则将获取到的该位置对应的子文件直接确定为该位置对应的目标子文件。若rbd中每一位置对应的子文件在存储时复制了副本,即该位置对应有多个子文件,则需要按预设策略从这多个子文件中确定出该位置的目标子文件。
举例来说,对于标识信息为“rbd_data.e7626a6b8b4567”的rbd,获取到与其第1个位置对应的3个子文件(副本),3个子文件的存储路径分别为:
“/var/lib/ceph/osd/ceph-1/current/9.f7_head/rbd_data.e7626a6b8b4567.0000000000001”;
“/var/lib/ceph/osd/ceph-4/current/9.f7_head/rbd_data.e7626a6b8b4567.0000000000001”;
“/var/lib/ceph/osd/ceph-7/current/9.f7_head/rbd_data.e7626a6b8b4567.0000000000001”。
那么在进行子文件拼接之前,需要从这3个子文件中确定出该第一位置对应的目标子文件。
在本申请的一种可选实施例中,按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件,包括:
获取各子文件的信息摘要算法MD5值;
若各子文件的MD5值相同,则任选各子文件中一个子文件确定为该位置的目标子文件;
若各子文件的MD5值不相同,则选取各子文件中对应的修改时刻最先或最后的子文件确定为该位置的目标子文件。
具体地,若rbd同一位置对应多个子文件,首先获取这多个子文件的MD5值,若各子文件的MD5值相同可以认为这多个子文件都相同且在Ceph存储集群发生故障时都没有损坏,那么从可以从这多个子文件中任选一个子文件作为该位置的目标子文件。若各子文件的MD5至不相同,那么可以认为这多个子文件中存在子文件损坏的情况,需要从这多个子文件中确定出没有损坏的目标子文件,具体来说,若在Ceph存储集群发生故障时正在对子文件进行删除操作,则确定这多个子文件中修改时刻最先的子文件作为目标子文件,若在Ceph存储集群发生故障时正在对子文件进行新增操作,则确定这多个子文件中修改时刻最后的子文件作为目标子文件。
在本申请的一种可选实施例中,在控制云平台从Ceph存储集群切换至备用Ceph存储集群后,该方法还可以包括:
对Ceph存储集群进行格式化得到格式化后的Ceph存储集群,并将格式化后的Ceph存储集群中的存储节点加入备用Ceph存储集群,得到合并后的Ceph存储集群;
将合并后的Ceph存储集群中属于备用Ceph存储集群***的存储节点剔除。
具体地,在控制云平台从Ceph存储集群切换至备用Ceph存储集群后,虚拟机的数据都得到恢复,进而云平台也得到恢复,进一步,还可以将云平台从备用Ceph存储集群切换至原来的Ceph存储集群。具体来说,首先将发生故障的Ceph存储集群格式化清空,得到格式化后的Ceph存储集群,然后将格式化后的Ceph存储集群中的存储节点加入到备用Ceph存储集群,得到合并后的Ceph存储集群,这一过程可以理解为对云平台的Ceph存储集群进行扩容。然后,再将合并后的Ceph存储集群中属于备用存储集群的存储节点剔除,剔除的过程中存储在备用Ceph存储集群的存储节点上的数据会自动转移到格式化后的Ceph存储集群的存储节点上,这一过程可以理解为对云平台的Ceph存储集群进行缩容。通过上述扩容和缩容过程,即可实现云平台从从备用Ceph存储集群切换至原来的Ceph存储集群,同时完成了发生故障的Ceph存储集群的修复。
在本申请的一种可选实施例中,为了进一步提高云平台的Ceph存储集群发生故障时,恢复云平台的效率,可以将云平台的Ceph存储集群划分为多个小的Ceph存储集群,那么可以在小的Ceph存储集群发生故障时,只对小的Ceph存储集群采用上述实施例描述的方案进行处理以恢复云平台的正常运行,由于对Ceph存储集群进行了划分,因此可以只对发生故障的小Ceph存储集群进行数据修复和切换,进一步提高了云平台的恢复效率。同时,备用Ceph存储集群可以通过一个一体机柜构建得到,该一体机柜中包含了备用Ceph存储集群和聚合存储节点,成本更低。
如图10所示,将某一云平台的Ceph存储集群划分为Ceph存储集群1和Ceph存储集群2两个小的Ceph存储集群,在Ceph存储集群1发生故障时,对Ceph存储集群1采用上述实施例中描述的方法进行处理,实现云平台的恢复。具体来说,从Ceph存储集群1中获取各rbd对应的目标子文件,并基于目标子文件拼接得到各rbd对应的本地文件,再将各本地文件上传至一体机柜构建的备用Ceph存储集群进行存储,最后将该云平台从Ceph存储集群1切换至备用Ceph存储集群,即实现了该云平台的恢复,进一步地,通过存储集群的扩容和缩容还可实现该云平台从备用Ceph存储集群切换至Ceph存储集群1。
图11为本申请实施例提供的一种云平台恢复装置的结构框图,如图11所示,该装置1100可以包括:虚拟机的标识信息获取模块1101、rbd的标识信息获取模块1102、子文件获取模块1103以及本地文件上传模块1104,其中:
虚拟机的标识信息获取模块1101用于在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台的OpenStack管理***中各虚拟机的标识信息;
rbd的标识信息获取模块1102用于基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;
子文件获取模块1103用于基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件;
本地文件上传模块1104用于对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群;
存储集群切换模块1105用于控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
在本申请的一种可选实施例中,rbd的标识信息获取模块具体用于:
基于每一虚拟机的标识信息以及该虚拟机与Ceph存储集群中各个数据存储池的对应关系,获取该虚拟机对应的各rbd的名称;
从每一rbd的名称中获取该rbd的标识信息。
本申请提供的方案,通过各虚拟机的标识信息获取对应的rbd的标识信息,再基于各rbd的标识信息从发生故障的Ceph存储集群中获取对应的没有损坏的子文件,并基于各rbd对应的没有损坏的子文件获取对应的本地文件上传至备用Ceph存储集群,最后通过将云平台切换至备用Ceph存储集群实现云平台的恢复,由于该方案在恢复过程中从虚拟机对应的数据层面进行云平台的恢复,无需对发生故障的Ceph存储集群中的各功能组件进行一一修复,即使在Ceph存储集群损坏严重或Ceph存储群承载数据量很大的情形下也能及时对云平台进行恢复。
在本申请的一种可选实施例中,每一子文件的文件名中包含有对应的rbd的标识信息,子文件获取模块具体用于:
将每一rbd的标识信息与Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件;
获取对应于每一rbd的所有子文件。
在本申请的一种可选实施例中,子文件获取模块进一步用于:
分别将每一rbd的标识信息与Ceph存储集群中各对象存储设备OSD中存储的各子文件包含的rbd的标识信息进行比对,并将文件名中包含有该rbd的标识信息子文件确定为对应于该rbd的子文件。
在本申请的一种可选实施例中,该装置还包括存储路径信息获取模块,用于:
在将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件后,获取对应于每一rbd的各子文件的存储路径信息,并将各子文件的存储路径信息和对应的rbd的标识信息一一对应存储至预设数据库中,其中,存储路径信息包括对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息;
相应地,子文件获取模块具体用于:
基于每一rbd的标识信息从预设数据库中获取对应的各子文件的存储路径信息;
基于各子文件的路径信息从对应的OSD中获取对应的所有子文件。
在本申请的一种可选实施例中,每一子文件的文件中包含有该子文件在对应的rbd中的位置偏移量,位置偏移量指示对应的子文件在对应的rbd中所处的位置,本地文件上传模块具体用于:
基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件;
基于每一rbd对应的各目标子文件的文件名中包含的位置偏移量,确定各目标子文件的拼接顺序;
将每一rbd对应的各目标子文件按拼接顺序进行拼接,得到该rbd对应的本地文件。
在本申请的一种可选实施例中,本地文件上传模块进一步用于:
对于rbd中的每一位置,若该位置对应有一个子文件,则将该子文件确定为该位置的目标子文件;
若该位置对应有至少两个子文件,则按预设策略从至少两个子文件中选取一个子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,本地文件上传模块进一步用于:
获取各子文件的信息摘要算法MD5值;
若各子文件的MD5值相同,则任选各子文件中一个子文件确定为该位置的目标子文件;
若各子文件的MD5值不相同,则选取各子文件中对应的修改时刻最先或最后的子文件确定为该位置的目标子文件。
在本申请的一种可选实施例中,该装置还包括扩缩容模块,用于:
在控制云平台从Ceph存储集群切换至备用Ceph存储集群后,对Ceph存储集群进行格式化得到格式化后的Ceph存储集群,并将格式化后的Ceph存储集群中的存储节点加入备用Ceph存储集群,得到合并后的Ceph存储集群;
将合并后的Ceph存储集群中属于备用Ceph存储集群***的存储节点剔除。
在本申请实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理***(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件***,一般具有存储、截取、安全保障、备份等基础功能。数据库管理***可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
基于相同的原理,本申请实施例还提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该计算机程序时,实现本申请任一可选实施例中所提供的方法,具体可实现如下情况:
在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息;基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件;对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群;控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请任一实施例所示的方法。
可以理解的是,介质中存储的可以是云平台恢复方法对应的计算机程序。
图12中示出了本申请实施例所适用的一种电子设备的结构示意图,如图12所示,图12所示的电子设备1200包括:处理器1201和存储器1203。其中,处理器1201和存储器1203相连,如通过总线1202相连。进一步地,电子设备1200还可以包括收发器1204,电子设备1200可以通过收发器1204与其他电子设备进行数据的交互。需要说明的是,实际应用中收发器1204不限于一个,该电子设备1200的结构并不构成对本申请实施例的限定。
其中,处理器1201应用于本申请实施例中,可以用于实现图11所示的云平台恢复装置的功能。
处理器1201可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1201也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1202可包括一通路,在上述组件之间传送信息。总线1202可以是PCI总线或EISA总线等。总线1202可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1203可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器1203用于存储执行本申请方案的应用程序代码,并由处理器1201来控制执行。处理器1201用于执行存储器1203中存储的应用程序代码,以实现图11所示实施例提供的云平台恢复装置的动作。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
在云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取云平台中各虚拟机的标识信息;基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;基于每一rbd的标识信息,获取分布式存储于Ceph存储集群中的与该rbd对应的各子文件;对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将本地文件上传至备用Ceph存储集群;控制云平台从Ceph存储集群切换至备用Ceph存储集群,以恢复云平台。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种云平台恢复方法,其特征在于,包括:
在所述云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取所述云平台中各虚拟机的标识信息;
基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;
基于每一rbd的标识信息,获取分布式存储于所述Ceph存储集群中的与该rbd对应的各子文件;
对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将所述本地文件上传至备用Ceph存储集群;
控制所述云平台从所述Ceph存储集群切换至所述备用Ceph存储集群,以恢复所述云平台。
2.根据权利要求1所述的方法,其特征在于,所述基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息,包括:
基于每一虚拟机的标识信息以及该虚拟机与所述Ceph存储集群中各个数据存储池的对应关系,获取该虚拟机对应的各rbd的名称;
从每一rbd的名称中获取该rbd的标识信息。
3.根据权利要求1所述的方法,其特征在于,每一子文件的文件名中包含有对应的rbd的标识信息,所述基于每一rbd的标识信息,获取分布式存储于所述Ceph存储集群中的与该rbd对应的各子文件,包括:
将每一rbd的标识信息与所述Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件;
获取对应于每一rbd的所有子文件。
4.根据权利要求3所述的方法,其特征在于,所述将每一rbd的标识信息与所述Ceph存储集群中存储的各子文件的文件名进行比对,并将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件,包括:
分别将每一rbd的标识信息与所述Ceph存储集群中各对象存储设备OSD中存储的各子文件包含的rbd的标识信息进行比对,并将文件名中包含有该rbd的标识信息子文件确定为对应于该rbd的子文件。
5.根据权利要求3所述的方法,其特征在于,在将文件名中包含有该rbd的标识信息的子文件确定为对应于该rbd的子文件后,所述方法还包括:
获取对应于每一rbd的各子文件的存储路径信息,并将各子文件的存储路径信息和对应的rbd的标识信息一一对应存储至预设数据库中,其中,所述存储路径信息包括对应的子文件所在的OSD的主机名以及该子文件在OSD的存储目录信息;
所述获取对应于每一rbd的所有子文件,包括:
基于每一rbd的标识信息从所述预设数据库中获取对应的各子文件的存储路径信息;
基于各子文件的路径信息从对应的OSD中获取对应的所有子文件。
6.根据权利要求1所述的方法,其特征在于,每一子文件的文件中包含有该子文件在对应的rbd中的位置偏移量,所述位置偏移量指示对应的子文件在对应的rbd中所处的位置,所述对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,包括:
基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件;
基于每一rbd对应的各目标子文件的文件名中包含的位置偏移量,确定各目标子文件的拼接顺序;
将每一rbd对应的各目标子文件按所述拼接顺序进行拼接,得到该rbd对应的本地文件。
7.根据权利要求6所述的方法,其特征在于,所述基于每一rbd对应的各子文件,确定该rbd各位置的目标子文件,包括:
对于rbd中的每一位置,若该位置对应有一个子文件,则将该子文件确定为该位置的目标子文件;
若该位置对应有至少两个子文件,则按预设策略从所述至少两个子文件中选取一个子文件确定为该位置的目标子文件。
8.根据权利要求7所述的方法,其特征在于,所述按预设策略从所述至少两个子文件中选取一个子文件确定为该位置的目标子文件,包括:
获取各子文件的信息摘要算法MD5值;
若各子文件的MD5值相同,则任选各子文件中一个子文件确定为该位置的目标子文件;
若各子文件的MD5值不相同,则选取各子文件中对应的修改时刻最先或最后的子文件确定为该位置的目标子文件。
9.根据权利要求1所述的方法,其特征在于,在控制所述云平台从所述Ceph存储集群切换至所述备用Ceph存储集群后,所述方法还包括:
对所述Ceph存储集群进行格式化得到格式化后的Ceph存储集群,并将所述格式化后的Ceph存储集群中的存储节点加入所述备用Ceph存储集群,得到合并后的Ceph存储集群;
将所述合并后的Ceph存储集群中属于所述备用Ceph存储集群***的存储节点剔除。
10.一种云平台恢复装置,其特征在于,包括:
虚拟机的标识信息获取模块,用于在所述云平台的Ceph存储集群中一个或多个存储节点发生故障时,获取所述云平台中各虚拟机的标识信息;
rbd的标识信息获取模块,用于基于每一虚拟机的标识信息,确定该虚拟机对应的各个块设备rbd的标识信息;
子文件获取模块,用于基于每一rbd的标识信息,获取分布式存储于所述Ceph存储集群中的与该rbd对应的各子文件;
本地文件上传模块,用于对每一rbd对应的各子文件进行拼接得到该rbd对应的本地文件,并将所述本地文件上传至备用Ceph存储集群;
存储集群切换模块,用于控制所述云平台从所述Ceph存储集群切换至所述备用Ceph存储集群,以恢复所述云平台。
11.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器,用于执行所述计算机程序以实现权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法。
CN202010591210.8A 2020-06-24 2020-06-24 云平台恢复方法、装置、电子设备及计算机可读存储介质 Active CN111770158B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010591210.8A CN111770158B (zh) 2020-06-24 2020-06-24 云平台恢复方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010591210.8A CN111770158B (zh) 2020-06-24 2020-06-24 云平台恢复方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111770158A CN111770158A (zh) 2020-10-13
CN111770158B true CN111770158B (zh) 2023-09-19

Family

ID=72722069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010591210.8A Active CN111770158B (zh) 2020-06-24 2020-06-24 云平台恢复方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111770158B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230136274A1 (en) * 2021-11-04 2023-05-04 Softiron Limited Ceph Media Failure and Remediation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070061088A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
CN106095527A (zh) * 2016-06-07 2016-11-09 国云科技股份有限公司 一种适用于云平台虚拟机的存储池实现方法
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储***中的数据重建的方法、装置和***
CN107608826A (zh) * 2017-09-19 2018-01-19 郑州云海信息技术有限公司 一种存储集群的节点的故障恢复方法、装置及介质
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储***的虚拟机备份方法及***
CN109729129A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 存储集群的配置修改方法、存储集群及计算机***
CN111124755A (zh) * 2019-12-06 2020-05-08 中国联合网络通信集团有限公司 集群节点的故障恢复方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814364B2 (en) * 2006-08-31 2010-10-12 Dell Products, Lp On-demand provisioning of computer resources in physical/virtual cluster environments
US9176829B2 (en) * 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment
US20190384678A1 (en) * 2018-06-14 2019-12-19 Nutanix, Inc. System and method for managing backup and restore of objects over cloud platforms
US10733064B2 (en) * 2018-07-23 2020-08-04 EMC IP Holding Company LLC Efficient restore of synthetic full backup based virtual machines that include user checkpoints
US11200124B2 (en) * 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070061088A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
CN106662983A (zh) * 2015-12-31 2017-05-10 华为技术有限公司 分布式存储***中的数据重建的方法、装置和***
CN106095527A (zh) * 2016-06-07 2016-11-09 国云科技股份有限公司 一种适用于云平台虚拟机的存储池实现方法
CN107608826A (zh) * 2017-09-19 2018-01-19 郑州云海信息技术有限公司 一种存储集群的节点的故障恢复方法、装置及介质
CN109729129A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 存储集群的配置修改方法、存储集群及计算机***
CN109324927A (zh) * 2018-09-06 2019-02-12 郑州云海信息技术有限公司 一种基于分布式存储***的虚拟机备份方法及***
CN111124755A (zh) * 2019-12-06 2020-05-08 中国联合网络通信集团有限公司 集群节点的故障恢复方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111770158A (zh) 2020-10-13

Similar Documents

Publication Publication Date Title
US8843454B2 (en) Elimination of duplicate objects in storage clusters
US9727273B1 (en) Scalable clusterwide de-duplication
CN106547859B (zh) 一种多租户数据存储***下的数据文件的存储方法及装置
CN111614733B (zh) 一种分布式多分片集群的部署方法、装置及存储介质
US8321487B1 (en) Recovery of directory information
US11093387B1 (en) Garbage collection based on transmission object models
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN106484820B (zh) 一种重命名方法、访问方法及装置
BRPI1011326B1 (pt) Sistema, métodos de replicação de dados distribuídos e executado por um ou mais dispositivos de uma pluralidade de dispositivos e memória legível por computador
CN102915278A (zh) 重复数据删除方法
US10628298B1 (en) Resumable garbage collection
CN105677736A (zh) 一种增加、删除服务器节点的方法及装置
CN111917834A (zh) 一种数据同步方法、装置、存储介质及计算机设备
CN106445643A (zh) 克隆、升级虚拟机的方法及设备
CN105227672A (zh) 数据存储及访问的方法和***
US20190384825A1 (en) Method and device for data protection and computer readable storage medium
CN115858488A (zh) 基于数据治理的平行迁移方法、装置及可读介质
CN111770158B (zh) 云平台恢复方法、装置、电子设备及计算机可读存储介质
WO2009031158A2 (en) Method and apparatus for network based data recovery
CN111813346A (zh) 基于云平台搭建Ceph分布式存储的方法、***、设备及介质
CN107402841A (zh) 大规模分布式文件***数据修复方法及设备
CN116610670A (zh) 一种基于区块链的状态数据存储方法及设备
CN112988473B (zh) 一种备份数据实时恢复方法及***
US11645333B1 (en) Garbage collection integrated with physical file verification
CN111400243B (zh) 基于流水线服务的研发管理***以及文件存储方法、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030083

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant