磁盘数据保护方法及装置的制造方法_2

文档序号:9708695阅读:来源:国知局
置内存盘的大小。实施例中用户需要在物理卷的基础上创建逻辑卷,在逻辑卷上创建快照卷。快照卷也是一种逻辑卷,为了区别普通逻辑卷,本发明实施例中将普通逻辑卷称为逻辑源卷,以表示快照卷是基于它之上创建的。中内存盘上用来创建快照卷,这样有以下一些好处:
[0057]1、比起物理盘创建的快照卷,内存盘在访问效率上具有明显的优势,因为访问RAM的速率是远高于物理磁盘的;
[0058]2、由于是内存模拟的磁盘,每次系统重启,内存盘都需要重建,启动前内存盘上的数据会丢失,这样还带来了数据安全性的好处;
[0059]3、内存盘创建后会用做快照卷,对于逻辑源卷的写入操作会被发往快照卷(即内存盘),也即是说,逻辑源卷的写入访问将会减少,磁盘的访问量和访问频度一定程度上会影响磁盘的寿命,所以减少磁盘访问对于延长磁盘的寿命也会有积极的作用。
[0060]图2为本发明第一实施例中开启内存盘功能的流程图,如图2所示,包括以下步骤:
[0061]步骤S101,读取系统启动参数,获取内存盘相关参数。
[0062]具体的,系统启动参数和内存盘相关参数是在激活磁盘数据保护功能时设置的。
[0063]步骤S102,分配预设大小的内存空间,进行内存盘的初始化,根据启动时的内存盘的参数,设置内存盘大小。
[0064]步骤S103,在块设备层注册内存盘的主次设备号。
[0065]具体的,对用户而言,内存盘就相于一个物理磁盘。
[0066]步骤S104,分配磁盘对象和10请求队列,上层的10请求就放到该对象的10请求队列中去处理。
[0067]需要说明的是,本发明实施例中所涉及到的10,是指对磁盘中的输入输出请求10。
[0068]图3为本发明第一实施例中逻辑源卷、快照卷和物理卷之间的映射关系示意图。
[0069]如图3所示,所述物理卷中的块分别与所述逻辑源卷中的块和快照卷中的块具有映射关系,所述快照卷中的块与所述逻辑源卷中的块具有映射关系,如下:
[0070]物理卷包括第一物理卷和第二物理卷;在逻辑源卷中的块和快照卷中的块之间建立第一块映射表,在快照卷中的块和第一物理卷中的块之间建立第二块映射表,在逻辑源卷中的块和第二物理卷中的块之间建立第三块映射表。
[0071]具体的,用户创建逻辑源卷后,逻辑源卷和物理卷1之间建立T3块映射表。新的增量写入10请求会先发送到快照卷,所以,快照卷和逻辑源卷之间会建立T1块映射表,并且快照卷和物理卷2之间建立T2块映射表。这样逻辑卷和物理卷块号的映射关系就建立了:如果没有创建快照卷,那么直接查找T3映射表,找到物理卷1的块号。如果创建了快照卷,首先根据逻辑源卷的块号查找T1映射表,如果没有找到说明逻辑源卷的块号还没有映射,那么从T3表查找逻辑源卷块对应的物理卷1的块,如果找到了,那么还需要在从快照卷和物理卷的映射表T2中,查找对应的物理卷2的块。
[0072]其中,本发明实施例中在块设备上将物理卷分为物理卷1、物理卷2、物理卷3等等,实施例中优选用物理卷1和物理卷2进行说明,本发明不限于此。另外,逻辑源卷上包括多个单兀:unitl、unit2、unit3、unit4 等等。
[0073]图4示出了本发明第一实施例中创建快照卷的流程图,如图4所示,包括以下步骤:
[0074]步骤S111,当逻辑源卷在物理卷上创建完之后,判断卷组是否有空闲空间。
[0075]具体,如果卷组有空闲空间,那么用户可以开始创建快照卷。用户组创建快照卷时,需要指定三个参数:逻辑源卷名、快照卷名和快照卷的大小。其中,逻辑源卷需要准备就绪,并且需要和快照卷属于同一卷组;用户可以任意设置快照卷名,但名称需要在卷组内唯一;快照卷大小,用户可以任意设置,但不能超过卷组的剩余空间大小。
[0076]步骤S112,在块设备层注册快照卷的主次设备号。
[0077]步骤S113,分配快照卷磁盘对象和10请求队列。
[0078]步骤S114,将磁盘对象和10请求队列关联到逻辑源卷和快照卷中。
[0079]步骤S115,初始化系统块设备的块映射表T1和T2。
[0080]回到图1当中,进入步骤S200。
[0081]步骤S200,当对文件设置输入输出10穿透属性时,将具有10穿透属性的文件的10请求产生的增量数据保存在所述快照卷上。
[0082]具体的,传统的LVM技术中,在创建快照卷后,发送给逻辑源卷的写10请求会被截取发送给快照卷,保持逻辑源卷的数据不变。在快照卷被删除后,对于用户而言逻辑源卷上的数据又“恢复”到了创建快照卷的时刻,这样实现数据保护的作用。传统LVM技术在保护数据的同时,也产生了一个问题:建立快照卷后,逻辑源卷的数据就不能被改变了,除非用户删除掉快照卷,但是在快照卷存在的这段时间内,写入的数据也随着快照卷的删除而丢弃了。例如对根文件系统设备建立快照后,系统日志文件写入的数据同样会在删掉快照卷后被丢弃。
[0083]本发明实施例中的一个关键技术创新点就是实现了 10的穿透属性,即在创建快照卷后,可以对进程或者文件设置10穿透属性,对进程设置10穿透属性是进程所有打开的文件具有10穿透属性,它和直接对文件设置10穿透属性的本质是相同的。本发明实施例中快照卷上存放着它创建时刻以来的写请求的增量数据,设置穿透属性后,所有文件在快照卷上的增量数据会被同步到逻辑源卷上。在创建快照卷后,具有穿透属性的相关文件的写10请求会被同时发给快照卷和逻辑源卷处理。因此,当快照卷被删除后,逻辑源卷上相关文件数据同样发生变化,已经被同步了,而不是创建快照卷时刻的内容。
[0084]进一步的,本发明实施例中优选对进程设置穿透属性,如图5所示,包括以下步骤:
[0085]步骤S201,用户输入指令,对指定进程设置10穿透属性。
[0086]具体的,首先检查用户所需设置10穿透属性的进程是否存在,如果该进程不存在,那么对该进程设置10穿透属性失败。如果该进程存在,那么对该进程设置10穿透属性。
[0087]步骤S202,查询进程打开的文件列表,取出所有类型为普通的、目录以及链接的文件。
[0088]具体的,如果检查到用户所需设置10穿透属性的进程存在,那么将与该进程所对应的所有类型为普通的、目录以及链接的文件取出。
[0089]步骤S203,查询与该进程对应的所有文件的路径名,并根据路径名查询文件所属的文件系统,进而查询到所属的块设备。
[0090]步骤S204,判断与该进程所对应的所有文件是否在设备的块映射表中。
[0091]具体的,结合图3中块映射表ΤΙ、T2和T3进行判断查询。
[0092]步骤S205,将与该进程所对应的文件添加到链表L1中。
[0093]具体的,对进程设置10穿透属性,本质上就是对进程打开的所有的普通,目录和链接文件设置10穿透属性,它和对单个文件设置10穿透属性的本质是一致的。具有10穿透属性的文件,在操作系统内部加入一个全局的链表,进行统一的管理。
[0094]进一步的,如果链表L1不存在,初始化一个链表L1。链表L1中每个节点包含:文件信息以及文件所属的文件系统信息,逻辑源卷信息和快照卷信息等。满足如下条件的文件会被添加到该链表L1中:a、普通、目录或者链接文件;b、在快照卷创建的时候,操作系统会将快照卷和逻辑源卷添加到块设备映射表中。
[0095]如果在链表L1中文件已经存在,说明已经对该文件设置过10穿透属性了,不再对其进行10穿透属性设置。
[0096]步骤S206,创建链表L2,将链表L1中的所有文件的块号添加到链表L2中。
[0097]具体的,如果链表L2不存在,那么初始化文件块号链表L2,链表L2中的每个节点包含:逻辑卷信息,快照卷信息、文件信息,文件所有数据块号信息以及逻辑卷块号。查询链表L1中所有文件的相关块号,包括文件的所有文件内容数据块号和元数据块号:
[0098]文件内容数据块号:查询文件索引节点磁盘数据结构对象,获取文件的所有数据块号
[0099]元数据块号:获取所有与文件相关的元数据块号,包括,超级块块号,快照卷描述符块号,块位图块号,索引节点位图块号,索引节点表块号,间接寻址块块号,将这些块号的数据拷贝为内存副本,并和块号以及块类型
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1