[发明专利]用于虚拟容器系统容灾的内核态与用户态数据交换方法在审
申请号: | 201410643995.3 | 申请日: | 2015-08-04 |
公开(公告)号: | CN104503863A | 公开(公告)日: | 2015-07-29 |
发明(设计)人: | 余宏亮 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F3/06 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李相雨 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 虚拟 容器 系统 内核 用户 数据 交换 方法 | ||
技术领域
本发明涉及计算机操作系统和网络存储领域,尤其涉及用于虚拟容器系统容灾的内核态与用户态数据交换方法。
背景技术
随着科技的发展,在互联网领域,数据在灾难面前的脆弱性愈加突出,而数据的丢失往往会带来重大的经济损失,因此人们的对数据安全性的需求越来越高。为抵御灾难而采取的技术称为容灾备份技术,它的出现可以有效防止出现因类似“911”事件的灾难而导致的不可逆转的数据丢失所造成的巨大损失。
容灾备份系统包括被容灾系统和容灾计算机两部分,被容灾系统在正常运转中将容灾数据通过网络传输到容灾计算机,并在灾难发生后从容灾计算机端获取恢复所需的全部数据。
传统的容灾备份技术一般只考虑将计算机所存储的数据通过远程备份方式复制到通过网络连接的远程容灾中心,并在出现灾难时从远程容灾中心重新获取所丢失的数据,从而达到降低灾难损失的目的。随着虚拟化技术的发展,出现了能够备份包括数据在内的整个运行环境的新型灾备技术,基于虚拟化技术的容灾备份技术拥有以下特点:可以完全恢复被容灾系统的运行状态,包括正在进行的计算,以及未写入磁盘的缓冲区内容等;灾备过程对被容灾系统上的应用透明,无需对现有程序的运行方式进行任何改动。
虚拟容器容灾是虚拟化容灾的一种形式,根据现在已有的实验和分析,数据块恢复的效率高低主要是受到需要多次内核态和用户态的切换的影响,并且内核和用户态通信的效率不够高。
发明内容
本发明所要解决的技术问题是提供一种用于虚拟容器系统容灾的内核态与用户态数据交换方法,提高虚拟容器容灾的数据恢复性能的关键问题。
为此目的,本发明提出了用于虚拟容器系统容灾的内核态与用户态数据交换方法,包括以下具体步骤:
S1:虚拟设备映射模块建立一个FUSE用户态文件系统;其中,所述虚拟设备映射模块包括在待恢复客户端中;
S2:将所述FUSE用户态文件系统中的一个文件映射到DEV LOOP伪设备,并将所述DEV LOOP设备作为按照预设恢复模式要恢复的磁盘的影子设备;
S3:缺页检测模块维护一个恢复数据位图,记录完成恢复和/或因新写入而不需要进行恢复的数据块编号,其中,所述缺页检测模块包括在所述待恢复客户端中;
S4:可用页面维护模块基于上述操作维护一个可用数据位图,并记录空闲页面区间的信息,其中,所述可用页面维护模块包括在所述待恢复客户端中;
S5:数据传输模块将最终的信息数据进行传输交换,其中,所述数据传输模块包括在所述待恢复客户端中。
进一步地,所述缺页检测模块,还用于监听是否存在恢复的数据页。
具体地,所述预设恢复模式包括两种:按需恢复模式以及激进恢复模式;
其中,所述按需恢复模式为指待恢复系统在数据尚未就位情况下,通过虚拟容器运行,在虚拟容器运行中需用到的数据,按照需要发起数据恢复请求;所述激进恢复模式为指待恢复系统在运行过程中,尚未用到的数据块也进行提前的数据预取。
进一步地,所述步骤S2具体包括:
S21:将FUSE文件系统的文件映射为/DEV/LOOP0;
S22:虚拟容器系统将这上述设备作为/DEV/SDA使用,FUSE截获所有对/DEV/LOOP0的读和写和write操作。
进一步地,所述待恢复客户端通过所述按需恢复模式恢复数据为:读操作中,如果数据在恢复数据位图所指示的位置中,判定数据已恢复,从SDA直接读取数据块内容;如果数据在可用数据位图中,判定为没有用过的数据块,返回随机任意内容进行数据恢复;如果不为上述两种情况,将向服务器请求该数据块,等待数据响应,并将接收到的数据块内容写入到所述SDA对应位置,更新恢复数据位图,并返回数据块内容。
进一步地,通过所述激进恢复模式激进恢复的数据写流程在备份服务器端包括:写操作中,开启一个后台线程,扫描全部数据块,判定是非空闲的数据块且不在恢复数据位图中,向客户端推送此数据;对于空闲块的区间,向客户端发送空闲通知消息,其中,已推送过的数据块编号与已处理的空闲通知消息,也记在恢复数据位图里。
进一步地,通过所述激进恢复模式激进恢复的数据写流程在所述待恢复客户端包括:开启一个后台线程,接收服务器推送过来的数据块,检查是否在客户端的恢复数据位图中;如果在恢复数据位图中,判定数据已经被按需恢复了或者是发生了数据写修改,忽略;判定不在恢复数据位图中,将数据块写入到SDA对应位置,并更新位图;如果收到是空闲通知消息,将其记录到空闲数据位图中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410643995.3/2.html,转载请声明来源钻瓜专利网。