一种面向OpenStack的节点批量备份系统的方法与流程

文档序号:20997036发布日期:2020-06-05 22:17阅读:219来源:国知局
一种面向OpenStack的节点批量备份系统的方法与流程

【技术领域】

本发明涉及一种面向openstack的节点批量备份系统的方法。



背景技术:

随着社会发展,互联网+时代来临,人们已进入智能时代。利用互联网作为纽带,采用智能终端(智能手机、平板、计算机等等)来实现互联。智能终端的使用,利用网络将社会形成一个网络社会,极大地方便了人们的工作生活。但是使用网络实现互联,需要服务器和安装在服务器的操作系统来作为支撑。但是当网络系统出现故障,需要对各节点的操作系统和服务重新部署,需要较长的时间,而且openstack控制节点和网络节点,组件众多,配置复杂,部署较为困难,导致工作效率低下。

传统的对操作系统进行备份,根据备份内容的不同,主要有以下两种方法:

方法一,全盘快照/克隆方式:该方法采用dd及类似方式对系统盘进行快照/克隆,可完整的保存操作系统及其上的应用文件,避免了重建分区表、文件系统、逻辑卷等麻烦,是一个有效的服务器备份方法。但是,该方法存在明显的缺点,如:备份时间耗时久(与系统盘大小成正比)、存储空间占用大(与系统盘大小成正比)。非常不适用于备份大批量的服务器(比如openstack集群)。

方法二,基于分区表和文件的备份方式:现有的方法主要是备份分区表信息和根分区文件,打包根分区文件的方法主流是tar,压缩方式主要是gzip;与方法1相比,该方法可以大大缩短备份时间,减少备份文件占用的存储空间。

传统的对操作系统进行备份,据备份文件存储的位置不同,又可分为以下几种方式:其一是:备份到磁盘的第二分区:该方法无法应对磁盘或者raid卡损坏的情况;其二是:备份到外置可插拔移动存储设备:该方法需要人工亲临服务器,不适用于对大批量服务器进行操作和管理;其三是:备份到集中存储:集中存储有很多种类型,nas(cifs、nfs),iscsi,对象存储等。



技术实现要素:

本发明的目的在于针对现有技术的缺陷和不足,提供一种面向openstack的节点批量备份系统的方法。

本发明所述的一种面向openstack的节点批量备份系统的方法,采用如下步骤:

步骤一:将批量备份系统接入openstack管理网络,其中:批量备份系统以下简称为bbk;

步骤二:在步骤一中的bbk指定一批要备份的节点,然后向这批节点发送备份指令;

步骤三:各节点接收并执行备份指令;

步骤四:bbk等待各节点发来的结束信号;

步骤五:备份结束,或者,重复步骤二、步骤三、步骤四,备份下一批节点。

进一步地,步骤三中的各节点接收并执行备份指令,采用如下步骤:

(1)挂载nfs存储目录;

(2)将分区表、逻辑卷、uuid等元数据写入nfs;

(3)以squashfs格式将根分区的文件打包,并直接写入nfs;

(4)卸载nfs目录;

(5)向bbk发送结束信号。

本发明有益效果为:本发明所述的一种面向openstack的节点批量备份系统的方法,它采用的备份方法和文件打包压缩格式squashfs,可缩短备份时间,节省备份文件占用的存储空间;且能实现的批量备份系统,通过nfs的使用,即实现了对一批节点同时进行备份操作的需求。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1为本发明的整体系统架构拓扑图;

图2为本发明的批量备份系统组成拓扑图;

图3是本发明中的系统盘分区组成及系统启动顺序拓扑图;

图4是图3的左部放大图;

图5是图3的中部放大图;

图6是图3的右部放大图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

如图1-图2所示,本具体实施方式所述的一种面向openstack的节点批量备份系统的方法,采用如下步骤:

步骤一:将批量备份系统接入openstack管理网络,其中:批量备份系统以下简称为bbk;

步骤二:在步骤一中的bbk指定一批要备份的节点,然后向这批节点发送备份指令;

步骤三:各节点接收并执行备份指令,采用如下步骤:

(1)挂载nfs存储目录;

(2)将分区表、逻辑卷、uuid等元数据写入nfs;

(3)以squashfs格式将根分区的文件打包,并直接写入nfs;

(4)卸载nfs目录;

(5)向bbk发送结束信号;

步骤四:bbk等待各节点发来的结束信号;

步骤五:备份结束,或者,重复步骤二、步骤三、步骤四,备份下一批节点。

本发明面向openstack云计算集群,可对openstack集群中的节点进行批量备份,通过使用备份的文件,在节点发生因磁盘损坏等原因造成数据丢失的情况时,完整复原节点上的操作系统及应用文件。本发明中的批量备份方法也适用于通过其他方式部署出来的openstack集群。本发明中,一个典型的openstack集群包含大量的节点,每个节点是一台物理服务器,上面安装了操作系统和对应的openstack服务组件。本发明中,对操作系统进行备份,是应对系统故障的有效手段。

本发明中,采用的打包和压缩格式为:squashfs;squashfs是一种常用于嵌入式设备的压缩只读文件系统。一方面,它可以将整个文件系统压缩在一起,存放在一个普通的文件中;采用的squashfs格式,压缩比率高,而且在压缩打包时默认采用多线程,速度快;在提取恢复时,文件读取灵活。另一方面,本发明中涉及的分区表及文件系统uuid等元数据,要备份哪些必要信息和文件,建立在本文对操作系统启动原理的分析基础之上。

本发明的集中存储采用的是nfs,可以带来以下优点:a.节点可通过网络直接将nfs存储挂载到本地目录,打包压缩的根分区文件,直接写入nfs目录,而不必将本地磁盘作为跳板;b.nfs存储目录可同时挂载给多个节点,满足批量备份需求。

本发明的工作原理如下:

如图1所示为本发明的整体系统架构拓扑图。其主要包含两部分:

a.openstack集群(需要备份的节点);b.批量备份系统(简称:bbk);

本发明的网络架构说明,在典型的openstack集群中,包含三种类型的网络:

(1)带外网络(ipmi),

(2)管理网络(pxe/admin),

(3)openstack业务网络(还可细分为管理组件通信网络、存储网络、虚拟机业务网络等)。

本发明的图1中画出了系统工作必要的管理网络(pxe/admin);图中bbk也连接了openstack的带外网络,只在系统恢复时使用。

如图2所示为本发明的批量备份系统组成拓扑图;批量备份系统主要包含四部分:备份控制台、nfs存储、配置控制台、结束信号接收代理。

(1)备份控制台:用于指定需要备份的节点,并发出批量备份指令;

(2)nfs存储:为节点提供共享的备份文件存储空间;

(3)配置控制台:配置节点免密ssh密钥,配置具体执行的备份指令,配置nfs地址和目录;

(4)结束信号接收代理:各个节点备份结束后,将结束标识码(0:备份结束,1:备份失败)发送给bbk节点,由该代理接收;

本发明将nfs存储封装在了bbk中,如果对批量备份性能要求比较高,也可由专业存储提供nfs功能(只需要接入管理网络)。

本发明中的批量备份系统,采用如下步骤:

(1)在虚拟机或者物理机上部署批量备份系统(以下简称:bbk),要求接入openstack的管理网络,并为bbk配置访问所有openstack节点的ssh密钥。

(2)在bbk上选定需要备份的一批节点(ip),然后同时向这批节点发送备份指令;

(3)各节点接收并执行相应的指令,完成以下操作:

a)挂载nfs存储,并创建备份目录(比如:/nfs/node-1);

b)将分区表、逻辑卷、uuid等元数据写入备份目录;

c)以squashfs格式将根分区的文件打包,并直接写入备份目录(比如:/nfs/node-1/rootfs.squashfs);

d)卸载nfs目录;

e)向bbk发送结束信号;

(4)bbk等待这批节点发来的结束信号(与步骤3并行);

(5)备份结束,或者,重复步骤2、3、4备份下一批节点。

如图3-图6所示,本发明以具体实施例来进一步说明,并具体陈述备份和恢复原理。

本发明以一个典型的openstack节点为例,分析节点的系统盘分区和文件系统等,解释操作系统的启动原理,以此来说明,需要备份哪些文件,才能对节点的系统进行完整恢复。

本发明选取了一个复杂的示例(使用mirantisopenstack部署工具fuel部署),其他的情况相对要简单(比如,没使用逻辑卷,不包含独立的boot分区等等),原理是相通的。

示例节点的服务器启动方式为bios,分区表格式为gpt,操作系统引导方式为grub2,拥有独立的boot分区,根分区构建在逻辑卷之上,如图3所示,图3是本发明中的系统盘分区组成及系统启动顺序(示例节点)拓扑图。

首先,系统盘上的分区及其作用如下:

(1)开头和结尾。该系统盘采用的是gpt格式的分区表,根据gpt规范,将分区表的主要数据存在磁盘的开头,同时在磁盘的末端也存储一份备用的磁盘分区表;为了兼容mbr格式,便于bios引导,在gpt分区表的最开始512字节仍然保留,作为pmbr,保存主引导代码;

(2)第一个分区:bios启动分区。占用空间24mb,有效数据31kb,以原生二进制代码的形式保存一些必要的驱动;

(3)第二、五分区:未使用;

(4)第三个分区:作为独立的boot分区,文件系统为ext2格式,保存linux操作系统内核vmlinuz和image;

(5)第四个分区:作为物理卷,属于卷组(os),卷组上面创建了两个逻辑卷(root和swap);逻辑卷root就是根分区,文件系统为ext4格式。

其次,操作系统启动顺序。

(1)服务器从bios启动;

(2)bios自检程序执行完毕之后,跳转到启动盘(sda,也是系统盘);

(3)首先执行的是系统盘gpt/pmbr上的主引导代码;

(4)然后执行bios启动分区上的原生代码,加载文件系统驱动(图-3-(2));

(5)紧接着加载执行boot分区的内核文件;

(6)最后加载根分区文件系统;

要想恢复操作系统,需要备份系统启动路径上的所有文件,通过上面的分析可总结到,需要备份的信息和文件如下:

(1)gpt分区表;

(2)bios启动分区数据(有效数据31kb);

(3)boot分区中的文件和文件系统uuid;

(4)逻辑卷元数据(物理卷、逻辑卷、卷组信息);

(5)根分区中的文件和文件系统uuid;

最后,文件保存方式:

(1)boot分区和根分区中的文件以squashfs格式打包保存;

(2)bios分区中的数据,以dd方式克隆到文件(1mb,大于31kb即可);

(3)其他信息保存在文本文件中。

本发明的一种节点系统的恢复方法如下:

(1)在批量备份系统(以下简称:bbk)节点上部署:ipmitool工具、dhcp服务和tftp服务;

(2)在bbk节点通过带外网络,发送ipmi控制命令,控制目标节点服务器从pxe重新启动;

(3)目标节点利用dhcp和tftp服务,获取和加载定制微系统;

(4)定制微系统启动iscsi服务,把目标节点的系统磁盘发布出去;

(5)bbk节点启动iscsi发现服务,找到目标磁盘;

(6)bbk节点对目标磁盘执行以下操作:

(a)恢复分区表;

(b)恢复bios启动分区的数据;

(c)如果是独立的boot分区,执行该步骤:在boot分区创建文件系统,并恢复原来的uuid,还原分区文件;

(d)如果根分区建立在逻辑卷之上,执行该步骤:恢复pv,恢复vg,恢复lv,激活vg和lv,找到根分区;

(e)在根分区创建文件系统,并恢复原来的uuid;

(f)以squashfs格式挂载已备份的节点根分区文件(比如:/nfs/node-1/rootfs.squashfs),拷贝所有内容到目标磁盘的根分区文件系统上(cp命令,使用rfp参数,保留文件的属性信息);

(7)系统恢复完毕,bbk通过带外网络,向目标节点发送ipmi控制指令,控制目标节点服务器从磁盘启动。

本发明所述的一种面向openstack的节点批量备份系统的方法,它采用的备份方法和文件打包压缩格式squashfs,可缩短备份时间,节省备份文件占用的存储空间;且能实现的批量备份系统,通过nfs的使用,即实现了对一批节点同时进行备份操作的需求。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1