一种数据处理方法及装置与流程

文档序号:16854956发布日期:2019-02-12 23:09阅读:116来源:国知局
一种数据处理方法及装置与流程

本申请涉及计算机领域,特别是涉及一种数据处理方法及装置。



背景技术:

随着互联网的高速发展,数据也随之爆发式增长。传统的通用存储已经无法满足海量的数据增长,处理海量数据的集群存储系统应运而生。但随着数据集群的规模越来越大,对数据集群的可靠性的要求越来越高。

在集群存储系统中,可以对集群的节点通过灌装镜像升级,搭建新集群。搭建新集群时,要初始化集群的数据处理守护进程。在初始化数据处理守护进程时,需要对磁盘划分日志(英文:journal)分区和数据(英文:data)分区,以保证数据处理守护进程能够正常工作。其中,journal分区为数据处理守护进程用于存放日志和热数据等缓存数据的磁盘分区;data分区为数据守护进程用于存放写入处于存储数据的磁盘分区。在划分journal分区或者data分区时,因为新添加了新的分区,就会触发linux系统使用分区的类型码(英文:typecode)去匹配linux系统中为数据处理守护进程的journal分区定义的udev规则,根据journal分区中记录的data分区的通用唯一识别码(universallyuniqueidentifier,uuid),找到数据处理守护进程的data分区然后进行挂载操作。

由于节点灌装镜像,不会清理原集群的数据处理守护进程的磁盘分区(包括journal分区和data分区),导致在初始化新集群的数据处理守护进程时,会找到原集群的journal分区中记录的data分区的uuid,进一步找到原集群的数据处理守护进程的data分区然后进行挂载操作,也就是说,在初始化集群的数据处理守护进程时,可能会自动挂载一个原集群的数据处理守护进程的data分区,进而导致初始化集群的数据处理守护进程失败的问题。



技术实现要素:

本申请所要解决的技术问题是节点灌装镜像,不会清理原集群的数据处理守护进程的磁盘分区,导致初始化集群的数据处理守护进程失败,提供一种数据处理方法及装置。

第一方面,本申请实施例提供了一种数据处理方法,包括:

获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;

利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;

将所述存储地址中的数据修改为无效数据。

可选的,所述获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量,包括:

利用hexdump命令,获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量。

可选的,所述获取数据处理守护进程的日志分区的起始地址,包括:

利用所述日志分区所在的磁盘的分区信息获取所述数据处理守护进程的日志分区的起始地址。

可选的,所述将所述存储地址中的数据修改为无效数据,包括:

利用dd命令将所述存储地址中的数据修改为无效数据。

可选的,所述无效数据为0。

第二方面,本申请实施例提供了一种数据处理装置,包括:

获取单元,用于获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;

计算单元,用于利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;

修改单元,用于将所述存储地址中的数据修改为无效数据。

可选的,所述获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量,包括:

利用hexdump命令,获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量。

可选的,所述获取数据处理守护进程的日志分区的起始地址,包括:

利用所述日志分区所在的磁盘的分区信息获取所述数据处理守护进程的日志分区的起始地址。

可选的,所述修改单元,具体用于:

利用dd命令将所述存储地址中的数据修改为无效数据。

可选的,所述无效数据为0。

与现有技术相比,本申请实施例具有以下优点:

本申请实施例提供一种数据处理方法及装置,包括:获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;将所述存储地址中的数据修改为无效数据。由于所述存储地址中保存的是无效数据,因此,linux系统无法找到数据守护进程的数据分区的uuid,也就无法根据所述uuid找到数据处理守护进程的data分区然后进行挂载操作,从而不会自动挂载原集群的数据处理守护进程的data分区,故而解决了初始化集群的数据处理守护进程失败的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据处理方法的流程示意图;

图2为本申请实施例提供的一种示例性应用场景的框架示意图;

图3为本申请实施例提供的一种数据处理装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的发明人经过研究发现,现有技术中,由于节点灌装镜像,不会清理原集群的数据处理守护进程的磁盘分区(包括journal分区和data分区),导致在初始化新集群的数据处理守护进程时,会找到原集群的journal分区中记录的data分区的uuid,进一步找到原集群的数据处理守护进程的data分区然后进行挂载操作,也就是说,在初始化集群的数据处理守护进程时,可能会自动挂载一个原集群的数据处理守护进程的data分区,进而导致初始化集群的数据处理守护进程失败的问题。

为了解决上述问题,本申请实施例提供了一种数据处理方法及装置,包括:获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;将所述存储地址中的数据修改为无效数据。由于所述存储地址中保存的是无效数据,因此,linux系统无法找到数据守护进程的数据分区的uuid,也就无法根据所述uuid找到数据处理守护进程的data分区然后进行挂载操作,从而不会自动挂载原集群的数据处理守护进程的data分区,故而解决了初始化集群的数据处理守护进程失败的问题。

下面结合附图,详细说明本申请的各种非限制性实施方式。

示例性方法

参见图1,该图为本申请实施例提供的一种数据处理方法的流程示意图。

在本实施例中,所述方法例如可以通过以下步骤s101-s103实现。

s101:获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量。

在本申请实施例中,所述数据处理守护进程是指,通过灌装镜像升级的节点升级之前的数据处理守护进程。

可以理解的是,所述日志分区(以下称为journal分区)可以位于磁盘上,而磁盘具有对应的分区信息,该分区信息可以体现该磁盘的分区情况,例如,各个分区的起始地址。鉴于此,在本申请实施例中,可以利用所述日志分区所在的磁盘的分区信息获取所述数据处理守护进程的日志分区的起始地址。

本申请实施例不具体限定获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量的具体实现方式,作为一种示例,可以利用hexdump命令,获取所述偏移量。

s102:利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址。

需要说明的是,在本申请实施例中,所述数据处理守护进程的数据分区的uuid存储在所述数据守护进程的journal分区中,因此,所述数据处理守护进程的数据分区的uuid的存储地址,是指所述数据处理守护进程的数据分区的uuid在所述journal分区的存储地址。

获取所述起始地址和所述偏移量之后,即可以利用所述起始地址加上所述偏移量,得到所述数据处理守护进程的数据分区的uuid在所述journal分区的存储地址。

s103:将所述存储地址中的数据修改为无效数据。

需要说明的是,本申请实施例不具体限定所述无效数据,所述无效数据可以为任意使得所述linux系统无法找到数据守护进程的数据分区的uuid,并且无法根据所述uuid找到数据处理守护进程的data分区然后进行挂载操作的数据。作为一种示例,所述无效数据可以为0。

本申请实施例不具体限定将所述存储地址中的数据修改为无效数据的实现方式,作为一种示例,可以利用dd命令将所述存储地址中的数据修改为无效数据。

通过以上描述可知,在本申请实施例中,可以获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;将所述存储地址中的数据修改为无效数据。由于所述存储地址中保存的是无效数据,因此,linux系统无法找到数据守护进程的数据分区的uuid,也就无法根据所述uuid找到数据处理守护进程的data分区然后进行挂载操作,从而不会自动挂载原集群的数据处理守护进程的data分区,故而解决了初始化集群的数据处理守护进程失败的问题。

为方便理解,以下结合具体场景对本申请实施例提供的数据处理方法进行介绍。

参见图2,该图为本申请实施例提供的一种示例性场景示意图。

对于图2所示的场景,需要说明的是,数据处理守护进程的data分区的uuid存放从journal分区起始地址+16bytes开始,到journal分区起始地址+32bytes为止的地址上,总共16bytes。

在图2中,磁盘200对应4个数据处理守护进程的journal分区,当对这个4个数据处理守护进程对应的节点通过灌装镜像升级时,可以执行图1所述的方法。具体地,可以利用hexdump命令,获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量:16bytes。然后计算各个数据处理守护进程的journal分区上保存原集群的数据处理守护进程的data分区的uuid的存储地址,计算方式如图2所示,磁盘分区表会占用2048个扇区,每个扇区大小为512bytes,所以在计算该磁盘上承载的第一个数据守护进程的journal分区地址时,需要加上2048*512bytes,data分区的uuid存放在journal分区开始地址的16~32bytes上,所以需要加上16,即磁盘上承载的第一个数据守护进程的journal分区中记录data分区uuid的地址为2048*512+16,每个journal分区的大小为5g,所以磁盘上承载的第二数据守护进程的journal分区中记录data分区uuid的地址为2048*512+5*1024*1024*1024+16,以此类推磁盘上承载的第n个数据守护进程的journal分区中记录data分区uuid的地址为2048*512+5*(n-1)*1024*1024*1024+16。计算得到各个数据处理守护进程的journal分区中存放data分区uuid的存储地址后,使用dd命令将存放uuid的16位写成0。

需要说明的是,虽然图2中磁盘分区表会占用2048个扇区,每个扇区大小为512bytes,每个journal分区的大小为5g,但这只是为了方便理解而示出,并不构成对本申请实施例的限定。

示例性设备

参见图3,该图为本申请实施例中一种数据处理装置的结构示意图。

所述装置300例如可以具体包括:获取单元310、计算单元320和修改单元330。

获取单元310,用于获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;

计算单元320,用于利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;

修改单元330,用于将所述存储地址中的数据修改为无效数据。

可选的,所述获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量,包括:

利用hexdump命令,获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址与所述起始地址的偏移量。

可选的,所述获取数据处理守护进程的日志分区的起始地址,包括:

利用所述日志分区所在的磁盘的分区信息获取所述数据处理守护进程的日志分区的起始地址。

可选的,所述修改单元330,具体用于:

利用dd命令将所述存储地址中的数据修改为无效数据。

可选的,所述无效数据为0。

需要说明的是,所述装置300的各个单元的具体实现,与以上数据处理方法均出于同一构思,因此,关于所述装置300的各个单元的具体实现,可以参考以上数据处理方法的描述部分,此处不再赘述。

通过以上描述可知,在本申请实施例中,可以获取数据处理守护进程的日志分区的起始地址;以及获取数据处理守护进程的数据分区的通用唯一识别码uuid的存储地址偏移所述起始地址的偏移量;利用所述偏移量和所述起始地址,计算所述数据处理守护进程的数据分区的uuid的存储地址;将所述存储地址中的数据修改为无效数据。由于所述存储地址中保存的是无效数据,因此,linux系统无法找到数据守护进程的数据分区的uuid,也就无法根据所述uuid找到数据处理守护进程的data分区然后进行挂载操作,从而不会自动挂载原集群的数据处理守护进程的data分区,故而解决了初始化集群的数据处理守护进程失败的问题。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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