CN102508743B - Linux文件系统的多点备份和实时保护方法 - Google Patents

Linux文件系统的多点备份和实时保护方法 Download PDF

Info

Publication number
CN102508743B
CN102508743B CN201110353794.6A CN201110353794A CN102508743B CN 102508743 B CN102508743 B CN 102508743B CN 201110353794 A CN201110353794 A CN 201110353794A CN 102508743 B CN102508743 B CN 102508743B
Authority
CN
China
Prior art keywords
piece
backup
file system
type
record
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
CN201110353794.6A
Other languages
English (en)
Other versions
CN102508743A (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.)
WUHAN OS-EASY CLOUD COMPUTING CO., LTD.
Original Assignee
WUHAN OS-EASY TECHNOLOGY 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 WUHAN OS-EASY TECHNOLOGY Co Ltd filed Critical WUHAN OS-EASY TECHNOLOGY Co Ltd
Priority to CN201110353794.6A priority Critical patent/CN102508743B/zh
Publication of CN102508743A publication Critical patent/CN102508743A/zh
Application granted granted Critical
Publication of CN102508743B publication Critical patent/CN102508743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Linux文件系统的多点备份和实时保护方法,包括步骤:在Linux文件系统存储介质的未使用空间上建立备份区,对Linux文件系统的读写操作进行实时监控,将修改Linux文件系统的数据存储到备份区,并标记为备份版本,对Linux文件系统进行备份;备份区支持保存多个备份版本,还原Linux文件系统时,按照所选择的备份版本对Linux文件系统进行还原;拦截对Linux文件系统存储介质的读写请求,防止未授权的读写操作,实时保护Linux文件系统和备份区。本发明能够快速备份、快速还原Linux文件系统到任意备份版本、实时保护Linux文件系统不被修改。

Description

Linux文件系统的多点备份和实时保护方法
技术领域
本发明涉及计算机数据安全领域,特别是涉及一种Linux文件系统的多点备份和实时保护方法。
背景技术
Linux文件系统作为一种高效、开放的操作系统,广泛应用于服务器、桌面和嵌入式领域,当前Linux文件系统的备份主要是使用完整备份技术和RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)。完整备份技术不仅数据量大、备份还原时间长、不能在线备份,而且不能实现数据的实时保护;RAID磁盘阵列适合当硬盘发生物理损坏及数据逻辑损坏时的恢复。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种Linux文件系统的多点备份和实时保护方法,不仅能够快速备份、快速还原Linux文件系统到任意备份版本,而且还能够实时保护Linux文件系统不被修改。
本发明提供的Linux文件系统的多点备份和实时保护方法,包括以下步骤:A、在Linux文件系统存储介质的未使用空间上建立备份区,对Linux文件系统的读写操作进行实时监控,将修改Linux文件系统的数据存储到备份区,并标记为备份版本,对Linux文件系统进行备份;B、备份区支持保存多个备份版本,还原Linux文件系统时,按照所选择的备份版本对Linux文件系统进行还原;C、拦截对Linux文件系统存储介质的读写请求,防止未授权的读写操作,实时保护Linux文件系统和备份区。
在上述技术方案中,步骤A中建立备份区的过程如下:A101、将Linux文件系统的存储介质连续划分为固定大小的块,并顺次对块进行编号;A102、在保存Linux文件系统的存储介质上划分一块未被Linux文件系统使用的空闲区域作为备份区;A103、在备份区建立参数区,保存块引用计数表、备份版本信息表、映射数据缓冲区信息表和备份版本描述信息区;A104、在备份版本描述信息区,保存每个备份版本的块类型表和块映射表,块的类型包括:有效数据、空闲、临时有效数据、正式映射源、临时映射源,块映射表中包括映射源块号src和映射目标块号dst;A105、在备份区建立映射数据缓冲区,保存每个备份版本中产生的映射目标块,缓冲区的参数由映射数据缓冲区信息表维护;A106、初始化备份区,自动创建Linux文件系统的初始备份版本;A107、自动创建临时备份版本。
在上述技术方案中,步骤A103中的备份版本信息表中的每条记录包括以下字段:唯一id、备份版本类型type、备份版本的描述信息desc、备份版本的块类型表在备份版本描述信息区的偏移位置blk_type_table、备份版本的块映射表在备份版本描述信息区的偏移位置blk_redir_table;映射数据缓冲区信息表记录了预分配的缓冲区的属性信息,包括以下字段:缓冲区的起始位置begin、缓冲区的结束位置end、缓冲区中首个未分配的空闲块在缓冲区的偏移位置free_offset。
在上述技术方案中,步骤A106中创建Linux文件系统的初始备份版本的过程如下:A1061、扫描Linux文件系统,识别Linux文件系统的有效数据,修改块引用计数表,有效数据占用的块计为1,其他块计为0;A1062、修改备份版本信息表的第一条记录,设置唯一id,修改type为正式备份版本,设置blk_type_table指向备份版本描述信息区的第一条记录的块类型表存储地址,设置blk_redir_table指向备份版本描述信息区的第一条记录的块映射表存储地址;A1063、修改备份版本描述信息区的第一条记录的块类型表,将有效数据占用块设置为有效数据,将其他块设置为空闲;A1064、修改备份版本描述信息区的第一条记录的块映射表,将所有记录清0;A1065、修改映射数据缓冲区信息表,设置free_offset设为0。
在上述方案中,步骤A107中创建临时备份版本的过程如下:
A1071、复制备份版本描述信息区的第一条记录的块类型表和块映射表到第二条记录;
A1072、修改备份版本信息表的第二条记录,设置id为0,设置type为临时备份版本,设置blk_type_table指向备份版本描述信息区的第二条记录的块类型表,设置blk_redir_table指向备份版本描述信息区的第二条记录的块映射表。
在上述技术方案中,步骤A中对Linux文件系统进行备份的过程如下: A201、查询备份版本信息表,找到第一个临时备份版本的记录,称为BP1;A202、遍历BP1的块类型表,找到类型为“临时有效数据”和 “临时映射源”的块,在块引用计数表中将对应块的引用计数加1;A203、修改BP1的块类型表,将类型“临时有效数据”改为“有效数据”,将类型“临时映射源”改为“正式映射源”;A204、修改BP1,设置type为正式备份版本,设置唯一id;A205、复制BP1在备份版本描述信息区中的记录,称为BD2; 
A206、查询备份版本信息表,找到第一个id为0的备份版本记录,称为BP2,修改BP2,设置blk_type_table指向BD2的块类型表,设置blk_redir_table指向BD2的块映射表。
在上述技术方案中,步骤B中还原Linux文件系统的过程如下:B1、选择待还原的备份版本,作为源备份版本;B2、查询备份版本信息表中源备份版本的记录SRC-BP;B3、查询备份版本信息表中的临时备份版本记录,如果不存在,查询第一个id为0的备份版本记录,被查询到的记录称为TMP-BP,修改该记录的类型为临时版本;B4、用SRC-BP的块类型表覆盖TMP-BP的块类型表;B5、回收TMP-BP映射数据占用的缓冲块;B6、用SRC-BP的块映射表覆盖TMP-BP的块映射表。
在上述技术方案中,步骤C中拦截对Linux文件系统存储介质的读写请求的实现过程如下:实模式环境下,通过拦截Int13实现过滤读写操作;Linux系统环境下,通过拦截存储设备类驱动提供给上层通用块设备驱动的接口函数实现过滤读写操作。
在上述技术方案中,步骤C中实时保护备份区的过程如下:拦截对Linux文件系统存储介质的读写请求后,若判定被读写块属于备份区的空间范围,则只向调用者返回成功状态,不执行I/O操作。
在上述技术方案中,步骤C中实时保护Linux文件系统的过程如下:
C1、查询备份版本信息表中临时版本的备份版本记录BP2;
C2、拦截到对Linux文件系统的读操作请求后,以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,如果被请求块的类型为“有效数据”、“空闲”或“临时有效数据”,则直接读被请求块的数据;如果被请求块的类型为“正式映射源”或“临时映射源”,则以被请求块号为索引,在BP2的块映射表中查找块的映射关系记录,根据记录的dst字段,获得映射目标块号,从映射数据缓冲区读取映射目标块的内容;
C3、拦截到对Linux文件系统的写操作请求后,以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,C301、如果被请求块的类型为“空闲”且块的引用计数为0,则直接修改被请求块的数据,然后在BP2的块类型表中将块类型“空闲”改为“临时有效数据”;C302、如果被请求块的类型为“空闲”且块的引用计数大于0,则执行以下步骤:
C3021、从映射数据缓冲区申请一个缓冲块;
C3022、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3023、将写请求的内容写入内存缓冲区;
C3024、将内存缓冲区的内容写入缓冲块;
C3025、在BP2的块映射表中增加一条记录,记录的src字段是被请求块的块号,记录的dst字段是缓冲块的块号;
C3026、修改BP2的块类型表,将被请求块的类型“空闲”改为“临时映射源”;
C303、如果被请求块的类型为“临时有效数据”,则直接修改被请求块的内容;
C304、如果被请求块的类型为“有效数据”,则执行以下步骤:
C3041、从映射数据缓冲区申请一个缓冲块;
C3042、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3043、将写请求的内容写入内存缓冲区;
C3044、将内存缓冲区的内容写入缓冲块;
C3045、修改BP2的块映射表,增加一条新记录,src字段是被请求块的块号,dst字段是缓冲块的块号;
C3046、修改BP2的块类型表,将被请求块的类型“有效数据”改为“临时映射源”;
C305、如果被请求块的类型为“临时映射源”,则以被请求块的块号为索引,查询BP2的块映射表,根据记录的dst字段,获得映射目标块号,用写请求的内容修改映射目标块;
C306、如果被请求块的类型为“正式映射源”,则执行以下步骤:
C3061、从映射数据缓冲区申请一个缓冲块;
C3062、申请一个内存缓冲区,以被请求块的块号为索引,查询BP2的映射表获得映射目标块号,读取映射目标块的内容到内存缓冲区;
C3063、将写请求的内容写入内存缓冲区;
C3064、将内存缓冲区的内容写入缓冲块;
C3065、修改BP2的块映射表,将被请求块的记录的dst字段改为缓冲块的块号;
C3066、修改BP2的块类型表,将被请求块的类型“正式映射源”改为“临时映射源”。
与现有技术相比,本发明的优点如下:
(1)本发明能够实现Linux文件系统变化数据的在线增量备份,由于备份时只备份变化数据,因此备份效率高,对Linux文件系统的I/O性能影响小。
(2)还原Linux文件系统时,不需要复制数据,因此还原速度快,解决用户因为误操作或恶意软件破坏造成的文件系统数据被修改,而无法快速恢复的问题。
(3)本发明支持保存多个增量备份版本,还原时可以选择恢复Linux文件系统到任意备份版本。
(4)本发明能够实时保护Linux文件系统不被修改,所有的修改内容被转储到缓冲区,原始数据不被修改,提高了Linux文件系统的安全性。
附图说明
图1是本发明实施例中硬盘分区布局的示意图;
图2是本发明实施例中备份区的结构示意图;
图3是本发明实施例中备份版本描述信息区的结构示意图;
图4是本发明实施例中备份区初始化完成后硬盘分区布局的示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步的详细描述。
参见图1所示,硬盘上有A、B两个分区,Linux操作系统占用的分区A和B的文件系统需要备份和保护,默认保护策略为每次还原,即每次引导Linux操作系统前,自动还原操作系统到最近一次的备份版本。
针对硬盘分区结构和文件系统的备份保护需求,本发明实施例提供的Linux文件系统的多点备份和实时保护方法,包括以下步骤:
A、在Linux文件系统存储介质的未使用空间上建立备份区,对Linux文件系统的读写操作进行实时监控,将修改Linux文件系统的数据存储到备份区,并标记为备份版本,对Linux文件系统进行备份;
B、备份区支持保存多个备份版本,还原Linux文件系统时,按照所选择的备份版本对Linux文件系统进行还原;
C、拦截对Linux文件系统存储介质的读写请求,防止未授权的读写操作,实时保护Linux文件系统和备份区。
步骤A中建立备份区的过程如下:
A101、将Linux文件系统的存储介质连续划分为固定大小的块,从零开始顺次对块进行编号;
A102、参见图1所示,在保存Linux文件系统的存储介质上划分一块未被Linux文件系统使用的空闲区域作为备份区;
A103、参见图2所示,在备份区建立参数区,保存块引用计数表、备份版本信息表、映射数据缓冲区信息表和备份版本描述信息区,具体步骤如下:
A1031、建立“块引用计数表”, 块引用计数表记录了每个块被多少个备份版本使用,每个块的初始引用计数为0;
A1032、建立“备份版本信息表”, 备份版本信息表记录了每个备份版本的属性信息,表中包含256个记录,表示最多支持256个备份版本。每个记录的初始id字段为0,表示备份版本还未使用,每条记录对应一个备份版本,每条记录包括以下字段:
字段名称 描述
id 每个id必须确保唯一性
type 备份版本类型,有两种类型:正式备份版本、临时备份版本
desc 描述备份版本的信息
   
   
blk_type_table 备份版本的块类型表在备份版本描述信息区的偏移位置
blk_redir_table 备份版本的块映射表在备份版本描述信息区的偏移位置
A1033、建立“映射数据缓冲区信息表”,映射数据缓冲区信息表记录了预分配的缓冲区的属性信息,包括以下字段:
字段名称 描述
begin 缓冲区的起始位置
end 缓冲区的结束位置
free_offset 缓冲区中首个未分配的空闲块在缓冲区的偏移位置
初始化时,设置begin字段为备份区中参数区的结束位置占用块的块号+1,设置end字段为备份区的结束位置占用块的块号,free_offset字段设置为0。
A104、参见图3所示,建立备份版本描述信息区,保存每个备份版本的描述信息,每个备份版本的描述信息包括块类型表和块映射表,块的类型包括:有效数据、空闲、临时有效数据、正式映射源、临时映射源,块映射表中包括映射源块号src和映射目标块号dst;
其中,块类型表记录Linux文件系统包含的所有块的类型:
字段名称 描述
有效数据 Linux文件系统的有效数据占用块
空闲 未被Linux文件系统使用的块
临时有效数据 临时备份版本中新占用的块,占用前为空闲块
正式映射源 在正式的备份版本中已被映射的块
临时映射源 在临时的备份版本中新发生的被映射块
块映射表记录备份版本中存在的块映射关系,包含两个字段:
字段名称 描述
Src 被映射的块的块号,称为映射源块
Dst 保存映射内容的缓冲区块的块号,称为映射目标块
A105、在备份区建立映射数据缓冲区,保存每个备份版本中产生的映射目标块,缓冲区的参数由映射数据缓冲区信息表维护;
A106、初始化备份区,自动创建Linux文件系统的初始备份版本,过程如下:
A1061、扫描Linux文件系统,识别Linux文件系统的有效数据,修改块引用计数表,有效数据占用的块计为1,其他块计为0;
A1062、修改备份版本信息表的第一条记录,设置唯一id,修改type为正式备份版本,设置blk_type_table指向备份版本描述信息区的第一条记录的块类型表存储地址,设置blk_redir_table指向备份版本描述信息区的第一条记录的块映射表存储地址;
A1063、修改备份版本描述信息区的第一条记录的块类型表,将有效数据占用块设置为有效数据,将其他块设置为空闲;
A1064、修改备份版本描述信息区的第一条记录的块映射表,将所有记录清0;
A1065、修改映射数据缓冲区信息表,设置free_offset设为0。
A107、自动创建临时备份版本,过程如下:
A1071、复制备份版本描述信息区的第一条记录的块类型表和块映射表到第二条记录;
A1072、修改备份版本信息表的第二条记录,设置id为0,设置type为临时备份版本,设置blk_type_table指向备份版本描述信息区的第二条记录的块类型表,设置blk_redir_table指向备份版本描述信息区的第二条记录的块映射表。
实际应用中初始化的具体步骤如下:
1、对硬盘进行扫描,识别出已规划分区,并读取存储在分区内的文件系统标识信息。
2、对硬盘进行块划分,每个块的容量为64KB。块的编号从0开始,在硬盘的剩余空间区域,划分一块空间,建立备份区。
3、对备份区进行第一阶段初始化,具体包括:
3.1、建立“块引用计数表”,每个块的引用计数为0;
3.2、建立“备份版本信息表”,表中包含256个记录,表示最多支持256个备份版本。每个记录的id字段为0,表示备份版本还未使用。
3.3、建立“映射数据缓冲区信息表”,设置begin字段为备份区中参数区的结束位置占用块的块号+1,设置end字段为备份区的结束位置占用块的块号,free_offset字段设置为0。
4、安装拦截硬盘读写操作的程序,具体步骤如下:
4.1、修改硬盘的MBR的启动代码,获得引导操作系统之前的计算机系统控制权,包括实现引导操作系统之前拦截硬盘读写。
4.2、在Linux操作系统中安装内核层驱动,拦截存储设备类驱动提供给上层通用块设备驱动的接口函数,实现在Linux操作系统中拦截硬盘读写。
5、对备份区进行第二阶段初始化,创建初始备份版本,具体包括以下步骤:
5.1、扫描Linux分区,根据分区的文件系统类型,识别文件系统有效数据,在“块引用计数表”中将有效数据占用的块的引用计数设置为1。
5.2、修改“备份版本信息表”中第一条记录的内容,建立初始备份点:使用随机数算法,生成唯一的备份版本id;备份版本类型设置为正式版本;初始化“块状态表”,将文件系统的有效数据占用的块的状态标记为“有效数据”,文件系统占用的其他块的状态标记为“空闲”;初始化“块映射表”,所有的记录设置为0,表示没有块被映射。
参见图4所示,上述初始化环境步骤完成后,Linux系统的文件系统处于保护状态。
本发明实施例步骤A中对Linux文件系统进行备份的过程如下: 
A201、计算机系统引导,调用硬盘的MBR的引导程序时,本系统获得控制权,用户选择备份Linux操作系统,在备份版本描述信息中描述本次备份的修改说明;遍历备份区的备份版本信息表,找到临时备份版本的记录,称为BP1;遍历BP1的块类型表,找到类型为“临时有效数据”和 “临时映射源”的块,在块引用计数表中将对应块的引用计数加1;
A202、修改BP1的块类型表,将类型“临时有效数据”改为“有效数据”,将类型“临时映射源”改为“正式映射源”;
A203、修改BP1的type为正式备份版本。
A204、复制BP1在备份版本描述信息区中的记录,称为BD2;
A205、查询备份版本信息表,找到第一个id为0的备份版本记录,称为BP2,修改BP2,设置blk_type_table指向BD2的块类型表,设置blk_redir_table指向BD2的块映射表。
本发明实施例步骤B中还原Linux文件系统的过程如下:
B1、计算机系统引导,调用硬盘的MBR的引导程序时,本系统获得控制权,用户选择手工还原Linux操作系统,加载备份区的备份版本信息表,向用户呈现备份版本列表;
B2、用户从备份列表中选择还原到哪个备份版本,其对应的在备份版本信息表中的记录称为SRC-BP,查询备份版本信息表中源备份版本的记录SRC-BP;
B3、查询备份版本信息表中的临时备份版本记录,如果不存在,查询第一个id为0的备份版本记录,被查询到的记录称为TMP-BP,修改该记录的类型为临时版本;
B4、用SRC-BP的块类型表覆盖TMP-BP的块类型表;
B5、回收TMP-BP映射数据占用的缓冲块:遍历TMP-BP的块映射表,找到映射目标块的块编号最小的记录,用这个块编号减去缓冲区信息表的begin字段,得到的结果赋值给缓冲区信息表的free_offset字段;
B6、用SRC-BP的块映射表覆盖TMP-BP的块映射表。
本发明实施例步骤C中实时保护Linux文件系统的过程如下:
C1、计算机系统引导,调用硬盘的MBR的引导程序时,本系统获得控制权,查询“备份版本信息表”,找到临时版本的备份版本记录,称为BP2;
C2、在实模式和保护模式下,拦截到对Linux文件系统的读操作请求后,拦截中断Int13,实现计算机实模式下的硬盘读写过滤,调用bootloader,加载Linux操作系统。Linux操作系统内核执行过程中,内核层驱动被加载运行,驱动扫描内核的块设备驱动链表,通过拦截存储设备类驱动提供给上层通用块设备驱动使用的读写接口函数,实现Linux操作系统切换到计算机保护模式后的硬盘读写过滤;拦截对Linux文件系统存储介质的读写请求后,若判定被读写块属于备份区的空间范围,则只向调用者返回成功状态,不执行I/O操作;
以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,如果被请求块的类型为“有效数据”、“空闲”或“临时有效数据”,则直接读被请求块的数据;如果被请求块的类型为“正式映射源”或“临时映射源”,则以被请求块号为索引,在BP2的块映射表中查找块的映射关系记录,根据记录的dst字段,获得映射目标块号,从映射数据缓冲区读取映射目标块的内容;
C3、在实模式和保护模式下,以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,拦截到对Linux文件系统的写操作请求后,执行以下操作:
C301、如果被请求块的类型为“空闲”且块的引用计数为0,则直接修改被请求块的数据,然后在BP2的块类型表中将块类型“空闲”改为“临时有效数据”;
C302、如果被请求块的类型为“空闲”且块的引用计数大于0,则执行以下步骤:
C3021、从映射数据缓冲区申请一个缓冲块;
C3022、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3023、将写请求的内容写入内存缓冲区;
C3024、将内存缓冲区的内容写入缓冲块;
C3025、在BP2的块映射表中增加一条记录,记录的src字段是被请求块的块号,记录的dst字段是缓冲块的块号;
C3026、修改BP2的块类型表,将被请求块的类型“空闲”改为“临时映射源”;
C303、如果被请求块的类型为“临时有效数据”,则直接修改被请求块的内容;
C304、如果被请求块的类型为“有效数据”,则执行以下步骤:
C3041、从映射数据缓冲区申请一个缓冲块;
C3042、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3043、将写请求的内容写入内存缓冲区;
C3044、将内存缓冲区的内容写入缓冲块;
C3045、修改BP2的块映射表,增加一条新记录,src字段是被请求块的块号,dst字段是缓冲块的块号;
C3046、修改BP2的块类型表,将被请求块的类型“有效数据”改为“临时映射源”;
C305、如果被请求块的类型为“临时映射源”,则以被请求块的块号为索引,查询BP2的块映射表,根据记录的dst字段,获得映射目标块号,用写请求的内容修改映射目标块;
C306、如果被请求块的类型为“正式映射源”,则执行以下步骤:
C3061、从映射数据缓冲区申请一个缓冲块;
C3062、申请一个内存缓冲区,以被请求块的块号为索引,查询BP2的映射表获得映射目标块号,读取映射目标块的内容到内存缓冲区;
C3063、将写请求的内容写入内存缓冲区;
C3064、将内存缓冲区的内容写入缓冲块;
C3065、修改BP2的块映射表,将被请求块的记录的dst字段改为缓冲块的块号;
C3066、修改BP2的块类型表,将被请求块的类型“正式映射源”改为“临时映射源”。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。 

Claims (5)

1.一种Linux文件系统的多点备份和实时保护方法,其特征在于包括以下步骤:
A、在Linux文件系统存储介质的未使用空间上建立备份区,对Linux文件系统的读写操作进行实时监控,将修改Linux文件系统的数据存储到备份区,并标记为备份版本,对Linux文件系统进行备份;
步骤A中建立备份区的过程如下:
A101、将Linux文件系统的存储介质连续划分为固定大小的块,并顺次对块进行编号;
A102、在保存Linux文件系统的存储介质上划分一块未被Linux文件系统使用的空闲区域作为备份区;
A103、在备份区建立参数区,保存块引用计数表、备份版本信息表、映射数据缓冲区信息表和备份版本描述信息区;所述备份版本信息表中的每条记录包括以下字段:唯一id、备份版本类型type、备份版本的描述信息desc、备份版本的块类型表在备份版本描述信息区的偏移位置blk_type_table、备份版本的块映射表在备份版本描述信息区的偏移位置blk_redir_table;映射数据缓冲区信息表记录了预分配的缓冲区的属性信息,包括以下字段:缓冲区的起始位置begin、缓冲区的结束位置end、缓冲区中首个未分配的空闲块在缓冲区的偏移位置free_offset;
A104、在备份版本描述信息区,保存每个备份版本的块类型表和块映射表,块的类型包括:有效数据、空闲、临时有效数据、正式映射源、临时映射源,块映射表中包括映射源块号src和映射目标块号dst;
A105、在备份区建立映射数据缓冲区,保存每个备份版本中产生的映射目标块,缓冲区的参数由映射数据缓冲区信息表维护;
A106、初始化备份区,自动创建Linux文件系统的初始备份版本;
A107、自动创建临时备份版本;
步骤A中对Linux文件系统进行备份的过程如下:
A201、查询备份版本信息表,找到第一个临时备份版本的记录,称为BP1;
A202、遍历BP1的块类型表,找到类型为“临时有效数据”和“临时映射源”的块,在块引用计数表中将对应块的引用计数加1;
A203、修改BP1的块类型表,将类型“临时有效数据”改为“有效数据”,将类型“临时映射源”改为“正式映射源”;
A204、修改BP1,设置type为正式备份版本,设置唯一id;
A205、复制BP1在备份版本描述信息区中的记录,称为BD2;
A206、查询备份版本信息表,找到第一个id为0的备份版本记录,称为BP2,修改BP2,设置blk_type_table指向BD2的块类型表,设置blk_redir_table指向BD2的块映射表;
B、备份区支持保存多个备份版本,还原Linux文件系统时,按照所选择的备份版本对Linux文件系统进行还原;
步骤B中还原Linux文件系统的过程如下:
B1、选择待还原的备份版本,作为源备份版本;
B2、查询备份版本信息表中源备份版本的记录SRC-BP;
B3、查询备份版本信息表中的临时备份版本记录,如果不存在,查询第一个id为0的备份版本记录,被查询到的记录称为TMP-BP,修改该记录的类型为临时版本;
B4、用SRC-BP的块类型表覆盖TMP-BP的块类型表;
B5、回收TMP-BP映射数据占用的缓冲块;
B6、用SRC-BP的块映射表覆盖TMP-BP的块映射表;
C、拦截对Linux文件系统存储介质的读写请求,防止未授权的读写操作,实时保护Linux文件系统和备份区;
步骤C中实时保护Linux文件系统的过程如下:
C1、查询备份版本信息表中第一个id为0的备份版本记录BP2;
C2、拦截到对Linux文件系统的读操作请求后,以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,
如果被请求块的类型为“有效数据”、“空闲”或“临时有效数据”,则直接读被请求块的数据;
如果被请求块的类型为“正式映射源”或“临时映射源”,则以被请求块号为索引,在BP2的块映射表中查找块的映射关系记录,根据记录的dst字段,获得映射目标块号,从映射数据缓冲区读取映射目标块的内容;
C3、拦截到对Linux文件系统的写操作请求后,以被请求块的块号为索引,在BP2的块类型表中查询被请求块的类型,
C301、如果被请求块的类型为“空闲”且块的引用计数为0,则直接修改被请求块的数据,然后在BP2的块类型表中将块类型“空闲”改为“临时有效数据”;
C302、如果被请求块的类型为“空闲”且块的引用计数大于0,则执行以下步骤:
C3021、从映射数据缓冲区申请一个缓冲块;
C3022、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3023、将写请求的内容写入内存缓冲区;
C3024、将内存缓冲区的内容写入缓冲块;
C3025、在BP2的块映射表中增加一条记录,将被请求块的块号作为映射源块号保存在记录的src字段,将缓冲块的块号作为映射目标块号保存在记录的dst字段;
C3026、修改BP2的块类型表,将被请求块的类型“空闲”改为“临时映射源”;
C303、如果被请求块的类型为“临时有效数据”,则直接修改被请求块的内容;
C304、如果被请求块的类型为“有效数据”,则执行以下步骤:
C3041、从映射数据缓冲区申请一个缓冲块;
C3042、申请一个内存缓冲区,从被请求块读取块的原始内容到内存缓冲区;
C3043、将写请求的内容写入内存缓冲区;
C3044、将内存缓冲区的内容写入缓冲块;
C3045、修改BP2的块映射表,增加一条新记录,将被请求块的块号作为映射源块号保存在src字段,将缓冲块的块号作为映射目标块号保存在dst字段;
C3046、修改BP2的块类型表,将被请求块的类型“有效数据”改为“临时映射源”;
C305、如果被请求块的类型为“临时映射源”,则以被请求块的块号为索引,查询BP2的块映射表,根据记录的dst字段,获得映射目标块号,用写请求的内容修改映射目标块;
C306、如果被请求块的类型为“正式映射源”,则执行以下步骤:
C3061、从映射数据缓冲区申请一个缓冲块;
C3062、申请一个内存缓冲区,以被请求块的块号为索引,查询BP2的映射表获得映射目标块号,读取映射目标块的内容到内存缓冲区;
C3063、将写请求的内容写入内存缓冲区;
C3064、将内存缓冲区的内容写入缓冲块;
C3065、修改BP2的块映射表,将缓冲块的块号作为映射目标块号保存在被请求块的记录的dst字段;
C3066、修改BP2的块类型表,将被请求块的类型“正式映射源”改为“临时映射源”。
2.如权利要求1所述的Linux文件系统的多点备份和实时保护方法,其特征在于:步骤A106中创建Linux文件系统的初始备份版本的过程如下:
A1061、扫描Linux文件系统,识别Linux文件系统的有效数据,修改块引用计数表,有效数据占用的块计为1,其他块计为0;
A1062、修改备份版本信息表的第一条记录,设置唯一id,修改type为正式备份版本,设置blk_type_table指向备份版本描述信息区的第一条记录的块类型表存储地址,设置blk_redir_table指向备份版本描述信息区的第一条记录的块映射表存储地址;
A1063、修改备份版本描述信息区的第一条记录的块类型表,将有效数据占用块设置为有效数据,将其他块设置为空闲;
A1064、修改备份版本描述信息区的第一条记录的块映射表,将所有记录清0;
A1065、修改映射数据缓冲区信息表,设置缓冲区中首个未分配的空闲块在缓冲区的偏移位置free_offset为0。
3.如权利要求1所述的Linux文件系统的多点备份和实时保护方法,其特征在于:步骤A107中创建临时备份版本的过程如下:
A1071、复制备份版本描述信息区的第一条记录的块类型表和块映射表到第二条记录;
A1072、修改备份版本信息表的第二条记录,设置id为0,设置type为临时备份版本,设置blk_type_table指向备份版本描述信息区的第二条记录的块类型表,设置blk_redir_table指向备份版本描述信息区的第二条记录的块映射表。
4.如权利要求1所述的Linux文件系统的多点备份和实时保护方法,其特征在于:步骤C中拦截对Linux文件系统存储介质的读写请求的实现过程如下:
实模式环境下,通过拦截中断Int13实现过滤读写操作;
Linux系统环境下,通过拦截存储设备类驱动提供给上层通用块设备驱动的接口函数实现过滤读写操作。
5.如权利要求1所述的Linux文件系统的多点备份和实时保护方法,其特征在于:步骤C中实时保护备份区的过程如下:拦截对Linux文件系统存储介质的读写请求后,若判定被读写块属于备份区的空间范围,则只向调用者返回成功状态,不执行I/O操作。
CN201110353794.6A 2011-11-10 2011-11-10 Linux文件系统的多点备份和实时保护方法 Active CN102508743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110353794.6A CN102508743B (zh) 2011-11-10 2011-11-10 Linux文件系统的多点备份和实时保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110353794.6A CN102508743B (zh) 2011-11-10 2011-11-10 Linux文件系统的多点备份和实时保护方法

Publications (2)

Publication Number Publication Date
CN102508743A CN102508743A (zh) 2012-06-20
CN102508743B true CN102508743B (zh) 2014-06-04

Family

ID=46220835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110353794.6A Active CN102508743B (zh) 2011-11-10 2011-11-10 Linux文件系统的多点备份和实时保护方法

Country Status (1)

Country Link
CN (1) CN102508743B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281538B (zh) * 2013-07-03 2019-05-31 联想(北京)有限公司 一种存储设备的扩容及快照方法和存储设备
CN106503970A (zh) * 2016-11-04 2017-03-15 东软集团股份有限公司 流程实例的编辑方法及装置
CN106648664A (zh) * 2016-12-23 2017-05-10 东软集团股份有限公司 自助终端业务流程的更新方法及装置
CN109800265B (zh) * 2018-12-28 2023-07-25 平安科技(深圳)有限公司 数据加载方法、装置、设备及计算机可读存储介质
CN117170696B (zh) * 2023-11-02 2024-03-12 佛山市钒音科技有限公司 一种空调器的ota升级方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1707440A (zh) * 2004-12-21 2005-12-14 西安三茗科技有限责任公司 一种硬盘Linux文件系统的数据备份还原与权限控制方法
CN1740981A (zh) * 2005-08-12 2006-03-01 西安三茗科技有限责任公司 一种计算机硬盘数据多时间点快速存储与恢复方法
CN1797335A (zh) * 2004-12-30 2006-07-05 联想(北京)有限公司 一种扩展基本输入输出系统功能的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040137893A1 (en) * 2003-01-15 2004-07-15 Sivakumar Muthuswamy Communication system for information security and recovery and method therfor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1707440A (zh) * 2004-12-21 2005-12-14 西安三茗科技有限责任公司 一种硬盘Linux文件系统的数据备份还原与权限控制方法
CN1797335A (zh) * 2004-12-30 2006-07-05 联想(北京)有限公司 一种扩展基本输入输出系统功能的方法
CN1740981A (zh) * 2005-08-12 2006-03-01 西安三茗科技有限责任公司 一种计算机硬盘数据多时间点快速存储与恢复方法

Also Published As

Publication number Publication date
CN102508743A (zh) 2012-06-20

Similar Documents

Publication Publication Date Title
TWI533152B (zh) 資料儲存裝置及方法
CN102012852B (zh) 一种增量写快照的实现方法
US7895394B2 (en) Storage system
US8527720B2 (en) Methods of capturing and naming dynamic storage tiering configurations to support data pre-staging
CN103761053B (zh) 一种数据处理方法和装置
CN102096561B (zh) 分层数据存储处理方法、装置以及存储设备
CN102508743B (zh) Linux文件系统的多点备份和实时保护方法
CN108139902A (zh) 用于提供混合模式来访问ssd驱动器的方法和装置
US8868622B2 (en) Method and apparatus for allocating resources in a computer system
CN108959118B (zh) 一种数据写入的方法及装置
US20080301393A1 (en) Apparatus and method of processing data of non-volatile memory
US20150019830A1 (en) Dynamic address mapping for finish in the field
CN106201652A (zh) 一种数据处理方法及虚拟机
CN104050014B (zh) 基于虚拟化平台的高效存储管理方法
CN104021089A (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
KR101996641B1 (ko) 메모리 오버레이 장치 및 방법
TW200844744A (en) Near instantaneous backup and restore of disc partitions
CN104572492A (zh) 一种烧录数据到fat32分区的方法和装置
CN107544834B (zh) 一种镜像文件收缩方法、装置和机器可读存储介质
CN102207831B (zh) 磁盘阵列的数据读写方法及装置
US9535796B2 (en) Method, apparatus and computer for data operation
CN102968597A (zh) 一种基于磁盘数据连接链文件粉碎方法
KR102145358B1 (ko) 변경된 운영체제 환경에서 디스크의 데이터 무결성을 보호하는 방법 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
CN105095111A (zh) 一种提高存储虚拟化安全性的方法及存储虚拟化设备
US12073081B2 (en) Priority based raid (redundant array of independent disks) rebuild for a data storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: WUHAN AOYI CLOUD COMPUTING CO., LTD.

Free format text: FORMER OWNER: WUHAN OS-EASY TECHNOLOGY CO., LTD.

Effective date: 20150212

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 430074 WUHAN, HUBEI PROVINCE TO: 430000 WUHAN, HUBEI PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150212

Address after: Optics Valley creative building No. 465 430000 Guanshan Wuhan East Lake New Technology Development Zone, Hubei Province Road 17 room 1701

Patentee after: WUHAN OS-EASY CLOUD COMPUTING CO., LTD.

Address before: 6, 7 SBI building, 430074 pioneering street, East Lake hi tech Development Zone, Wuhan, Hubei

Patentee before: Wuhan Os-easy Technology Co., Ltd.

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 430000 Hubei city of Wuhan Province, East Lake New Technology Development Zone, Optics Valley Road No. 465 building 17 room 1701 creative

Patentee after: WUHAN OS-EASY CLOUD COMPUTING CO., LTD.

Address before: Optics Valley creative building No. 465 430000 Guanshan Wuhan East Lake New Technology Development Zone, Hubei Province Road 17 room 1701

Patentee before: WUHAN OS-EASY CLOUD COMPUTING CO., LTD.