CN102521114B - 一种虚拟化环境下的文件系统日志存储系统 - Google Patents
一种虚拟化环境下的文件系统日志存储系统 Download PDFInfo
- Publication number
- CN102521114B CN102521114B CN201110391530.XA CN201110391530A CN102521114B CN 102521114 B CN102521114 B CN 102521114B CN 201110391530 A CN201110391530 A CN 201110391530A CN 102521114 B CN102521114 B CN 102521114B
- Authority
- CN
- China
- Prior art keywords
- disk
- virtual
- log
- module
- daily 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种虚拟化环境下的文件系统日志存储系统,包括位于虚拟机中的日志添加模块和日志磁盘动态插入模块,以及位于虚拟机管理程序中的虚拟日志磁盘管理模块;日志添加模块申请共享内存以存储日志添加请求,将日志读写请求定向到创建的虚拟日志磁盘上;日志磁盘动态插入模块将创建的虚拟日志磁盘挂载到文件系统上;虚拟日志磁盘管理模读取日志添加请求,为该请求创建虚拟日志磁盘,将创建的虚拟磁盘信息反馈给日志磁盘动态插入模块,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求。本发明利用高速设备存储原本存储于低速设备上的日志数据,在保证日志可靠性以及发挥正常日志作用的前提下,提高了写性能。
Description
技术领域
本发明涉及计算机系统结构虚拟化环境下文件系统技术领域,更具体的说,就是在虚拟化环境下提供一种文件系统日志的存储系统,以提高文件系统写性能。
背景技术
近年来,随着服务器的应用程序的复杂性大大增加,使得系统容易出错且稳定性下降,为了确保文件系统突然崩溃时的数据一致性,目前操作系统普遍使用具有日志的日志型文件系统。首先文件系统在磁盘上为文件系统日志区域开辟额外的存储空间,在文件系统要将脏数据写入磁盘前(新文件写入或者是对原文件进行修改)之前,文件系统将会对这些修改生成相应的日志记录,并将日志记录写入到日志区域中。在这种情况下,一旦遭遇宕机,日志型文件系统就可以利用日志记录将文件系统恢复到宕机前的一致性状态。这种方法避免了系统宕机后耗时扫描整个文件系统才能恢复一致性的问题,也避免了采用传统冗余式备份的效率底下以及耗费过多额外磁盘空间的缺点。
但是日志型文件系统的最大缺陷在于,所有更新过的文件必须首先要写回磁盘上。每次写操作都必须经历两次写磁盘,一次记录到日志空间,另一次才是真正的写入文件系统,因此相比于没有日志记录的文件系统来说,会造成性能下降,如果在记录日志时采用同时记录数据和元数据的修改(如Ext3中的Journal模式),性能下降则更为严重。
而在虚拟化环境下,如果虚拟机的运行也是为了提供服务器应用的话,为保障更短的服务宕机时间,日志型文件系统的选用也是必须的。每台虚拟机都有自己的日志记录区域。因为每台虚拟机都有独立的运作,都拥有各自的磁盘分区并且独自存取自己的磁盘文件系统。如果同时有多台虚拟机进行写操作,按照前文讲述的内容,可以得到每个虚拟机都对自己的日志区域进行读写操作,虚拟机管理程序因此对于这些读写的磁盘寻道和旋转开销就会增加,导致读写速度下降。
发明内容
本发明的目的在于提供一种虚拟化环境下的文件系统日志存储系统,提高了写入速度。
一种虚拟化环境下的文件系统日志存储系统,包括位于虚拟机中的日志添加模块1和日志磁盘动态插入模块2,以及位于虚拟机管理程序中的虚拟日志磁盘管理模块3;
日志添加模块1,用于申请共享内存以存储日志添加请求,从日志磁盘动态插入模块2获取虚拟日志磁盘盘符,将虚拟机文件系统中的日志读写请求定向到该虚拟日志磁盘盘符对应的虚拟日志磁盘上;
日志磁盘动态插入模块2,用于从虚拟日志磁盘管理模块3接收虚拟日志磁盘信息,将该虚拟日志磁盘挂载到虚拟机内的文件系统上,并将挂载后得到的虚拟日志磁盘盘符传送给日志添加模块1;
虚拟日志磁盘管理模块3,用于从日志添加模块1的共享内存中读取日志添加请求,为该请求创建虚拟日志磁盘,将创建的虚拟磁盘信息传送给日志磁盘动态插入模块2,从虚拟机的文件系统中获取日志读写请求,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求。
进一步地,所述虚拟日志磁盘管理模块3包括:
日志添加请求通信模块31,用于从日志添加模块1的共享内存中读取日志添加请求;
虚拟磁盘内存管理模块32,用于为所述日志添加请求确定待创建的虚拟日志磁盘的属性信息;
虚拟日志磁盘创建模块33,用于依据所述虚拟日志磁盘的属性信息为日志添加请求创建虚拟日志磁盘;
磁盘信息反馈模块34,用于将创建的虚拟日志磁盘信息反馈给日志磁盘动态插入模块2;
虚拟日志磁盘块设备驱动35,用于从虚拟机的文件系统中获取日志读写请求,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求。
进一步地,还包括位于虚拟机管理程序中的虚拟日志磁盘可靠性保证模块4,用于将虚拟日志磁盘管理模块3中的所有虚拟日志磁盘上的日志内容存储到物理磁盘。本发明的技术效果体现在:
本发明提供了先进的日志存储架构,支持多种虚拟化环境。该架构符合一系列的功能要求,包括可靠性,高速写入性和通用性。本发明利用高速设备存储原本存储于低速设备上的日志数据,允许虚拟环境下应用程序不做任何修就可以使用本发明。本发明在文件系统和设备驱动层实现了一个具有设备透明性和完整日志功能的日志存储系统。
附图说明
图1为虚拟化环境下文件系统日志存储系统的一种具体实现方式的结构示意图;
图2为虚拟磁盘管理模块设计图;
图3为本系统虚拟机添加日志流程图。
具体实施方式
下面结合附图对本发明系统作进一步详细的说明。
如图1所示,本发明可应用在一个虚拟机管理程序对应多个虚拟机A、B…N的系统背景中。本发明系统包括位于虚拟机中的日志添加模块1和日志磁盘动态插入模块2,以及位于虚拟机管理程序中的虚拟日志磁盘管理模块3和虚拟日志磁盘可靠性保证模块4。
日志添加模块1,用于申请共享内存以存储日志添加请求,从日志磁盘动态插入模块2获取虚拟日志磁盘盘符,将虚拟机文件系统中的日志读写请求定向到该虚拟日志磁盘盘符对应的虚拟日志磁盘上。日志添加模块1为虚拟机中的文件系统创建日志,必须要求文件系统能够在运行状态下具有由无日志转换为有日志的功能。
日志磁盘动态插入模块2用于从虚拟日志磁盘管理模块3接收虚拟日志磁盘信息,负责将该虚拟磁盘挂载到文件系统上。从虚拟日志磁盘管理模块3获得虚拟磁盘信息,但在本模块本身看来不能意识到这是一块虚拟的磁盘,而以为是一块由虚拟机管理程序所在文件系统所管理的一块真实的物理磁盘。获取磁盘信息以后,挂载到虚拟机内的文件系统上,并将挂载后得到的虚拟日志磁盘盘符告知日志添加模块1。
虚拟日志磁盘管理模块3负责全局的管理所有虚拟机的虚拟磁盘,包括虚拟磁盘在内存中占用的空间、虚拟日志磁盘内存分配以及与虚拟机内部的通信。与日志添加模块1通信,获取虚拟机内部的日志添加请求。与日志磁盘动态插入模块2通信,告知其确定的虚拟日志磁盘信息。从图2中可以看出,本模块包括以下五个模块:日志添加请求通信模块31,虚拟磁盘内存管理模块32,虚拟日志磁盘创建模块33,磁盘信息反馈通信模块34和虚拟日志磁盘块设备驱动35。
日志添加请求通信模块31负责接受虚拟机内的日志添加请求。通信方式为在虚拟机和虚拟机管理程序之间的共享内存技术。日志添加请求通信模块获得虚拟机共享内存访问授权表,通过授权表对内存固定地址进行访问,判断是否发起添加日志,如果是,则捕获虚拟机内部的日志添加请求。捕获请求以后,告知虚拟磁盘内存管理模块32。
虚拟磁盘内存管理模块32用于为所述日志添加请求确定待创建的虚拟日志磁盘的属性信息。属性信息包括内存地址,磁盘主设备号,磁盘副设备号,磁盘大小,实际使用大小以及各虚拟日志磁盘与虚拟机的一一对应关系。从日志添加请求通信模块31中得到虚拟机的添加日志请求后,首先查看该虚拟机是否已经添加过日志,如果有,则直接告知磁盘信息反馈通信模块34相关磁盘信息;如果没有,则与虚拟日志磁盘创建模块33通信,向其请求创建虚拟磁盘。待其创建完成后,获得创建的虚拟磁盘信息,记录并将其转发给磁盘信息反馈模块34。
虚拟日志磁盘创建模块33依据所述虚拟日志磁盘的属性信负责为虚拟机创建虚拟日志磁盘,是直接在内存中申请空间并创建磁盘块设备的模块。为节约内存使用空间,并不在申请磁盘时直接开辟一块对应磁盘空间大小的内存空间,以免造成内存数据浪费。仅仅申请磁盘块设备信息。磁盘空间管理采用基数树结构管理,在没有数据写入的时候,基数树只有根结点会产生空间,就只需为其分配头结点空间。将创建的虚拟日志磁盘信息(包括虚拟日志磁盘的属性信息和内存地址空间)返回给虚拟磁盘内存管理模块32。
磁盘信息反馈通信模块34负责通知虚拟机日志磁盘信息。与日志磁盘动态插入模块2通信,通信方式采用共享内存,在原来获取添加日志请求的共享内存中写入磁盘信息,日志磁盘动态插入模块2从指定内存地址读出磁盘信息。
虚拟日志磁盘块设备驱动35负责用于从虚拟机的文件系统中获取日志读写请求,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求。通过块设备前后端传入I/O共享环的日志读写请求,由于前文所述的步骤,已经绑定在虚拟日志块设备上,并将读写请求放在虚拟日志块设备的请求队列上。虚拟日志块设备驱动35从队列中取出请求并进行读/写操作,将读/写磁盘的操作转换为对内存中的基数树结构进行增删操作,读写速度提升的关键点在于此模块。
虚拟日志磁盘可靠性保证模块4是保证内存中数据安全性和可靠性的模块。当具备日志文件系统的虚拟机关闭以后,为释放内存以及为保证日志数据的安全性,需要将数据转移到磁盘块设备上,已防止数据丢失。包括两个子模块:内存拷贝模块41和数据存储模块42。
内存拷贝模块41负责将该关闭的虚拟机的日志磁盘,即在虚拟机管理程序管理的部分内存区域中的数据拷贝到用户空间。
数据存储模块42负责数据以文件的形式写入到磁盘6上。使用内存映像文件的方式将内存中指定区域的映射到磁盘文件上进行保存。
下面结合图3系统流程图讲述整个系统的工作流程。
1、虚拟机内部文件系统为无日志型文件系统,使用日志添加模块1发起为文件系统添加日志请求,对与虚拟日志磁盘管理模块3共享的内存区域进行写操作,写入日志添加请求数据结构。
2、日志添加请求通信模块31,从共享内存区域中取出日志添加请求数据结构,进行解析,获取虚拟机文件系统信息,将请求以及虚拟机信息告知虚拟磁盘内存管理模块32。
3、虚拟磁盘内存管理模块32查询虚拟机日志是否已分配,如果已经分配,则直接返回已经分配的虚拟磁盘信息。如果没有分配,则告知虚拟日志磁盘创建模块33进行新的磁盘分配。
4、虚拟日志磁盘创建模块33接收到新的磁盘创建请求,从虚拟机磁盘管理程序管理的内存中分配空间,为虚拟的磁盘块设备处理读写请求准备基础空间。创建完成以后,返回新创建的磁盘信息给虚拟磁盘内存管理模块32。
5、虚拟磁盘内存管理模块32收到新的虚拟磁盘设备信息以后,将磁盘信息告知磁盘信息反馈通信模块34。
6、磁盘信息反馈通信模块34将磁盘信息通过共享内存技术与虚拟机内部进行交互,将磁盘信息填入共享内存指定区域中,虚拟机中的日志磁盘动态插入模块2从共享内存指定区域读取出磁盘信息并进行解析,解析完成以后,执行挂载磁盘命令,将日志磁盘设备挂载到文件系统中,并告知日志添加模块1日志磁盘盘符。
7、日志添加模块1获取日志磁盘盘符,执行添加日志命令,将日志读写请求定向导入到磁盘盘符对应的虚拟日志磁盘设备上,至此完成虚拟日志设备的添加以及文件系统日志的添加。
8.虚拟日志磁盘块设备驱动35从虚拟机的文件系统中获取日志读写请求,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求。
虚拟日志磁盘可靠性保证模块4运行在虚拟机关闭以后,若发现该虚拟机虚拟日志磁盘设备上并没有数据,则不保存数据。如果发现有,则使用子模块内存拷贝模块41和数据存储模块42将内存中的数据转存到磁盘上。待虚拟机重新启动时,通过数据存储模块42重新读出该虚拟机对应虚拟日志磁盘数据,通过虚拟机磁盘内存管理模块32以及虚拟日志磁盘创建模块33,重新在内存中加载虚拟日志磁盘块设备。
本发明将原本日志文件系统写数据时,进行两次磁盘写操作转换为一次内存写操作一次磁盘写操作,在保证日志可靠性以及发挥正常日志作用的前提下,提高了写性能。
本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方式实施本发明,因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护的范围。
Claims (2)
1.一种虚拟化环境下的文件系统日志存储系统,包括位于虚拟机中的日志添加模块(1)和日志磁盘动态插入模块(2),以及位于虚拟机管理程序中的虚拟日志磁盘管理模块(3);
所述日志添加模块(1),用于申请共享内存以存储日志添加请求,对与虚拟日志磁盘管理模块(3)共享的内存区域进行写操作,写入日志添加请求数据结构,从所述日志磁盘动态插入模块(2)获取虚拟日志磁盘盘符,将虚拟机文件系统中的日志读写请求定向到所述虚拟日志磁盘盘符对应的虚拟日志磁盘上;
所述日志磁盘动态插入模块(2),用于从所述虚拟日志磁盘管理模块(3)接收虚拟日志磁盘信息,将所述虚拟日志磁盘挂载到虚拟机的文件系统上,并将挂载后得到的虚拟日志磁盘盘符传送给所述日志添加模块(1);
所述虚拟日志磁盘管理模块(3),用于从所述日志添加模块(1)的共享内存中读取所述日志添加请求,为该请求创建虚拟日志磁盘,将创建的虚拟磁盘信息传送给所述日志磁盘动态插入模块(2),并从虚拟机的文件系统中获取所述日志读写请求,在所述日志读写请求定向的虚拟日志磁盘上执行该日志读写请求;
所述虚拟日志磁盘管理模块(3)包括:
日志添加请求通信模块(31),用于获得虚拟机共享内存访问授权表,通过授权表对内存固定地址进行访问,判断是否发起添加日志,如果是,则从与日志添加模块(1)的共享内存中读取日志添加请求;
虚拟磁盘内存管理模块(32),用于查看虚拟机是否已经添加过日志,如果有,则直接告知磁盘信息反馈通信模块(34)相关虚拟日志磁盘信息;如果没有,则与虚拟日志磁盘创建模块(33)通信,向其请求创建虚拟磁盘,待其创建完成后,获得创建的虚拟日志磁盘信息,记录并将其转发给磁盘信息反馈模块(34)以为所述日志添加请求确定待创建的虚拟日志磁盘的属性信息;
虚拟日志磁盘创建模块(33),用于接收虚拟磁盘内存管理模块(32)的磁盘创建请求,从虚拟机磁盘管理程序管理的内存中分配空间,为虚拟的磁盘块设备处理读写请求准备基础空间,创建完成以后,返回新创建的磁盘信息给虚拟磁盘内存管理模块(32),其直接在内存中申请空间并创建,仅仅申请磁盘块设备信息,磁盘空间管理采用基数树结构管理;
磁盘信息反馈模块(34),用于将创建的虚拟日志磁盘信息填入共享内存指定区域中,日志磁盘动态插入模块(2)从共享内存指定区域读取出磁盘信息并进行解析;
虚拟日志磁盘块设备驱动(35),用于从虚拟机的文件系统中获取日志读写请求,在日志读写请求定向的虚拟日志磁盘上执行该日志读写请求,将读/写磁盘的操作转换为对内存中的基数树结构进行增删操作。
2.根据权利要求1所述的文件系统日志存储系统,其特征在于,还包括位于虚拟机管理程序中的虚拟日志磁盘可靠性保证模块(4),用于将虚拟日志磁盘管理模块(3)中的所有虚拟日志磁盘上的日志内容存储到物理磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391530.XA CN102521114B (zh) | 2011-11-30 | 2011-11-30 | 一种虚拟化环境下的文件系统日志存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391530.XA CN102521114B (zh) | 2011-11-30 | 2011-11-30 | 一种虚拟化环境下的文件系统日志存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521114A CN102521114A (zh) | 2012-06-27 |
CN102521114B true CN102521114B (zh) | 2014-08-27 |
Family
ID=46292045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110391530.XA Expired - Fee Related CN102521114B (zh) | 2011-11-30 | 2011-11-30 | 一种虚拟化环境下的文件系统日志存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521114B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677650B (zh) * | 2012-09-12 | 2017-02-08 | 北京百度网讯科技有限公司 | 盘符漂移预防及处理方法及装置 |
CN103984621B (zh) * | 2014-04-01 | 2017-08-11 | 广州杰赛科技股份有限公司 | 日志分离方法和系统 |
CN104021088B (zh) * | 2014-06-24 | 2017-11-21 | 广东睿江云计算股份有限公司 | 日志存储方法和装置 |
CN104615934B (zh) * | 2015-02-03 | 2020-06-16 | 腾讯科技(深圳)有限公司 | Sql注入攻击安全防护方法和系统 |
CN105610639A (zh) * | 2015-12-17 | 2016-05-25 | 北京奇虎科技有限公司 | 全量日志抓取方法及装置 |
CN107291924B (zh) * | 2017-06-29 | 2020-08-14 | 深信服科技股份有限公司 | 一种用于灾备系统的同步复制日志控制方法和系统 |
CN108932170A (zh) * | 2018-06-06 | 2018-12-04 | 华东师范大学 | 一种同驻虚拟机间高效共享内存文件系统的机制 |
CN109992489B (zh) * | 2018-12-29 | 2023-05-09 | 上海连尚网络科技有限公司 | 一种用于监控用户设备中应用的执行行为的方法与设备 |
CN115039082A (zh) * | 2020-05-12 | 2022-09-09 | 深圳市欢太科技有限公司 | 日志写入方法、装置、电子设备以及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456264C (zh) * | 2006-03-02 | 2009-01-28 | 腾讯科技(深圳)有限公司 | 一种磁盘空间管理方法及系统 |
CN100405304C (zh) * | 2006-07-27 | 2008-07-23 | 清华大学 | 基于存储区域网络的高速固态存储设备的实现方法 |
CN101408855B (zh) * | 2008-11-07 | 2010-06-02 | 北京威视数据系统有限公司 | 连续数据保护系统在远程备份设备临时异常时的保护方法 |
CN101751307A (zh) * | 2008-12-12 | 2010-06-23 | 比兹肯解决方法有限公司 | 数据存储系统、方法以及数据存储和备份系统 |
CN102129435B (zh) * | 2010-01-13 | 2013-03-27 | 中国移动通信集团公司 | 数据存储业务控制方法及系统 |
-
2011
- 2011-11-30 CN CN201110391530.XA patent/CN102521114B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102521114A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521114B (zh) | 一种虚拟化环境下的文件系统日志存储系统 | |
CN102467408B (zh) | 一种虚拟机数据的访问方法和设备 | |
CN102012789B (zh) | 集中管理式备份容灾系统 | |
AU2013403132B2 (en) | Data storage method, data storage apparatus, and storage device | |
US9996557B2 (en) | Database storage system based on optical disk and method using the system | |
CN103530237B (zh) | 一种固态盘阵列的垃圾回收方法 | |
CN103049220B (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
CN103929500A (zh) | 一种分布式存储系统的数据分片方法 | |
CN103049224B (zh) | 将数据导入物理磁带的方法、装置和系统 | |
CN102521330A (zh) | 一种桌面虚拟化环境下的镜像分布式存储方法 | |
CN103455577A (zh) | 云主机镜像文件的多备份就近存储和读取方法及系统 | |
US9690506B2 (en) | Virtual tape library | |
CN103916459A (zh) | 一种大数据归档存储系统 | |
CN103927215B (zh) | 基于内存盘与SSD硬盘的kvm虚拟机调度的优化方法及系统 | |
CN102820998B (zh) | 实现面向办公应用的双机容错服务系统及其数据存储方法 | |
CN103036952B (zh) | 一种企业级异构融合存储管理系统 | |
CN114138200A (zh) | 一种基于RocksDB的预写日志方法及系统 | |
CN103150225A (zh) | 基于应用级代理的对象并行存储系统磁盘满异常容错方法 | |
CN105068760B (zh) | 数据存储方法、数据存储装置和存储设备 | |
CN103207916A (zh) | 元数据处理的方法和装置 | |
CN109783032A (zh) | 一种基于异构计算的分布式存储加速方法及装置 | |
CN105095111B (zh) | 一种提高存储虚拟化安全性的方法及存储虚拟化设备 | |
CN109960460B (zh) | 一种分布式存储系统 | |
WO2016060700A1 (en) | File system journaling | |
CN105516274A (zh) | 基于云平台实现对san通用管理的方法及系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140827 Termination date: 20201130 |
|
CF01 | Termination of patent right due to non-payment of annual fee |