CN105912277B - 在虚拟机镜像中实现文件系统单写日志的方法 - Google Patents

在虚拟机镜像中实现文件系统单写日志的方法 Download PDF

Info

Publication number
CN105912277B
CN105912277B CN201610283714.7A CN201610283714A CN105912277B CN 105912277 B CN105912277 B CN 105912277B CN 201610283714 A CN201610283714 A CN 201610283714A CN 105912277 B CN105912277 B CN 105912277B
Authority
CN
China
Prior art keywords
virtual machine
virtual
modification
block
log
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
CN201610283714.7A
Other languages
English (en)
Other versions
CN105912277A (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201610283714.7A priority Critical patent/CN105912277B/zh
Publication of CN105912277A publication Critical patent/CN105912277A/zh
Application granted granted Critical
Publication of CN105912277B publication Critical patent/CN105912277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation

Abstract

本发明提供了一种在虚拟机镜像中实现文件系统单写日志的方法,包括步骤1:当虚拟机内部文件系统做检查点时,拦截检查点对应的I/O操作,并逆向成文件粒度语义;步骤2:判断I/O操作是否为针对虚拟机内部日志的拷贝操作并执行相应操作;步骤3:将虚拟块地址到物理地址映射表的修改先记录到同一个物理块上,当映射表的修改全部保存到同一个物理块上后,将物理块上的修改作用到实际映射表上。本发明在不修改客户虚拟机和文件系统的情况下,动态识别虚拟机内部日志操作,并通过修改虚拟机镜像中虚拟块地址和物理地址映射关系的方法,实现了文件系统单写日志机制,在保证虚拟机内部文件系统一致性的情况下,提升了虚拟化I/O性能。

Description

在虚拟机镜像中实现文件系统单写日志的方法
技术领域
本发明涉及系统虚拟化技术和文件系统,具体地,涉及一种在虚拟机镜像中实现文件系统单写日志的方法。
背景技术
文件系统日志
文件系统使用日志方法来保证文件系统一致性。当更新文件时,文件系统先将数据和对应的元数据写入日志中,当日志数据持久化存储在磁盘后,文件系统做检查点(checkpoint),将对应的数据和元数据拷贝至它们实际的位置,然后释放日志空间。当文件系统崩溃时(由于掉电或者软件错误等原因),如果数据和元数据都已保存在日志中,文件系统重启时可以从日志中恢复之前的I/O操作;如果数据和元数据没有全部保存在日志中,则放弃此次修改。
Ext3、Ext4文件系统包含三种日志模式:回写(writeback),顺序(ordered),数据(data)。在回写模式中,只有元数据被写入日志中。这种模式提供较好的性能,不过有较大的风险。在顺序模式中,只有元数据被写入日志中,但在日志被标记为提交前,数据会被写入磁盘中。在数据模式中,元数据和文件内容都被写入日志中。这种模式下提供最好的文件系统一致性,但是数据需要写两次,牺牲了I/O性能。
虚拟机镜像格式
虚拟化技术的一个便利之处在于可以使用虚拟机镜像作为虚拟机的后端存储。虚拟机镜像提供了很多先进的功能(如去重、加密),极大的简化了虚拟机的管理。
qcow2是KVM虚拟机使用的一种镜像格式。它维护了一个两层的查询表,用来管理地址翻译。簇是qcow2镜像的基本单元,簇大小保存在镜像头部中(image header)。镜像头包含指向查询表的指针。进行地址翻译时,每个虚拟块地址(virtual block address)a被分为三个部分,a=(a1,a2,a3):a1作为一级查询表(L1table)的索引去找到对应二级查询表(L2table)的地址,a2作为二级查询表的索引找到对应数据簇的地址,a3是在簇中的偏移。
本发明主要提出了一种在虚拟机镜像中通过修改虚拟块地址和物理地址映射关系,消除虚拟机内部文件系统checkpoint时将数据拷贝至实际位置的写操作,从而实现文件系统单写日志的方法。该方法在保证虚拟机内文件系统一致性的情况下,提高了虚拟化I/O的性能。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种在虚拟机镜像中实现文件系统单写日志的方法。
根据本发明提供的在虚拟机镜像中实现文件系统单写日志的方法,包括如下步骤:
步骤1:当虚拟机内部文件系统做检查点,即checkpoint时,拦截checkpoint对应的I/O操作,并对拦截的I/O操作进行语义分析,将拦截的块粒度I/O操作逆向成文件粒度语义;
步骤2:判断I/O操作是否为针对虚拟机内部日志的拷贝操作,若是,则修改虚拟机镜像虚拟块地址到物理地址映射关系,将该I/O操作指向虚拟机镜像虚拟块地址,并删除原来指向虚拟机内部日志中对应数据的映射;若否,则允许执行该I/O操作;
步骤3:将虚拟块地址到物理地址映射表的修改记录到同一个物理块上;当物理地址映射表的修改全部保存到同一个物理块上后,将物理块上的修改记录到实际映射表上。
优选地,所述步骤1中的对拦截的I/O操作进行语义分析,将虚拟机外部拦截的块粒度的I/O操作,转化为虚拟机内部文件粒度操作。
优选地,所述步骤2中的删除原来指向虚拟机内部日志中对应数据的映射,即去除了拷贝写机制,实现了虚拟机内部文件系统单写日志机制,通过修改虚拟块地址到物理地址的映射关系,避免虚拟机内部文件系统数据写两次问题。
优选地,步骤3中为保证修改虚拟机镜像虚拟块地址到物理地址映射关系操作和删除原来指向虚拟机内部日志中对应数据的映射关系操作的这两种操作的原子性,将虚拟块地址到物理地址映射表的修改记录到同一个物理块上;其中,利用磁盘提供的单一数据块修改的原子性,将虚拟块地址到物理块地址映射关系的修改先写入同一数据块中,从而保证虚拟块地址到物理块地址映射表修改的原子性。
与现有技术相比,本发明具有如下的有益效果:
本发明提供的在虚拟机镜像中实现文件系统单写日志的方法解决了虚拟机内部文件系统由于引入日志机制带来的数据写两遍问题,在不修改客户虚拟机和文件系统的情况下,动态识别虚拟机内部日志操作,并通过修改虚拟机镜像中虚拟块地址和物理地址映射关系的方法,实现了文件系统单写日志机制,在保证虚拟机内部文件系统一致性的情况下,提升了虚拟化I/O性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为qcow2镜像格式的组织形式和地址翻译过程示意图;
图2为虚拟机内部文件系统修改过程和对应虚拟机镜像中数据映射关系一;
图3为虚拟机内部文件系统修改过程和对应虚拟机镜像中数据映射关系二。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的在虚拟机镜像中实现文件系统单写日志的方法,包括如下步骤:
步骤1:当虚拟机内部文件系统做检查点(checkpoint)时,拦截checkpoint对应的I/O操作,并对拦截的I/O操作进行语义分析,将拦截的块粒度I/O操作逆向成文件粒度语义。
步骤2:判断I/O操作是否为针对虚拟机内部日志的拷贝操作,若是,则修改虚拟机镜像虚拟块地址到物理地址映射关系,将该I/O操作指向虚拟机镜像虚拟块地址,并删除原来指向虚拟机内部日志中对应数据的映射;若否,则允许执行该I/O操作。
步骤3:为保证修改虚拟机镜像虚拟块地址到物理地址映射关系和删除原来指向虚拟机内部日志中对应数据的映射两种操作的原子性,将虚拟块地址到物理地址映射表的修改先记录到同一个物理块上,利用磁盘提供的单一数据块修改的原子性,保证映射表修改的原子性。当映射表的修改全部保存到同一个物理块上后,将物理块上的修改记录到实际映射表上。
所述步骤1中的对拦截的I/O操作进行语义分析,即将虚拟机外部拦截的块粒度的I/O操作,转化为虚拟机内部文件粒度操作。
所述步骤2中的删除原来指向日志中对应数据的映射,即去除了拷贝写机制,实现了虚拟机内部文件系统单写日志机制,通过修改两个虚拟块地址到物理块地址的映射指针,避免虚拟机内部文件系统数据写两次问题。
所述步骤3中的利用磁盘提供的单一数据块修改的原子性,将虚拟块地址到物理块地址映射关系的修改先写入同一数据块中,从而保证虚拟块地址到物理块地址映射表修改的原子性。
在虚拟机内部文件系统使用数据日志模式,数据享有高一致性的情况下,解决数据日志模式下数据写两遍的问题,从而提高虚拟化I/O性能。
为达到上述目的,本发明提出的技术方案,一种在虚拟机镜像中实现文件系统单写日志的方法,针对文件系统日志checkpoint过程时,需要从日志中拷贝数据至数据实际所在位置,设计一种通过修改虚拟机镜像虚拟块地址到物理地址映射关系的方式,避免了数据写两次问题。
当虚拟机内部文件系统使用数据日志模式时,所有的修改(数据和元数据)都先被记录到日志中。当日志被提交到磁盘,并持久化的存储到磁盘后,文件系统可以开始checkpoint过程,拷贝日志中的数据和元数据至它们实际所在位置。文件系统数据在虚拟机镜像中的映射关系如附图2所示。图2、图3中的Des表示日志描述块,M表示元数据,D表示文件内容,C表示日志交换块。
本发明提出通过修改虚拟机镜像虚拟块地址到物理地址映射关系的方式,避免了checkpoint过程中数据写两次问题。当虚拟机内部修改文件时,所有的修改(数据和元数据)先被记录到虚拟机内部文件系统日志中。然后日志被提交到磁盘,并被持久化存储。其次,当虚拟机内部文件系统做checkpoint时,拦截checkpoint对应的I/O操作,如果拦截的I/O操作是拷贝虚拟机内部日志至其实际位置,则直接修改虚拟机镜像虚拟块地址到物理地址映射关系,将拦截的I/O操作指向的虚拟机块地址,指向日志中对应数据的物理地址,并删除原来指向日志中对应数据的映射。整个过程通过修改两个映射指针,避免数据写两次问题。同时,为保证虚拟机块地址到物理块地址映射表修改的原子性,将对映射表的修改先预先写入同一个磁盘块中,利用磁盘提供的块修改操作的原子性,保证映射表修改的原子性。使用本发明后,文件系统数据在虚拟机镜像中的映射如附图3所示。
综上所述,本发明提出的通过修改虚拟机镜像虚拟块地址到物理地址映射关系的方式,在保证虚拟机内部文件系统一致性且不修改客户虚拟机的前提下,避免了数据写两次的问题,提高了虚拟化I/O的性能。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (4)

1.一种在虚拟机镜像中实现文件系统单写日志的方法,其特征在于,包括如下步骤:
步骤1:当虚拟机内部文件系统做检查点,即checkpoint时,拦截checkpoint对应的I/O操作,并对拦截的I/O操作进行语义分析,将拦截的块粒度I/O操作逆向成文件粒度语义;
步骤2:判断I/O操作是否为针对虚拟机内部日志的拷贝操作,若是,则修改虚拟机镜像虚拟块地址到物理地址映射关系,将该I/O操作指向虚拟机镜像虚拟块地址,并删除原来指向虚拟机内部日志中对应数据的映射;若否,则允许执行该I/O操作;
步骤3:将虚拟块地址到物理地址映射表的修改记录到同一个物理块上;当物理地址映射表的修改全部保存到同一个物理块上后,将物理块上的修改记录到实际映射表上。
2.根据权利要求1所述的在虚拟机镜像中实现文件系统单写日志的方法,其特征在于,所述步骤1中的对拦截的I/O操作进行语义分析,将虚拟机外部拦截的块粒度的I/O操作,转化为虚拟机内部文件粒度操作。
3.根据权利要求1所述的在虚拟机镜像中实现文件系统单写日志的方法,其特征在于,所述步骤2中的删除原来指向虚拟机内部日志中对应数据的映射,即去除了拷贝写机制,实现了虚拟机内部文件系统单写日志机制,通过修改虚拟块地址到物理地址的映射关系,避免虚拟机内部文件系统数据写两次问题。
4.根据权利要求1所述的在虚拟机镜像中实现文件系统单写日志的方法,其特征在于,步骤3中为保证修改虚拟机镜像虚拟块地址到物理地址映射关系操作和删除原来指向虚拟机内部日志中对应数据的映射关系操作的这两种操作的原子性,将虚拟块地址到物理地址映射表的修改记录到同一个物理块上;其中,利用磁盘提供的单一数据块修改的原子性,将虚拟块地址到物理块地址映射关系的修改先写入同一数据块中,从而保证虚拟块地址到物理块地址映射表修改的原子性。
CN201610283714.7A 2016-04-29 2016-04-29 在虚拟机镜像中实现文件系统单写日志的方法 Active CN105912277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610283714.7A CN105912277B (zh) 2016-04-29 2016-04-29 在虚拟机镜像中实现文件系统单写日志的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610283714.7A CN105912277B (zh) 2016-04-29 2016-04-29 在虚拟机镜像中实现文件系统单写日志的方法

Publications (2)

Publication Number Publication Date
CN105912277A CN105912277A (zh) 2016-08-31
CN105912277B true CN105912277B (zh) 2018-12-18

Family

ID=56753536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610283714.7A Active CN105912277B (zh) 2016-04-29 2016-04-29 在虚拟机镜像中实现文件系统单写日志的方法

Country Status (1)

Country Link
CN (1) CN105912277B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664523B (zh) * 2017-03-31 2021-08-13 华为技术有限公司 一种虚拟磁盘文件格式转换方法和装置
CN107391391B (zh) * 2017-07-19 2019-05-14 深圳大普微电子科技有限公司 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962703B1 (en) * 2007-08-08 2011-06-14 Symantec Corporation Techniques for improving dirty page logging
CN103493027A (zh) * 2011-04-25 2014-01-01 微软公司 虚拟磁盘存储技术
CN104035729A (zh) * 2014-05-22 2014-09-10 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法
CN105138284A (zh) * 2015-08-11 2015-12-09 上海交通大学 虚拟机磁盘镜像同步操作优化的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080288A1 (ja) * 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962703B1 (en) * 2007-08-08 2011-06-14 Symantec Corporation Techniques for improving dirty page logging
CN103493027A (zh) * 2011-04-25 2014-01-01 微软公司 虚拟磁盘存储技术
CN104035729A (zh) * 2014-05-22 2014-09-10 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法
CN105138284A (zh) * 2015-08-11 2015-12-09 上海交通大学 虚拟机磁盘镜像同步操作优化的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《一种基于准同步检查点的虚拟机卷回恢复算法》;张展 等;《计算机科学》;20140531;第41卷(第5期);第46-49页 *

Also Published As

Publication number Publication date
CN105912277A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
US20210056074A1 (en) File System Data Access Method and File System
US10956364B2 (en) Efficient data synchronization for storage containers
US10776315B2 (en) Efficient and flexible organization and management of file metadata
CN106663047B (zh) 用于优化的签名比较和数据复制的系统和方法
CN110062925A (zh) 用于云集成的快照元数据布置
CN105453021B (zh) 用于原子存储操作的系统和方法
CN104618482B (zh) 访问云数据的方法、服务器、传统存储设备、系统
CN105988723A (zh) 一种快照处理方法及装置
US8112607B2 (en) Method and system for managing large write-once tables in shadow page databases
US20170031768A1 (en) Method and apparatus for reconstructing and checking the consistency of deduplication metadata of a deduplication file system
WO2016086819A1 (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN107862064A (zh) 一个基于nvm的高性能、可扩展的轻量级文件系统
US9436559B2 (en) Storage apparatus and method for controlling cache of storage apparatus
US9778860B2 (en) Re-TRIM of free space within VHDX
JP2020502626A (ja) データベース・システムにおけるテスト・データの形成及び動作
CN103544045A (zh) 一种基于hdfs的虚拟机镜像存储系统及其构建方法
US10552377B2 (en) Data discard method for journaling file system and memory management apparatus thereof
CN109697016A (zh) 用于改进容器的存储性能的方法和装置
CN102073739A (zh) 带有快照功能的分布式文件系统中的数据读与数据写方法
CN105912475A (zh) 用于ssd上的写时复制的系统和方法
CN108701048A (zh) 数据加载方法及装置
CN109144416A (zh) 查询数据的方法和装置
CN105912277B (zh) 在虚拟机镜像中实现文件系统单写日志的方法
CN110134657A (zh) 基于非易失主存的文件系统元数据操作加速方法和系统
CN116226232A (zh) 面向分布式数据库的持久内存数据存储方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant